22#include "kdatepickerpopup_p.h"
25#include <KLocalizedString>
27#include <QtCore/QDateTime>
28#include <QWidgetAction>
30class KDatePickerAction :
public QWidgetAction
33 KDatePickerAction(KDatePicker *widget, QObject *parent)
34 : QWidgetAction(parent)
36 , mOriginalParent(widget->parentWidget())
41 QWidget *createWidget(QWidget *parent)
43 mDatePicker->setParent(parent);
47 void deleteWidget(QWidget *widget)
49 if (widget != mDatePicker) {
53 mDatePicker->setParent(mOriginalParent);
57 KDatePicker *mDatePicker;
58 QWidget *mOriginalParent;
66 mDatePicker =
new KDatePicker(
this);
67 mDatePicker->setCloseButton(
false);
69 connect(mDatePicker, SIGNAL(dateEntered(QDate)),
70 SLOT(slotDateChanged(QDate)));
71 connect(mDatePicker, SIGNAL(dateSelected(QDate)),
72 SLOT(slotDateChanged(QDate)));
74 mDatePicker->setDate(date);
79void KDatePickerPopup::buildMenu()
86 if (mItems & DatePicker) {
87 addAction(
new KDatePickerAction(mDatePicker,
this));
89 if ((mItems & NoDate) || (mItems & Words)) {
95 addAction(i18nc(
"@option today",
"&Today"),
this, SLOT(slotToday()));
96 addAction(i18nc(
"@option tomorrow",
"To&morrow"),
this, SLOT(slotTomorrow()));
97 addAction(i18nc(
"@option next week",
"Next &Week"),
this, SLOT(slotNextWeek()));
98 addAction(i18nc(
"@option next month",
"Next M&onth"),
this, SLOT(slotNextMonth()));
100 if (mItems & NoDate) {
105 if (mItems & NoDate) {
106 addAction(i18nc(
"@option do not specify a date",
"No Date"),
this, SLOT(slotNoDate()));
115void KDatePickerPopup::setDate(
const QDate &date)
117 mDatePicker->setDate(date);
121void KDatePickerPopup::setItems(
int items)
128void KDatePickerPopup::slotDateChanged(
const QDate &date)
136void KDatePickerPopup::slotToday()
141void KDatePickerPopup::slotTomorrow()
146void KDatePickerPopup::slotNoDate()
151void KDatePickerPopup::slotNextWeek()
156void KDatePickerPopup::slotNextMonth()
158 emit
dateChanged(QDate::currentDate().addMonths(1));
161#include "moc_kdatepickerpopup_p.cpp"