@@ -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
3355OpenRGBSettingsPage::~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+ }
0 commit comments