src/mvc/mvc.pro: add network module.
[toast/confclerk.git] / src / gui / daynavigatorwidget.h
1 /*
2  * Copyright (C) 2010 Ixonos Plc.
3  * Copyright (C) 2011-2017 Philipp Spitzer, gregor herrmann, Stefan Stahl
4  *
5  * This file is part of ConfClerk.
6  *
7  * ConfClerk is free software: you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by the Free
9  * Software Foundation, either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * ConfClerk is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
15  * more details.
16  *
17  * You should have received a copy of the GNU General Public License along with
18  * ConfClerk.  If not, see <http://www.gnu.org/licenses/>.
19  */
20 #ifndef DAYNAVIGATORWIDGET_H
21 #define DAYNAVIGATORWIDGET_H
22
23 #include "ui_daynavigatorwidget.h"
24 #include <QObject>
25 #include <QDate>
26
27 /** The DayNavigator widget manages three dates, the startDate, curDate and endDate.
28 Either startDate, curDate and endDate all have to be valid and startDate <= curDate <= endDate,
29 OR all three dates are invalid (representing "no date range", e.g. no conference). */
30 class DayNavigatorWidget : public QWidget, private Ui::DayNavigatorWidget {
31     Q_OBJECT
32     public:
33         DayNavigatorWidget(QWidget *aParent = NULL);
34         ~DayNavigatorWidget() {}
35         void setDates(const QDate &aStartDate, const QDate &aEndDate);
36         void setCurDate(const QDate& curDate);
37         QDate startDate() const {return mStartDate;}
38         QDate curDate() const {return mCurDate;}
39         QDate endDate() const {return mEndDate;}
40         void unsetDates();
41     protected:
42         void paintEvent(QPaintEvent *);
43         void configureNavigation();
44     private slots:
45         void prevDayButtonClicked();
46         void nextDayButtonClicked();
47     signals:
48         void dateChanged(const QDate &aDate);
49     private:
50         QDate mStartDate;
51         QDate mEndDate;
52         QDate mCurDate;
53 };
54
55 #endif /* DAYNAVIGATORWIDGET_H */
56