de123b63f916497a1bcf6f0928a5d901bd0a3dbf
[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         void hideProgressBar();
55
56 private:
57         
58         void createWeeklyView();
59         void createSettingsView();
60         void createRoomStatusIndicator();
61         void createPasswordDialog();
62         void createProgressBar();
63         void createMeetingInfoDialog();
64         
65 private:
66         Engine *iEngine;
67         WindowManager *iWindowManager;
68         
69         WeeklyViewWidget *iWeeklyView;
70         SettingsView *iSettingsView;
71         RoomStatusIndicatorWidget *iRoomStatusIndicator;
72         PasswordDialog *iPasswordDialog;
73         ProgressBar *iProgressBar;
74         MeetingInfoDialog *iMeetingInfo;
75 };
76
77 #endif /*UIMANAGER_H_*/