1 //=========================================== 2 // Lumina-desktop source code 3 // Copyright (c) 2018, Ken Moore 4 // Available under the 3-clause BSD license 5 // See the LICENSE file for full details 6 //=========================================== 7 // Simple menu popup with a calendar in it 8 //=========================================== 9 #ifndef _LUMINA_DESKTOP_WIDGET_MENU_CALENDAR_H 10 #define _LUMINA_DESKTOP_WIDGET_MENU_CALENDAR_H 11 12 #include <QMenu> 13 #include <QWidgetAction> 14 #include <QCalendarWidget> 15 #include <QDate> 16 17 class CalendarMenu : public QMenu { 18 Q_OBJECT 19 private: 20 QCalendarWidget *cal; 21 QWidgetAction *WA; 22 public: CalendarMenu()23 CalendarMenu() : QMenu(){ 24 cal = new QCalendarWidget(); 25 WA = new QWidgetAction(this); 26 WA->setDefaultWidget(cal); 27 this->addAction(WA); 28 connect(this, SIGNAL(aboutToShow()), this, SLOT(resetDate()) ); 29 } ~CalendarMenu()30 ~CalendarMenu(){ 31 cal->deleteLater(); 32 } 33 34 private slots: resetDate()35 void resetDate(){ 36 cal->setSelectedDate(QDate::currentDate()); 37 } 38 39 }; 40 #endif 41