Skip to content

Commit fa4345e

Browse files
committed
Add settings dialog, Add opacity update, work on settings update handler
1 parent f317db2 commit fa4345e

File tree

8 files changed

+336
-4
lines changed

8 files changed

+336
-4
lines changed

SmartTimer/SmartTimer.pro

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ SOURCES += \
3636
toggleswitch.cpp \
3737
alertwidget.cpp \
3838
addalarmdialog.cpp \
39-
changealarmdialog.cpp
39+
changealarmdialog.cpp \
40+
globalsettingsdialog.cpp
4041

4142
HEADERS += \
4243
mainwindow.h \
@@ -48,7 +49,8 @@ HEADERS += \
4849
alertwidget.h \
4950
addalarmdialog.h \
5051
changealarmdialog.h \
51-
widgetsettings.h
52+
widgetsettings.h \
53+
globalsettingsdialog.h
5254

5355
FORMS += \
5456
mainwindow.ui \
@@ -57,7 +59,8 @@ FORMS += \
5759
changetimerdialog.ui \
5860
alertwidget.ui \
5961
addalarmdialog.ui \
60-
changealarmdialog.ui
62+
changealarmdialog.ui \
63+
globalsettingsdialog.ui
6164

6265
# Default rules for deployment.
6366
qnx: target.path = /tmp/$${TARGET}/bin
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#include "globalsettingsdialog.h"
2+
#include "ui_globalsettingsdialog.h"
3+
4+
#include <QFile>
5+
#include <QSlider>
6+
7+
GlobalSettingsDialog::GlobalSettingsDialog(GlobalSettings old, QWidget *parent) :
8+
QDialog(parent),
9+
ui(new Ui::GlobalSettingsDialog)
10+
{
11+
ui->setupUi(this);
12+
13+
QFile file(":/stylesheet.qss");
14+
if(file.open(QIODevice::ReadOnly | QIODevice::Text))
15+
{
16+
this->setStyleSheet(file.readAll());
17+
file.close();
18+
}
19+
20+
oldSettings = old;
21+
22+
ui->opacitySlider->setValue(static_cast<int>(old.windowOpacity*100));
23+
ui->SliderValue->setText(QString::number(static_cast<int>(old.windowOpacity*100))+"%");
24+
25+
connect(ui->cancelButton,SIGNAL(clicked()),this,SLOT(close()));
26+
connect(ui->confirmButton,SIGNAL(clicked()),this, SLOT(confirmed()));
27+
connect( ui->opacitySlider,SIGNAL(valueChanged(int)),this,SLOT(opacityChanged()));
28+
29+
}
30+
31+
GlobalSettingsDialog::~GlobalSettingsDialog()
32+
{
33+
delete ui;
34+
}
35+
36+
void GlobalSettingsDialog::confirmed()
37+
{
38+
GlobalSettings newSettings(ui->opacitySlider->value()/100.0,ui->alarmFormat->text(), ui->TimerFormat->text());
39+
emit changeSettings(newSettings);
40+
this->close();
41+
}
42+
43+
void GlobalSettingsDialog::canceled()
44+
{
45+
emit changeSettings(oldSettings);
46+
this->close();
47+
}
48+
49+
void GlobalSettingsDialog::opacityChanged()
50+
{
51+
GlobalSettings newSettings(ui->opacitySlider->value()/100.0,ui->alarmFormat->text(), ui->TimerFormat->text());
52+
53+
ui->SliderValue->setText(QString::number(static_cast<int>(newSettings.windowOpacity*100))+"%");
54+
55+
emit changeSettings(newSettings);
56+
}

SmartTimer/globalsettingsdialog.h

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#ifndef GLOBALSETTINGSDIALOG_H
2+
#define GLOBALSETTINGSDIALOG_H
3+
4+
#include "widgetsettings.h"
5+
6+
#include <QDialog>
7+
8+
namespace Ui {
9+
class GlobalSettingsDialog;
10+
}
11+
12+
class GlobalSettingsDialog : public QDialog
13+
{
14+
Q_OBJECT
15+
16+
public:
17+
explicit GlobalSettingsDialog(GlobalSettings old, QWidget *parent = nullptr);
18+
~GlobalSettingsDialog();
19+
public slots:
20+
void confirmed();
21+
void canceled();
22+
void opacityChanged();
23+
signals:
24+
void changeSettings(GlobalSettings settings);
25+
26+
private:
27+
Ui::GlobalSettingsDialog *ui;
28+
29+
GlobalSettings oldSettings;
30+
};
31+
32+
#endif // GLOBALSETTINGSDIALOG_H

