]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - apps/thermostat-demo.git/blob - optionswidget.cpp
thermostat_demo_qt5.desktop: add WinType as null
[apps/thermostat-demo.git] / optionswidget.cpp
1 #include "optionswidget.h"\r
2 #include "awayscreen.h"\r
3 #include "thermostatwidget.h"\r
4 #include "schedulescreen.h"\r
5 #include "settingscreen.h"\r
6 #include "mainwindow.h"\r
7 \r
8 OptionsWidget::OptionsWidget(QWidget *parent) :\r
9     QWidget(parent)\r
10 {\r
11     int optionButtonIconSize = 50;\r
12 \r
13     setObjectName("optionsWidget");\r
14     setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);\r
15     setAttribute(Qt::WA_StyledBackground,true);\r
16 \r
17     // create settings button\r
18     settingsButton = new QPushButton();\r
19     settingsButton->setIcon(QIcon(":/Images/glossy-blue-orb-icon-gears.png"));\r
20     settingsButton->setIconSize(QSize(optionButtonIconSize,optionButtonIconSize));\r
21     settingsButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);\r
22     settingsButton->setFocusPolicy(Qt::NoFocus);\r
23 \r
24     // create settings screen\r
25     settingScreen = new SettingScreen;\r
26     // when settings button is clicked, show settings screen\r
27     connect(settingsButton,SIGNAL(clicked()),settingScreen,SLOT(showFullScreen()));\r
28     // pass C/F value from settings screen to options widget and out to main window\r
29     connect(settingScreen, SIGNAL(valueChanged()), this, SIGNAL(valueChanged()));\r
30     // pass new city string value from settings screen to options widget and out to main window\r
31     connect(settingScreen, SIGNAL(cityChanged()), this, SIGNAL(cityChanged()));\r
32 \r
33     // create new calender button\r
34     calendarButton = new QPushButton();\r
35     calendarButton->setIcon(QIcon(":/Images/glossy-blue-orb-icon-calendar.png"));\r
36     calendarButton->setIconSize(QSize(optionButtonIconSize,optionButtonIconSize));\r
37     calendarButton->setFocusPolicy(Qt::NoFocus);\r
38     calendarButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);\r
39 \r
40     // create new schedule screen\r
41     scheduleScreen = new ScheduleScreen;\r
42     connect(calendarButton,SIGNAL(clicked()),scheduleScreen,SLOT(showFullScreen()));\r
43     connect(settingScreen, SIGNAL(valueChanged()), scheduleScreen, SIGNAL(valueChanged()));\r
44 \r
45     // create new away button\r
46     awayButton = new QPushButton();\r
47     awayButton->setIcon(QIcon(":/Images/glossy-blue-orb-icon-airplane.png"));\r
48     awayButton->setIconSize(QSize(optionButtonIconSize,optionButtonIconSize));\r
49     awayButton->setFocusPolicy(Qt::NoFocus);\r
50     awayButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);\r
51 \r
52     // create new away screen\r
53     awayScreen = new AwayScreen;\r
54     connect(awayButton,SIGNAL(clicked()),awayScreen,SLOT(showFullScreen()));\r
55     connect(this, SIGNAL(currentTempChanged()), awayScreen, SLOT(updateCurrentTemp()));\r
56     connect(settingScreen, SIGNAL(valueChanged()), awayScreen, SLOT(updateUnit()));\r
57 \r
58 \r
59     // create layout\r
60     QHBoxLayout *optionsLayout = new QHBoxLayout;\r
61     optionsLayout->addWidget(settingsButton);\r
62     optionsLayout->addWidget(calendarButton);\r
63     optionsLayout->addWidget(awayButton);\r
64     optionsLayout->setSpacing(0);\r
65 \r
66     // show layout\r
67     setLayout(optionsLayout);\r
68 \r
69 }\r