2845a8dad297016af1f5ac42eb0d7b8f797b3f58
[qtmeetings] / src / UserInterface / Views / SettingsView.h
1 #ifndef SETTINGSVIEW_H_
2 #define SETTINGSVIEW_H_
3
4 #include "ViewBase.h"
5
6 class QTabWidget;
7 class QPushButton;
8 class QLineEdit;
9 class QTimeEdit;
10 class QRadioButton;
11 class QCheckBox;
12 class QSize;
13
14 //! User interface class. Shows the settings view and handles configuration changes.
15 class SettingsView : public ViewBase
16 {
17         Q_OBJECT
18
19 public:
20         //! Constructor.
21         /*!
22          * Constructor to initialize and prepare the settings view. This calls internally
23          * the helper methods to initialize individual setting tabs.
24          * \param Parent component.
25          */
26         SettingsView( QWidget *aParent = 0 );
27         //! Destructor.
28         virtual ~SettingsView();
29         
30 signals:
31         void okClicked();
32         
33 public slots:
34         void viewResized(const QSize &newSize, const QSize &oldSize);
35
36 private slots:
37         //! Slot to handle the Ok button pressing.
38         void handleOkClicked();
39
40 private:
41         //! Initialize "Settings" tab.
42         QWidget *initSettingsTab();
43         //! Initialize "Week View" tab.
44         QWidget *initWeekViewTab();
45         //! Intialize "Resources" tab.
46         QWidget *initResourcesTab();
47         //! Initialize "KIOSK Mode" tab.
48         QWidget *initKioskModeTab();
49
50         //! The tabbed settings view component.
51         QTabWidget *iTabWidget;
52         //! OK button to dismiss the settings view with saving the settings.
53         QPushButton *iOkButton;
54         //! Settings tab.
55         QWidget *iSettingsTab;
56         //! Week View tab.
57         QWidget *iWeekViewTab;
58         //! Resources tab.
59         QWidget *iResourcesTab;
60         //! KIOSK Mode tab.
61         QWidget *iKioskModeTab;
62
63         //! User name to the remote server.
64         QLineEdit *iUserName;
65         //! Password to the remote server.
66         QLineEdit *iPassword;
67         //! Remote server address.
68         QLineEdit *iServerAddress;
69         //! Refresh interval in seconds.
70         QLineEdit *iRefreshInterval;
71         //! When the day starts in the calendar view.
72         QTimeEdit *iDayStartTime;
73         //! When the day ends in the calendar view.
74         QTimeEdit *iDayEndTime;
75         //! Selection for showing five days in the calendar.
76         QRadioButton *iFiveDays;
77         //! Selection for showing seven days in the calendar.
78         QRadioButton *iSevenDays;
79         //! Power saving enabling.
80         QCheckBox *iPowerSaveEnabled;
81         //! Start time for activating power save.
82         QTimeEdit *iPowerSaveStartTime;
83         //! End time for deactivating power save.
84         QTimeEdit *iPowerSaveEndTime;
85 };
86
87 #endif /*SETTINGSVIEW_H_*/