df7fe00a2e2e94225c5846d8db3a44fab1d01253
[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 private slots:
45
46         void meetingsFetched( const QList<Meeting*> &aMeetings );
47         void meetingDetailsFetched( Meeting &aDetailedMeeting );
48         void currentRoomChanged( Room *aRoom );
49         void progressBarCancelled();
50         void updateTime( QDateTime aDateTime );
51         void passwordEntered( PasswordDialog::PasswordStatus aStatus );
52         void showMeetingProgressBar( Meeting *aMeeting );
53         void updateProgressBarText( const QString &aText );
54
55 private:
56         
57         void createWeeklyView();
58         void createSettingsView();
59         void createRoomStatusIndicator();
60         void createPasswordDialog();
61         void createProgressBar();
62         void createMeetingInfoDialog();
63         
64 private:
65         Engine *iEngine;
66         WindowManager *iWindowManager;
67         
68         WeeklyViewWidget *iWeeklyView;
69         SettingsView *iSettingsView;
70         RoomStatusIndicatorWidget *iRoomStatusIndicator;
71         PasswordDialog *iPasswordDialog;
72         ProgressBar *iProgressBar;
73         MeetingInfoDialog *iMeetingInfo;
74 };
75
76 #endif /*UIMANAGER_H_*/