gwenview: port to the new KCalendarWidget class

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2023-07-23 05:52:25 +03:00
parent 81d53fe5a3
commit 94a4442bd9

View file

@ -22,11 +22,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA
#include "moc_datewidget.cpp" #include "moc_datewidget.cpp"
// Qt // Qt
#include <QtCore/qdatetime.h> #include <QDateTime>
#include <QHBoxLayout> #include <QHBoxLayout>
#include <QFrame>
// KDE // KDE
#include <KDatePicker> #include <KCalendarWidget>
#include <KDebug> #include <KDebug>
#include <KIconLoader> #include <KIconLoader>
#include <KLocale> #include <KLocale>
@ -42,23 +43,25 @@ struct DateWidgetPrivate
DateWidget* q; DateWidget* q;
QDate mDate; QDate mDate;
KDatePicker* mDatePicker; QFrame* mCalendarFrame;
KCalendarWidget* mCalendarWidget;
StatusBarToolButton* mPreviousButton; StatusBarToolButton* mPreviousButton;
StatusBarToolButton* mDateButton; StatusBarToolButton* mDateButton;
StatusBarToolButton* mNextButton; StatusBarToolButton* mNextButton;
void setupDatePicker() void setupDatePicker()
{ {
mDatePicker = new KDatePicker; mCalendarFrame = new QFrame();
mCalendarWidget = new KCalendarWidget(mCalendarFrame);
/* Use Qt::Tool instead of Qt::Window so that the bubble does not appear in the task bar */ /* Use Qt::Tool instead of Qt::Window so that the bubble does not appear in the task bar */
//mDatePicker->setWindowFlags(Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); //mCalendarFrame->setWindowFlags(Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
mDatePicker->setWindowFlags(Qt::Popup); mCalendarFrame->setWindowFlags(Qt::Popup);
mDatePicker->hide(); mCalendarFrame->hide();
mDatePicker->setFrameStyle(QFrame::StyledPanel | QFrame::Raised); mCalendarFrame->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
QObject::connect(mDatePicker, SIGNAL(dateEntered(QDate)), QObject::connect(mCalendarWidget, SIGNAL(clicked(QDate)),
q, SLOT(slotDatePickerModified(QDate))); q, SLOT(slotDatePickerModified(QDate)));
QObject::connect(mDatePicker, SIGNAL(dateSelected(QDate)), QObject::connect(mCalendarWidget, SIGNAL(activated(QDate)),
q, SLOT(slotDatePickerModified(QDate))); q, SLOT(slotDatePickerModified(QDate)));
} }
@ -108,7 +111,7 @@ DateWidget::DateWidget(QWidget* parent)
DateWidget::~DateWidget() DateWidget::~DateWidget()
{ {
delete d->mDatePicker; delete d->mCalendarFrame;
delete d; delete d;
} }
@ -119,16 +122,17 @@ QDate DateWidget::date() const
void DateWidget::showDatePicker() void DateWidget::showDatePicker()
{ {
d->mDatePicker->setDate(d->mDate); d->mCalendarWidget->setSelectedDate(d->mDate);
d->mDatePicker->adjustSize(); d->mCalendarWidget->adjustSize();
const QPoint pos = mapToGlobal(QPoint(0, -d->mDatePicker->height())); d->mCalendarFrame->adjustSize();
d->mDatePicker->move(pos); const QPoint pos = mapToGlobal(QPoint(0, -d->mCalendarFrame->height()));
d->mDatePicker->show(); d->mCalendarFrame->move(pos);
d->mCalendarFrame->show();
} }
void DateWidget::slotDatePickerModified(const QDate& date) void DateWidget::slotDatePickerModified(const QDate& date)
{ {
d->mDatePicker->hide(); d->mCalendarFrame->hide();
d->mDate = date; d->mDate = date;
emit dateChanged(date); emit dateChanged(date);