Skip to content

Commit 1df6e8f

Browse files
Add geometry settings to settings page
1 parent c1b9f79 commit 1df6e8f

3 files changed

Lines changed: 68 additions & 16 deletions

File tree

qt/OpenRGBSettingsPage.cpp

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ OpenRGBSettingsPage::OpenRGBSettingsPage(QWidget *parent) :
1010
{
1111
ui->setupUi(this);
1212

13-
13+
/*---------------------------------------------------------*\
14+
| Load theme settings (Windows only) |
15+
\*---------------------------------------------------------*/
1416
#ifdef _WIN32
1517
ui->ComboBoxTheme->addItems({"auto", "light", "dark"});
1618

@@ -26,8 +28,28 @@ OpenRGBSettingsPage::OpenRGBSettingsPage(QWidget *parent) :
2628
ui->ThemeLabel->hide();
2729
#endif
2830

31+
/*---------------------------------------------------------*\
32+
| Load user interface settings (Windows only) |
33+
\*---------------------------------------------------------*/
2934
json ui_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("UserInterface");
30-
ui->CheckboxMinimizeOnClose->setChecked(ui_settings["minimize_on_close"]);
35+
36+
if(ui_settings.contains("minimize_on_close"))
37+
{
38+
ui->CheckboxMinimizeOnClose->setChecked(ui_settings["minimize_on_close"]);
39+
}
40+
41+
if(ui_settings.contains("geometry"))
42+
{
43+
if(ui_settings["geometry"].contains("load_geometry"))
44+
{
45+
ui->CheckboxLoadGeometry->setChecked(ui_settings["geometry"]["load_geometry"]);
46+
}
47+
48+
if(ui_settings["geometry"].contains("save_on_exit"))
49+
{
50+
ui->CheckboxSaveGeometry->setChecked(ui_settings["geometry"]["save_on_exit"]);
51+
}
52+
}
3153
}
3254

3355
OpenRGBSettingsPage::~OpenRGBSettingsPage()
@@ -51,9 +73,23 @@ void OpenRGBSettingsPage::on_CheckboxMinimizeOnClose_clicked()
5173
SaveSettings();
5274
}
5375

54-
void OpenRGBSettingsPage::SaveSettings()
76+
void Ui::OpenRGBSettingsPage::on_CheckboxLoadGeometry_clicked()
5577
{
56-
ResourceManager::get()->GetSettingsManager()->SaveSettings();
78+
json ui_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("UserInterface");
79+
ui_settings["geometry"]["load_geometry"] = ui->CheckboxLoadGeometry->isChecked();
80+
ResourceManager::get()->GetSettingsManager()->SetSettings("UserInterface", ui_settings);
81+
SaveSettings();
5782
}
5883

84+
void Ui::OpenRGBSettingsPage::on_CheckboxSaveGeometry_clicked()
85+
{
86+
json ui_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("UserInterface");
87+
ui_settings["geometry"]["save_on_exit"] = ui->CheckboxSaveGeometry->isChecked();
88+
ResourceManager::get()->GetSettingsManager()->SetSettings("UserInterface", ui_settings);
89+
SaveSettings();
90+
}
5991

92+
void OpenRGBSettingsPage::SaveSettings()
93+
{
94+
ResourceManager::get()->GetSettingsManager()->SaveSettings();
95+
}

qt/OpenRGBSettingsPage.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ class Ui::OpenRGBSettingsPage : public QWidget
2323
private slots:
2424
void on_ComboBoxTheme_currentTextChanged(const QString);
2525
void on_CheckboxMinimizeOnClose_clicked();
26+
void on_CheckboxLoadGeometry_clicked();
27+
void on_CheckboxSaveGeometry_clicked();
2628
};
2729

2830
#endif // OPENRGBSETTINGSPAGE_H

qt/OpenRGBSettingsPage.ui

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,33 @@
1414
<string>Form</string>
1515
</property>
1616
<layout class="QGridLayout" name="gridLayout">
17+
<item row="7" column="0">
18+
<spacer name="verticalSpacer">
19+
<property name="orientation">
20+
<enum>Qt::Vertical</enum>
21+
</property>
22+
<property name="sizeHint" stdset="0">
23+
<size>
24+
<width>20</width>
25+
<height>40</height>
26+
</size>
27+
</property>
28+
</spacer>
29+
</item>
30+
<item row="4" column="0">
31+
<widget class="QCheckBox" name="CheckboxLoadGeometry">
32+
<property name="text">
33+
<string>Load Window Geometry</string>
34+
</property>
35+
</widget>
36+
</item>
1737
<item row="0" column="1">
1838
<widget class="QComboBox" name="ComboBoxTheme"/>
1939
</item>
2040
<item row="3" column="0">
2141
<widget class="QCheckBox" name="CheckboxMinimizeOnClose">
2242
<property name="text">
23-
<string>Minimize on close</string>
43+
<string>Minimize On Close</string>
2444
</property>
2545
</widget>
2646
</item>
@@ -31,18 +51,12 @@
3151
</property>
3252
</widget>
3353
</item>
34-
<item row="4" column="0">
35-
<spacer name="verticalSpacer">
36-
<property name="orientation">
37-
<enum>Qt::Vertical</enum>
38-
</property>
39-
<property name="sizeHint" stdset="0">
40-
<size>
41-
<width>20</width>
42-
<height>40</height>
43-
</size>
54+
<item row="6" column="0">
55+
<widget class="QCheckBox" name="CheckboxSaveGeometry">
56+
<property name="text">
57+
<string>Save Geometry On Close</string>
4458
</property>
45-
</spacer>
59+
</widget>
4660
</item>
4761
</layout>
4862
</widget>

0 commit comments

Comments
 (0)