class Configuration;
class CommunicationManager;
class Meeting;
-// class DeviceManager;
-class WeeklyViewWidget;
-class SettingsView;
-class RoomStatusIndicatorWidget;
-class PasswordDialog;
-class MeetingInfoDialog;
+class UIManager;
//! BusinessLogic class. Contains all the business logic of the application.
/*!
*/
Room* defaultRoom();
+ bool connected();
+ QTime lastUpdated();
+ QString errorMessage();
+
signals:
- void meetingDetailsFetched( Meeting *aDetailedMeeting );
+ void roomStatusChanged( Room::Status aStatus, QTime aUntil );
private slots:
//! Slot. Closes the application.
* Slot. Asks the communication to fetch new meeting data.
* \param aCurrentRoom The current room.
*/
- void currentRoomChanged( Room *aCurrentRoom );
- //! Slot. Asks the communication to fetch new meeting data.
- /*!
- * Slot. Asks the communication to fetch new meeting data.
- * \param aCurrentRoom The current room.
- */
void shownWeekChanged( QDate aDate );
//! Slot. Handles errors.
/*!
* \param aAddInfo Possible addition info.
*/
void errorHandler( int aCode, const QString &aAddInfo = "" );
- //! Slot. Fetches meetings from the server.
- /*!
- * Slot. Fetches meetings from the server. Parameters are hard coded: the meetings of the default
- * room from current and +/- 2 weeks are fetched.
- */
- void fetchMeetings();
//! Slot. Saves fetched meetings to the current instance's local storage.
/*!
* Slot. Saves fetched meetings to the current instance's local storage. Meetings are soted in a
* \param aMeetings The list of freshly fetched meetings.
*/
void meetingsFetched( const QList<Meeting*>& );
-
- void meetingDetailsFetched( Meeting &aDetailedMeeting );
-
//! Slot. Checks the availability of all the rooms.
/*!
* Slot. Checks the availability of all the rooms by iterating through the current object's local
* room storage and calling the roomStatusInfoNeeded() separately on each of them.
*/
void checkStatusOfAllRooms();
- //! Slot for popping up the confirmation dialog to change the current operation mode
+ //! Slot for receiving the failure event of operation mode changing.
/*!
- * Slot. Asks Window manager to pop up a confirmation dialog.
- * \param aMode The operation mode to be changed to
+ * Slot. Receives the failure event of operation mode changing.
*/
- void changeModeOrdered( DeviceManager::OperationMode aMode );
- //! Slot. Fetches meeting details from the server.
- /*!
- * Slot. Fetches meeting details from the server.
- * \param aMeeting The meeting.
- */
- void fetchMeetingDetails( Meeting *aMeeting );
- //! Slot for receiving the status of the entered password
- /*!
- * Slot. Receives the status of the entered password and makes the DeviceManager to change the
- * operation mode if the password is correct.
- * \param aPasswordStatus The status of the password.
- */
- void passwordEntered( PasswordDialog::PasswordStatus aPasswordStatus );
+ void changeModeFailed();
//! Slot for receiving the cancel event of the progress bar.
/*!
- * Slot. Receives the cancel event of the progress bar.
+ * Receives the cancel event of the progress bar when meeting details requested.
*/
- void progressBarCancelled();
+ void fetchMeetingDetails( Meeting *aMeeting );
+ void cancelFetchMeetingDetails();
void handleViewEvent();
void previousViewRestored();
- void settingsViewRequested();
-
- void idleTimerTimeout();
-
- void settingsOkClicked();
//! Slot for dialog activation signal.
/*!
*/
void dialogDeactivated();
+ void stopIdleTimeCounter();
+ void startIdleTimeCounter();
+
+ void changeDeviceMode();
+
+ void currentRoomChanged( Room *aRoom );
+
+ void tick( QDateTime aCurrentDateTime );
+
+ /**
+ * Updates the current rooms info.
+ */
+ void updateRoomInfo();
+ /**
+ *
+ */
+ void configurationChanged();
+
private:
+ // Make the UIManager as friendly class so it can connect to private slots.
+ friend class UIManager;
+
//! Provides the index of the Meeting instance which is at the specified time.
/*!
* Provides the index of the Meeting instance which is at the specified time. If there are
* \return Index of the meeting if found; otherwise, -1.
*/
int indexOfMeetingAfter( Room *aRoom, QDateTime aAfter );
- //! Indicates if the QList contains the Meeting or not.
- /*!
- * Indicates if the QList contains the Meeting or not.
- * \param aList List of meetings.
- * \param aMeeting The meeting which is seeked in the list for.
- * \return True if contains; otherwise, false.
- */
- static bool isMeetingInList( const QList<Meeting*> &aList, const Meeting *aMeeting );
//! Slot. Fetches meetings from the server.
/*!
* Slot. Fetches meetings from the server, exact parameters are specified in the parameter list.
- * \param aFrom Time from when the meetings need to be fetched.
- * \param aUntil Time until when the meetings need to be fetched.
+ * \param aWeek Week for which the meetings need to be fetched.
+ * \param aYear Year for which the meetings need to be fetched.
* \param aIn The room which meetings need to be fetched.
*/
- void fetchMeetings( const QDateTime &aFrom, const QDateTime &aUntil, const Room *aIn );
+ void fetchMeetings( const int aWeek, const int aYear, const Room *aIn );
//! Initialize configuration package.
/*!
* This method initializes configuration classes and
* packages are connected here.
*/
void connectSignals();
+
+ bool isMeetingInList(const QList<Meeting*> &aList, const Meeting *aMeeting);
private:
static QTime endOfTheDay;
-
- WindowManager *iWindowManager;
- WeeklyViewWidget *iWeeklyView;
- SettingsView *iSettingsView;
- RoomStatusIndicatorWidget *iRoomStatusIndicator;
-
- PasswordDialog *iPasswordDialog;
- MeetingInfoDialog *iMeetingInfoDialog;
QTimer *iIdleTimeCounter;
Clock *iClock;
+ QDate iCurrentDate;
Configuration *iConfiguration;
CommunicationManager *iCommunication;
+ WindowManager *iWindowManager;
DeviceManager *iDevice;
+ UIManager *iUIManager;
QTimer *iAutoRefresh;
QList<Meeting*> iMeetings;
+
+ Room *iCurrentRoom;
+ bool iCommunicationFailed;
+ QString iCommunicationError;
+ QTime iLastCommunication;
};
#endif /*ENGINE_H_*/