Changes to screen saver mode connection status handling
[qtmeetings] / src / BusinessLogic / UIManager.h
1 #ifndef UIMANAGER_H_
2 #define UIMANAGER_H_
3
4 #include <QObject>
5 #include <QList>
6
7 #include "Meeting.h"
8 #include "DeviceManager.h"
9 #include "PasswordDialog.h"
10
11 class Engine;
12 class WindowManager;
13 class WeeklyViewWidget;
14 class SettingsView;
15 class RoomStatusIndicatorWidget;
16 class ProgressBar;
17 class MeetingInfoDialog;
18 class CommunicationManager;
19 class QDateTime;
20
21 class UIManager : public QObject
22 {
23         Q_OBJECT
24         
25 public:
26         UIManager( Engine *aEngine, WindowManager *aWindowManager );
27         virtual ~UIManager();
28         
29         void connectDeviceManager( DeviceManager *aDeviceManager );
30         void connectCommunicationManager( CommunicationManager *aCommunicationManager );
31         void showMainView();
32         void showProgressBar( QString aText );
33
34 signals:
35         
36 public slots:
37
38         void settingsViewRequest();
39         void settingsOkClicked();
40         void roomStatusIndicatorRequested();
41         void previousViewRestored();
42         void changeModeOrdered( DeviceManager::OperationMode aMode );
43
44         //! Shows any view specific indicators for connection error
45         void connectionLost();
46         
47         //! Removes any view specific indicators for connection error
48         void connectionEstablished();
49         
50 private slots:
51
52         void meetingsFetched( const QList<Meeting*> &aMeetings );
53         void meetingDetailsFetched( Meeting &aDetailedMeeting );
54         void currentRoomChanged( Room *aRoom );
55         void progressBarCancelled();
56         void updateTime( QDateTime aDateTime );
57         void passwordEntered( PasswordDialog::PasswordStatus aStatus );
58         void showMeetingProgressBar( Meeting *aMeeting );
59         void updateProgressBarText( const QString &aText );
60         void hideProgressBar();
61
62 private:
63         
64         void createWeeklyView();
65         void createSettingsView();
66         void createRoomStatusIndicator();
67         void createPasswordDialog();
68         void createProgressBar();
69         void createMeetingInfoDialog();
70         
71 private:
72         Engine *iEngine;
73         WindowManager *iWindowManager;
74         
75         WeeklyViewWidget *iWeeklyView;
76         SettingsView *iSettingsView;
77         RoomStatusIndicatorWidget *iRoomStatusIndicator;
78         PasswordDialog *iPasswordDialog;
79         ProgressBar *iProgressBar;
80         MeetingInfoDialog *iMeetingInfo;
81 };
82
83 #endif /*UIMANAGER_H_*/