f0da141d3a6304e59bd12c0d6ad8072c69280d29
[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 meeting\r
39         /*!\r
40          * Returns the current meeting if any\r
41          * \return Current meeting if any, otherwise null pointer\r
42          */\r
43         Meeting* currentMeeting();\r
44         //! Current room\r
45         /*!\r
46          * Returns the currently selected meeting room.\r
47          * \return Selected meeting room.\r
48          */\r
49         Room* currentRoom();\r
50 \r
51         //! First day of week currently displayd\r
52         /*!\r
53          * Returns the first day of week currently displayd.\r
54          * \return First day of week.\r
55          */\r
56         QDate beginnigOfShownWeek();\r
57 \r
58 signals:\r
59         //! Signals change of the meeting room.\r
60         /*!\r
61          * Signal is emited when meeting room is changed.\r
62          * \param aNewRoom Selected meeting room.\r
63          */\r
64         void currentRoomChanged( Room *aNewRoom );\r
65         //! Signals change of the current meeting.\r
66         /*!\r
67          * Signal is emited when new meeting is started.\r
68          * \param aNewMeeting Meeting that has been started.\r
69          */\r
70         void currentMeetingChanged( Meeting *aNewMeeting );\r
71         //! Meeting activated.\r
72         /*!\r
73          * Signal is emitted when a meeting is clicked by the user.\r
74          * \param aMeeting actived meeting.\r
75          */\r
76         void meetingActivated( Meeting *aMeeting );\r
77         //! Signals creation of new meeting.\r
78         /*!\r
79          * Signal is emited when new meeting is created.\r
80          * \param aMeeting Meeting that has been created.\r
81          * \param aUsername User who created the meeting.\r
82          * \param aPassword Password of the "aUsername"\r
83          */\r
84         void meetingToCreate( Meeting *aMeeting, const QString &aUsername, const QString &aPassword );\r
85         //! Signals deletion of a meeting.\r
86         /*!\r
87          * Signal is emited when meeting is deleted.\r
88          * \param aMeeting Deleted meeting.\r
89          * \param aUsername User who deleted the meeting.\r
90          * \param aPassword Password of the "aUsername"\r
91          */\r
92         void meetingToDelete( Meeting *aMeeting, const QString &aUsername, const QString &aPassword );\r
93         //! Signals modifications of a meeting.\r
94         /*!\r
95          * Signal is emited when meeting is modified.\r
96          * \param aMeeting Modified meeting.\r
97          * \param aUsername User who modified the meeting.\r
98          * \param aPassword Password of the "aUsername"\r
99          */\r
100         void meetingToUpdate( Meeting *aMeeting, const QString &aUsername, const QString &aPassword );\r
101 \r
102         //! Signals\r
103         /*!\r
104          * Signal is emited when settings button is clicked.\r
105          */\r
106         void showSettingsView();\r
107         \r
108         //! Signal. Emitted if the shown week has been changed.\r
109         /*!\r
110          * Signal. Emitted if the shown week has been changed.
111          * \param aDate The first date of the shown week.
112          */
113         void shownWeekChanged( QDate aDate );
114 \r
115 public slots:\r
116         //! Sets the date and time\r
117         /*!\r
118          * Sets the current date and time\r
119          * \param aCurrentDateTime Date and time to be displayd.\r
120          */\r
121         void setCurrentDateTime( QDateTime aCurrentDateTime );\r
122         //! Insert meeting\r
123         /*!\r
124          * Inserts new meeting into the calendar\r
125          * \param aMeeting Meeting to be inserted.\r
126          */\r
127         void insertMeeting( Meeting *aMeeting );\r
128         //! Delete meeting\r
129         /*!\r
130          * Removes meeting from the calendar\r
131          * \param aMeeting Meeting to be deleted.\r
132          */\r
133         void deleteMeeting( Meeting *aMeeting );\r
134         //! Update meeting\r
135         /*!\r
136          * Updates the display of given meeting in calendar.\r
137          * \param aMeeting Meeting to be updated.\r
138          */\r
139         void updateMeeting( Meeting *aMeeting );\r
140 \r
141 private:\r
142         //! Displays the selectable meeting rooms.\r
143         MeetingRoomCombo *iRoomsCombo;\r
144         //! Displays the time.\r
145         TimeDisplayWidget *iTimeDisplay;\r
146         //! Displays the calendar.\r
147         ScheduleWidget *iSchedule;\r
148         //! Displays the date.\r
149         QLabel *iCurrentDayLabel;\r
150         //! Displays the week number.\r
151         QLabel *iCurrentWeekLabel;\r
152         //! Button used to display previous week's calendar.\r
153         QPushButton *iPreviousWeekButton;\r
154         //! Button used to display current week's calendar.\r
155         QPushButton *iCurrentWeekButton;\r
156         //! Button used to display next week's calendar.\r
157         QPushButton *iNextWeekButton;\r
158         //! Settings button. TODO : Correct widget is needed!!\r
159         QPushButton *iSettingsButton;\r
160         //! About button. TODO : Correct widget is needed!!\r
161         QPushButton *iAboutButton;\r
162         /* !\r
163          * Pointer to configuration object.\r
164          * Contains configurable data and IS NOT OWNED by the widget.\r
165          */\r
166         Configuration *iConfiguration;\r
167 };\r
168 \r
169 #endif /*WEEKLYVIEWWIDGET_H_*/\r