ViewBase added and major changes to use the new architecture
[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 &size);
35
36 private slots:
37         //! Slot to handle the Ok button pressing.
38         void handleOkClicked();
39         //! Slot to handle the cancel button pressing.
40         void cancelClicked();
41
42 private:
43         //! Initialize "Settings" tab.
44         QWidget *initSettingsTab();
45         //! Initialize "Week View" tab.
46         QWidget *initWeekViewTab();
47         //! Intialize "Resources" tab.
48         QWidget *initResourcesTab();
49         //! Initialize "KIOSK Mode" tab.
50         QWidget *initKioskModeTab();
51
52         //! The tabbed settings view component.
53         QTabWidget *iTabWidget;
54         //! OK button to dismiss the settings view with saving the settings.
55         QPushButton *iOkButton;
56         //! Cancel button to dismiss the settings view without saving settings.
57         QPushButton *iCancelButton;
58         //! Settings tab.
59         QWidget *iSettingsTab;
60         //! Week View tab.
61         QWidget *iWeekViewTab;
62         //! Resources tab.
63         QWidget *iResourcesTab;
64         //! KIOSK Mode tab.
65         QWidget *iKioskModeTab;
66
67         //! User name to the remote server.
68         QLineEdit *iUserName;
69         //! Password to the remote server.
70         QLineEdit *iPassword;
71         //! Remote server address.
72         QLineEdit *iServerAddress;
73         //! Refresh interval in seconds.
74         QLineEdit *iRefreshInterval;
75         //! When the day starts in the calendar view.
76         QTimeEdit *iDayStartTime;
77         //! When the day ends in the calendar view.
78         QTimeEdit *iDayEndTime;
79         //! Selection for showing five days in the calendar.
80         QRadioButton *iFiveDays;
81         //! Selection for showing seven days in the calendar.
82         QRadioButton *iSevenDays;
83         //! Power saving enabling.
84         QCheckBox *iPowerSaveEnabled;
85         //! Start time for activating power save.
86         QTimeEdit *iPowerSaveStartTime;
87         //! End time for deactivating power save.
88         QTimeEdit *iPowerSaveEndTime;
89 };
90
91 #endif /*SETTINGSVIEW_H_*/