SmartTimer/globalsettingsdialog.ui

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<ui version="4.0">
3+
<class>GlobalSettingsDialog</class>
4+
<widget class="QDialog" name="GlobalSettingsDialog">
5+
<property name="geometry">
6+
<rect>
7+
<x>0</x>
8+
<y>0</y>
9+
<width>420</width>
10+
<height>465</height>
11+
</rect>
12+
</property>
13+
<property name="minimumSize">
14+
<size>
15+
<width>420</width>
16+
<height>0</height>
17+
</size>
18+
</property>
19+
<property name="maximumSize">
20+
<size>
21+
<width>420</width>
22+
<height>16777215</height>
23+
</size>
24+
</property>
25+
<property name="windowTitle">
26+
<string>Global settings</string>
27+
</property>
28+
<property name="windowIcon">
29+
<iconset resource="resources.qrc">
30+
<normaloff>:/icons/change-icon.png</normaloff>:/icons/change-icon.png</iconset>
31+
</property>
32+
<layout class="QGridLayout" name="gridLayout">
33+
<item row="0" column="0">
34+
<layout class="QVBoxLayout" name="verticalLayout">
35+
<item>
36+
<layout class="QHBoxLayout" name="horizontalLayout_2">
37+
<item>
38+
<widget class="QLabel" name="label">
39+
<property name="text">
40+
<string>Window opacity:</string>
41+
</property>
42+
</widget>
43+
</item>
44+
<item>
45+
<spacer name="horizontalSpacer">
46+
<property name="orientation">
47+
<enum>Qt::Horizontal</enum>
48+
</property>
49+
<property name="sizeHint" stdset="0">
50+
<size>
51+
<width>20</width>
52+
<height>20</height>
53+
</size>
54+
</property>
55+
</spacer>
56+
</item>
57+
<item>
58+
<widget class="QLabel" name="SliderValue">
59+
<property name="text">
60+
<string/>
61+
</property>
62+
</widget>
63+
</item>
64+
<item>
65+
<widget class="QSlider" name="opacitySlider">
66+
<property name="minimumSize">
67+
<size>
68+
<width>200</width>
69+
<height>0</height>
70+
</size>
71+
</property>
72+
<property name="minimum">
73+
<number>20</number>
74+
</property>
75+
<property name="maximum">
76+
<number>100</number>
77+
</property>
78+
<property name="pageStep">
79+
<number>0</number>
80+
</property>
81+
<property name="orientation">
82+
<enum>Qt::Horizontal</enum>
83+
</property>
84+
</widget>
85+
</item>
86+
</layout>
87+
</item>
88+
<item>
89+
<layout class="QHBoxLayout" name="horizontalLayout_3">
90+
<item>
91+
<widget class="QLabel" name="label_2">
92+
<property name="text">
93+
<string>Alarm Time format:</string>
94+
</property>
95+
</widget>
96+
</item>
97+
<item>
98+
<spacer name="horizontalSpacer_2">
99+
<property name="orientation">
100+
<enum>Qt::Horizontal</enum>
101+
</property>
102+
<property name="sizeHint" stdset="0">
103+
<size>
104+
<width>40</width>
105+
<height>20</height>
106+
</size>
107+
</property>
108+
</spacer>
109+
</item>
110+
<item>
111+
<widget class="QLineEdit" name="alarmFormat"/>
112+
</item>
113+
</layout>
114+
</item>
115+
<item>
116+
<layout class="QHBoxLayout" name="horizontalLayout_4">
117+
<item>
118+
<widget class="QLabel" name="label_3">
119+
<property name="text">
120+
<string>Timer Time format:</string>
121+
</property>
122+
</widget>
123+
</item>
124+
<item>
125+
<spacer name="horizontalSpacer_3">
126+
<property name="orientation">
127+
<enum>Qt::Horizontal</enum>
128+
</property>
129+
<property name="sizeHint" stdset="0">
130+
<size>
131+
<width>40</width>
132+
<height>20</height>
133+
</size>
134+
</property>
135+
</spacer>
136+
</item>
137+
<item>
138+
<widget class="QLineEdit" name="TimerFormat"/>
139+
</item>
140+
</layout>
141+
</item>
142+
<item>
143+
<layout class="QHBoxLayout" name="horizontalLayout">
144+
<item>
145+
<widget class="QPushButton" name="confirmButton">
146+
<property name="text">
147+
<string>Confirtm</string>
148+
</property>
149+
</widget>
150+
</item>
151+
<item>
152+
<widget class="QPushButton" name="cancelButton">
153+
<property name="text">
154+
<string>Cancel</string>
155+
</property>
156+
</widget>
157+
</item>
158+
</layout>
159+
</item>
160+
</layout>
161+
</item>
162+
</layout>
163+
</widget>
164+
<resources>
165+
<include location="resources.qrc"/>
166+
</resources>
167+
<connections/>
168+
</ui>

