1 #ifndef WEEKLYVIEWWIDGET_H_
\r
2 #define WEEKLYVIEWWIDGET_H_
\r
4 #include "ViewBase.h"
\r
9 class MeetingRoomCombo;
\r
10 class TimeDisplayWidget;
\r
11 class ScheduleWidget;
\r
12 class Configuration;
\r
16 //! Userinterface class. Shows a weekly calendar for the selected room, provides date and time information.
\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
22 class WeeklyViewWidget : public ViewBase
\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
34 WeeklyViewWidget( QDateTime aCurrentDateTime, Configuration *aConfiguration, QWidget *aParent = 0 );
\r
36 virtual ~WeeklyViewWidget();
\r
40 * Returns the current meeting if any
\r
41 * \return Current meeting if any, otherwise null pointer
\r
43 Meeting* currentMeeting();
\r
46 * Returns the currently selected meeting room.
\r
47 * \return Selected meeting room.
\r
49 Room* currentRoom();
\r
51 //! First day of week currently displayd
\r
53 * Returns the first day of week currently displayd.
\r
54 * \return First day of week.
\r
56 QDate beginnigOfShownWeek();
\r
58 void showCurrentWeek();
\r
60 void setDefaultRoom();
\r
63 //! Signals change of the meeting room.
\r
65 * Signal is emited when meeting room is changed.
\r
66 * \param aNewRoom Selected meeting room.
\r
68 void currentRoomChanged( Room *aNewRoom );
\r
69 //! Signals change of the current meeting.
\r
71 * Signal is emited when new meeting is started.
\r
72 * \param aNewMeeting Meeting that has been started.
\r
74 void currentMeetingChanged( Meeting *aNewMeeting );
\r
75 //! Meeting activated.
\r
77 * Signal is emitted when a meeting is clicked by the user.
\r
78 * \param aMeeting actived meeting.
\r
80 void meetingActivated( Meeting *aMeeting );
\r
81 //! Signals creation of new meeting.
\r
83 * Signal is emited when new meeting is created.
\r
84 * \param aMeeting Meeting that has been created.
\r
85 * \param aUsername User who created the meeting.
\r
86 * \param aPassword Password of the "aUsername"
\r
88 void meetingToCreate( Meeting *aMeeting, const QString &aUsername, const QString &aPassword );
\r
89 //! Signals deletion of a meeting.
\r
91 * Signal is emited when meeting is deleted.
\r
92 * \param aMeeting Deleted meeting.
\r
93 * \param aUsername User who deleted the meeting.
\r
94 * \param aPassword Password of the "aUsername"
\r
96 void meetingToDelete( Meeting *aMeeting, const QString &aUsername, const QString &aPassword );
\r
97 //! Signals modifications of a meeting.
\r
99 * Signal is emited when meeting is modified.
\r
100 * \param aMeeting Modified meeting.
\r
101 * \param aUsername User who modified the meeting.
\r
102 * \param aPassword Password of the "aUsername"
\r
104 void meetingToUpdate( Meeting *aMeeting, const QString &aUsername, const QString &aPassword );
\r
108 * Signal is emited when settings button is clicked.
\r
110 void settingsButtonClicked();
\r
112 //! Signal. Emitted if the shown week has been changed.
\r
114 * Signal. Emitted if the shown week has been changed.
115 * \param aDate The first date of the shown week.
117 void shownWeekChanged( QDate aDate );
\r
120 //! Sets the date and time
\r
122 * Sets the current date and time
\r
123 * \param aCurrentDateTime Date and time to be displayd.
\r
125 void setCurrentDateTime( QDateTime aCurrentDateTime );
\r
128 * Inserts new meeting into the calendar
\r
129 * \param aMeeting Meeting to be inserted.
\r
131 void insertMeeting( Meeting *aMeeting );
\r
134 * Removes meeting from the calendar
\r
135 * \param aMeeting Meeting to be deleted.
\r
137 void deleteMeeting( Meeting *aMeeting );
\r
140 * Updates the display of given meeting in calendar.
\r
141 * \param aMeeting Meeting to be updated.
\r
143 void updateMeeting( Meeting *aMeeting );
\r
145 //! Handle resizing
\r
147 * Handle possible resize changes after the view is resized
\r
148 * to match the window managers client area.
\r
150 void viewResized(const QSize &size) { }
\r
153 //! Displays the selectable meeting rooms.
\r
154 MeetingRoomCombo *iRoomsCombo;
\r
155 //! Displays the time.
\r
156 TimeDisplayWidget *iTimeDisplay;
\r
157 //! Displays the calendar.
\r
158 ScheduleWidget *iSchedule;
\r
159 //! Displays the date.
\r
160 QLabel *iCurrentDayLabel;
\r
161 //! Displays the week number.
\r
162 QLabel *iCurrentWeekLabel;
\r
163 //! Button used to display previous week's calendar.
\r
164 QPushButton *iPreviousWeekButton;
\r
165 //! Button used to display current week's calendar.
\r
166 QPushButton *iCurrentWeekButton;
\r
167 //! Button used to display next week's calendar.
\r
168 QPushButton *iNextWeekButton;
\r
169 //! Settings button. TODO : Correct widget is needed!!
\r
170 QPushButton *iSettingsButton;
\r
171 //! About button. TODO : Correct widget is needed!!
\r
172 QPushButton *iAboutButton;
\r
174 * Pointer to configuration object.
\r
175 * Contains configurable data and IS NOT OWNED by the widget.
\r
177 Configuration *iConfiguration;
\r
180 #endif /*WEEKLYVIEWWIDGET_H_*/
\r