Merge branch 'master' of https://git.maemo.org/projects/qtmeetings
[qtmeetings] / src / UserInterface / Views / WeeklyViewWidget.h
1 #ifndef WEEKLYVIEWWIDGET_H_\r
2 #define WEEKLYVIEWWIDGET_H_\r
3 \r
4 #include "ObservedWidget.h"\r
5 #include <QDateTime>\r
6 \r
7 class QLabel;\r
8 class QPushButton;\r
9 class MeetingRoomCombo;\r
10 class TimeDisplayWidget;\r
11 class ScheduleWidget;\r
12 class Configuration;\r
13 class Meeting;\r
14 class Room;\r
15 \r
16 //! Userinterface class. Shows a weekly calendar for the selected room, provides date and time information.\r
17 /*!\r
18  * UserInterface class. Shows the current date and time and selected week's calendar for\r
19  * selected meeting room. User can select meeting room, browse weeks back and forth, and can navigate\r
20  * back to the current week.\r
21  */\r
22 class WeeklyViewWidget : public ObservedWidget\r
23 {\r
24         Q_OBJECT\r
25 \r
26 public:\r
27         //! Constructor.\r
28         /*!\r
29          * Constructor to initialize an WeeklyViewWidget instance.\r
30          * \param aCurrentDateTime\r
31          * \param aConfiguration Pointer to the configuration object. Not owned.\r
32          * \param aParent Pointer to the parent widget.\r
33          */\r
34         WeeklyViewWidget( QDateTime aCurrentDateTime, Configuration *aConfiguration, QWidget *aParent = 0 );\r
35         //! Destructor.\r
36         virtual ~WeeklyViewWidget();\r
37 \r
38         //! Current room\r
39         /*!\r
40          * Returns the currently selected meeting room.\r
41          * \return Selected meeting room.\r
42          */\r
43         Room* currentRoom();\r
44 \r
45         //! First day of week currently displayd\r
46         /*!\r
47          * Returns the first day of week currently displayd.\r
48          * \return First day of week.\r
49          */\r
50         QDate beginnigOfShownWeek();\r
51         //! Sends the refresh command to schedule widget.\r
52         /*!\r
53          * Sends the refresh command to schedule widget.\r
54          * \param aMeetings The list of meetings.\r
55          */\r
56         void refreshMeetings( const QList<Meeting*> &aMeetings );\r
57         \r
58         void showCurrentWeek();\r
59         \r
60         void setDefaultRoom();\r
61         \r
62 signals:\r
63         //! Signals change of the meeting room.\r
64         /*!\r
65          * Signal is emited when meeting room is changed.\r
66          * \param aNewRoom Selected meeting room.\r
67          */\r
68         void currentRoomChanged( Room *aNewRoom );\r
69         //! Meeting activated.\r
70         /*!\r
71          * Signal is emitted when a meeting is clicked by the user.\r
72          * \param aMeeting actived meeting.\r
73          */\r
74         void meetingActivated( Meeting *aMeeting );\r
75         //! Signals creation of new meeting.\r
76         /*!\r
77          * Signal is emited when new meeting is created.\r
78          * \param aMeeting Meeting that has been created.\r
79          * \param aUsername User who created the meeting.\r
80          * \param aPassword Password of the "aUsername"\r
81          */\r
82         void meetingToCreate( Meeting *aMeeting, const QString &aUsername, const QString &aPassword );\r
83         //! Signals deletion of a meeting.\r
84         /*!\r
85          * Signal is emited when meeting is deleted.\r
86          * \param aMeeting Deleted meeting.\r
87          * \param aUsername User who deleted the meeting.\r
88          * \param aPassword Password of the "aUsername"\r
89          */\r
90         void meetingToDelete( Meeting *aMeeting, const QString &aUsername, const QString &aPassword );\r
91         //! Signals modifications of a meeting.\r
92         /*!\r
93          * Signal is emited when meeting is modified.\r
94          * \param aMeeting Modified meeting.\r
95          * \param aUsername User who modified the meeting.\r
96          * \param aPassword Password of the "aUsername"\r
97          */\r
98         void meetingToUpdate( Meeting *aMeeting, const QString &aUsername, const QString &aPassword );\r
99 \r
100         //! Signals\r
101         /*!\r
102          * Signal is emited when settings button is clicked.\r
103          */\r
104         void showSettingsView();\r
105         \r
106         //! Signal. Emitted if the shown week has been changed.\r
107         /*!\r
108          * Signal. Emitted if the shown week has been changed.
109          * \param aDate The first date of the shown week.
110          */
111         void shownWeekChanged( QDate aDate );
112 \r
113 public slots:\r
114         //! Sets the date and time\r
115         /*!\r
116          * Sets the current date and time\r
117          * \param aCurrentDateTime Date and time to be displayd.\r
118          */\r
119         void setCurrentDateTime( QDateTime aCurrentDateTime );\r
120 \r
121 private:\r
122         //! Displays the selectable meeting rooms.\r
123         MeetingRoomCombo *iRoomsCombo;\r
124         //! Displays the time.\r
125         TimeDisplayWidget *iTimeDisplay;\r
126         //! Displays the calendar.\r
127         ScheduleWidget *iSchedule;\r
128         //! Displays the date.\r
129         QLabel *iCurrentDayLabel;\r
130         //! Displays the week number.\r
131         QLabel *iCurrentWeekLabel;\r
132         //! Button used to display previous week's calendar.\r
133         QPushButton *iPreviousWeekButton;\r
134         //! Button used to display current week's calendar.\r
135         QPushButton *iCurrentWeekButton;\r
136         //! Button used to display next week's calendar.\r
137         QPushButton *iNextWeekButton;\r
138         //! Settings button. TODO : Correct widget is needed!!\r
139         QPushButton *iSettingsButton;\r
140         //! About button. TODO : Correct widget is needed!!\r
141         QPushButton *iAboutButton;\r
142         /* !\r
143          * Pointer to configuration object.\r
144          * Contains configurable data and IS NOT OWNED by the widget.\r
145          */\r
146         Configuration *iConfiguration;\r
147 };\r
148 \r
149 #endif /*WEEKLYVIEWWIDGET_H_*/\r