From 1df6e8f559d76c0d21551e2001fb946b4990642e Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Fri, 28 May 2021 12:07:38 -0500 Subject: [PATCH] Add geometry settings to settings page --- qt/OpenRGBSettingsPage.cpp | 44 ++++++++++++++++++++++++++++++--- qt/OpenRGBSettingsPage.h | 2 ++ qt/OpenRGBSettingsPage.ui | 50 ++++++++++++++++++++++++-------------- 3 files changed, 74 insertions(+), 22 deletions(-) diff --git a/qt/OpenRGBSettingsPage.cpp b/qt/OpenRGBSettingsPage.cpp index cd9c25f63..1c6101f24 100644 --- a/qt/OpenRGBSettingsPage.cpp +++ b/qt/OpenRGBSettingsPage.cpp @@ -10,7 +10,9 @@ OpenRGBSettingsPage::OpenRGBSettingsPage(QWidget *parent) : { ui->setupUi(this); - + /*---------------------------------------------------------*\ + | Load theme settings (Windows only) | + \*---------------------------------------------------------*/ #ifdef _WIN32 ui->ComboBoxTheme->addItems({"auto", "light", "dark"}); @@ -26,8 +28,28 @@ OpenRGBSettingsPage::OpenRGBSettingsPage(QWidget *parent) : ui->ThemeLabel->hide(); #endif + /*---------------------------------------------------------*\ + | Load user interface settings (Windows only) | + \*---------------------------------------------------------*/ json ui_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("UserInterface"); - ui->CheckboxMinimizeOnClose->setChecked(ui_settings["minimize_on_close"]); + + if(ui_settings.contains("minimize_on_close")) + { + ui->CheckboxMinimizeOnClose->setChecked(ui_settings["minimize_on_close"]); + } + + if(ui_settings.contains("geometry")) + { + if(ui_settings["geometry"].contains("load_geometry")) + { + ui->CheckboxLoadGeometry->setChecked(ui_settings["geometry"]["load_geometry"]); + } + + if(ui_settings["geometry"].contains("save_on_exit")) + { + ui->CheckboxSaveGeometry->setChecked(ui_settings["geometry"]["save_on_exit"]); + } + } } OpenRGBSettingsPage::~OpenRGBSettingsPage() @@ -51,9 +73,23 @@ void OpenRGBSettingsPage::on_CheckboxMinimizeOnClose_clicked() SaveSettings(); } +void Ui::OpenRGBSettingsPage::on_CheckboxLoadGeometry_clicked() +{ + json ui_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("UserInterface"); + ui_settings["geometry"]["load_geometry"] = ui->CheckboxLoadGeometry->isChecked(); + ResourceManager::get()->GetSettingsManager()->SetSettings("UserInterface", ui_settings); + SaveSettings(); +} + +void Ui::OpenRGBSettingsPage::on_CheckboxSaveGeometry_clicked() +{ + json ui_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("UserInterface"); + ui_settings["geometry"]["save_on_exit"] = ui->CheckboxSaveGeometry->isChecked(); + ResourceManager::get()->GetSettingsManager()->SetSettings("UserInterface", ui_settings); + SaveSettings(); +} + void OpenRGBSettingsPage::SaveSettings() { ResourceManager::get()->GetSettingsManager()->SaveSettings(); } - - diff --git a/qt/OpenRGBSettingsPage.h b/qt/OpenRGBSettingsPage.h index 4887fa86c..795370fb0 100644 --- a/qt/OpenRGBSettingsPage.h +++ b/qt/OpenRGBSettingsPage.h @@ -23,6 +23,8 @@ private: private slots: void on_ComboBoxTheme_currentTextChanged(const QString); void on_CheckboxMinimizeOnClose_clicked(); + void on_CheckboxLoadGeometry_clicked(); + void on_CheckboxSaveGeometry_clicked(); }; #endif // OPENRGBSETTINGSPAGE_H diff --git a/qt/OpenRGBSettingsPage.ui b/qt/OpenRGBSettingsPage.ui index 0acf7405c..67c30c748 100644 --- a/qt/OpenRGBSettingsPage.ui +++ b/qt/OpenRGBSettingsPage.ui @@ -14,24 +14,7 @@ Form - - - - - - - Minimize on close - - - - - - - Theme - - - - + Qt::Vertical @@ -44,6 +27,37 @@ + + + + Load Window Geometry + + + + + + + + + + Minimize On Close + + + + + + + Theme + + + + + + + Save Geometry On Close + + +