SmartTimer/mainwindow.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include "addtimerdialog.h"
55
#include "addalarmdialog.h"
66
#include "alertwidget.h"
7+
#include "globalsettingsdialog.h"
78

89

910
#include <iostream>
@@ -34,6 +35,7 @@ MainWindow::MainWindow(QWidget *parent) :
3435

3536
connect(ui->addTimerButton,SIGNAL(clicked()),this,SLOT(addTimer()));
3637
connect(ui->addAlarmButton,SIGNAL(clicked()),this,SLOT(addAlarm()));
38+
connect(ui->settingsButton,SIGNAL(clicked()),this,SLOT(changeSettings()));
3739

3840
connect(logger, SIGNAL(createTimer(int,QString)), this, SLOT(onTimeRecieved(int,QString)));
3941
connect(logger, SIGNAL(createAlarm(int,QString,bool)), this, SLOT(onAlarmTimeRecieved(int,QString,bool)));
@@ -87,6 +89,16 @@ void MainWindow::addAlarm()
8789
addDial->exec();
8890
}
8991

92+
void MainWindow::changeSettings()
93+
{
94+
GlobalSettingsDialog* dial = new GlobalSettingsDialog(this->Settings,this);
95+
96+
connect(dial,SIGNAL(changeSettings(GlobalSettings)),this,SLOT(onSettingsRecieved(GlobalSettings)));
97+
98+
dial->exec();
99+
100+
}
101+
90102
void MainWindow::onTimeRecieved(int msecs, const QString& _name)
91103
{
92104
auto *newTimer = new TimerWidget(msecs, _name);
@@ -142,8 +154,13 @@ void MainWindow::onAlarmTimeRecieved(int msecs, const QString& _name, bool turne
142154
void MainWindow::onSettingsRecieved(GlobalSettings settings)
143155
{
144156
Settings = settings;
157+
158+
this->setWindowOpacity(Settings.windowOpacity);
145159
}
146160

161+
// TODO: here
162+
// update settings handler
163+
147164
void MainWindow::tabBlinking(QString tabName, bool enable)
148165
{
149166
if (enable)

SmartTimer/mainwindow.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,15 @@ class MainWindow : public QMainWindow
3535
public slots:
3636
void addTimer();
3737
void addAlarm();
38+
void changeSettings();
3839
void onTimeRecieved(int msecs, const QString& _name);
3940
void remove(const TimerWidget* twidget);
4041
void remove(const alertwidget* awidget);
4142
void onTimerFinished();
4243
void onAlarmTimeRecieved(int msecs, const QString& _name, bool turnedOn);
4344
void onSettingsRecieved(GlobalSettings settings);
4445

46+
4547
void tabBlinking(QString tabName, bool enable);
4648
void alarmsTabBlink();
4749
void timersTabBlink();

0 commit comments

Comments
 (0)