diff options
Diffstat (limited to 'src/ui/settings/SettingsAppearance.cpp')
-rw-r--r-- | src/ui/settings/SettingsAppearance.cpp | 160 |
1 files changed, 109 insertions, 51 deletions
diff --git a/src/ui/settings/SettingsAppearance.cpp b/src/ui/settings/SettingsAppearance.cpp index 91bef9ef..49dc349c 100644 --- a/src/ui/settings/SettingsAppearance.cpp +++ b/src/ui/settings/SettingsAppearance.cpp @@ -24,13 +24,11 @@ #include "SettingsAppearance.h" +#include "GlobalSettingStation.h" + namespace GpgFrontend::UI { -AppearanceTab::AppearanceTab(QWidget* parent) - : QWidget(parent), - appPath(qApp->applicationDirPath()), - settings(RESOURCE_DIR(appPath) + "/conf/gpgfrontend.ini", - QSettings::IniFormat) { +AppearanceTab::AppearanceTab(QWidget* parent) : QWidget(parent) { /***************************************** * Icon-Size-Box *****************************************/ @@ -91,7 +89,7 @@ AppearanceTab::AppearanceTab(QWidget* parent) infoBoardFontSizeSpin->setRange(9, 18); infoBoardFontSizeSpin->setValue(10); infoBoardFontSizeSpin->setSingleStep(1); - infoBoardLayout->addWidget(new QLabel(_("Front Size"))); + infoBoardLayout->addWidget(new QLabel(_("Font Size in Information Board"))); infoBoardLayout->addWidget(infoBoardFontSizeSpin); infoBoardBox->setLayout(infoBoardLayout); @@ -111,46 +109,70 @@ AppearanceTab::AppearanceTab(QWidget* parent) * appropriately **********************************/ void AppearanceTab::setSettings() { - // Iconsize - QSize iconSize = settings.value("toolbar/iconsize", QSize(24, 24)).toSize(); - switch (iconSize.height()) { - case 12: - iconSizeSmall->setChecked(true); - break; - case 24: - iconSizeMedium->setChecked(true); - break; - case 32: - iconSizeLarge->setChecked(true); - break; + auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); + + try { + int width = settings.lookup("window.icon_size.width"); + int height = settings.lookup("window.icon_size.height"); + + auto icon_size = QSize(width, height); + + switch (icon_size.height()) { + case 12: + iconSizeSmall->setChecked(true); + break; + case 24: + iconSizeMedium->setChecked(true); + break; + case 32: + iconSizeLarge->setChecked(true); + break; + } + + } catch (...) { + LOG(ERROR) << _("Setting Operation Error") << _("icon_size"); } - // Iconstyle - Qt::ToolButtonStyle iconStyle = static_cast<Qt::ToolButtonStyle>( - settings.value("toolbar/iconstyle", Qt::ToolButtonTextUnderIcon) - .toUInt()); - switch (iconStyle) { - case Qt::ToolButtonTextOnly: - iconTextButton->setChecked(true); - break; - case Qt::ToolButtonIconOnly: - iconIconsButton->setChecked(true); - break; - case Qt::ToolButtonTextUnderIcon: - iconAllButton->setChecked(true); - break; - default: - break; + + // icon_style + try { + int s_icon_style = settings.lookup("window.icon_style"); + auto icon_style = static_cast<Qt::ToolButtonStyle>(s_icon_style); + + switch (icon_style) { + case Qt::ToolButtonTextOnly: + iconTextButton->setChecked(true); + break; + case Qt::ToolButtonIconOnly: + iconIconsButton->setChecked(true); + break; + case Qt::ToolButtonTextUnderIcon: + iconAllButton->setChecked(true); + break; + default: + break; + } + + } catch (...) { + LOG(ERROR) << _("Setting Operation Error") << _("icon_style"); } // Window Save and Position - if (settings.value("window/windowSave").toBool()) - windowSizeCheckBox->setCheckState(Qt::Checked); - - // infoBoardFontSize - auto infoBoardFontSize = - settings.value("informationBoard/fontSize", 10).toInt(); - if (infoBoardFontSize < 9 || infoBoardFontSize > 18) infoBoardFontSize = 10; - infoBoardFontSizeSpin->setValue(infoBoardFontSize); + try { + bool window_save = settings.lookup("window.window_save"); + if (window_save) windowSizeCheckBox->setCheckState(Qt::Checked); + + } catch (...) { + LOG(ERROR) << _("Setting Operation Error") << _("window_save"); + } + + // info board font size + try { + int info_font_size = settings.lookup("window.info_font_size"); + if (info_font_size < 9 || info_font_size > 18) info_font_size = 10; + infoBoardFontSizeSpin->setValue(info_font_size); + } catch (...) { + LOG(ERROR) << _("Setting Operation Error") << _("info_font_size"); + } } /*********************************** @@ -158,34 +180,70 @@ void AppearanceTab::setSettings() { * write them to settings-file *************************************/ void AppearanceTab::applySettings() { + auto& settings = + GpgFrontend::UI::GlobalSettingStation::GetInstance().GetUISettings(); + + if (!settings.exists("window") || + settings.lookup("window").getType() != libconfig::Setting::TypeGroup) + settings.add("window", libconfig::Setting::TypeGroup); + + auto& window = settings["window"]; + + int icon_size = 24; switch (iconSizeGroup->checkedId()) { case 1: - settings.setValue("toolbar/iconsize", QSize(12, 12)); + icon_size = 12; break; case 2: - settings.setValue("toolbar/iconsize", QSize(24, 24)); + icon_size = 24; break; case 3: - settings.setValue("toolbar/iconsize", QSize(32, 32)); + icon_size = 32; break; } + if (!window.exists("icon_size")) { + auto& icon_size_settings = + window.add("icon_size", libconfig::Setting::TypeGroup); + icon_size_settings.add("width", libconfig::Setting::TypeInt) = icon_size; + icon_size_settings.add("height", libconfig::Setting::TypeInt) = icon_size; + } else { + window["icon_size"]["width"] = icon_size; + window["icon_size"]["height"] = icon_size; + } + + auto icon_style = Qt::ToolButtonTextUnderIcon; switch (iconStyleGroup->checkedId()) { case 1: - settings.setValue("toolbar/iconstyle", Qt::ToolButtonTextOnly); + icon_style = Qt::ToolButtonTextOnly; break; case 2: - settings.setValue("toolbar/iconstyle", Qt::ToolButtonIconOnly); + icon_style = Qt::ToolButtonIconOnly; break; case 3: - settings.setValue("toolbar/iconstyle", Qt::ToolButtonTextUnderIcon); + icon_style = Qt::ToolButtonTextUnderIcon; break; } - settings.setValue("window/windowSave", windowSizeCheckBox->isChecked()); + if (!window.exists("icon_style")) { + window.add("icon_style", libconfig::Setting::TypeInt) = icon_style; + } else { + window["icon_style"] = icon_style; + } - settings.setValue("informationBoard/fontSize", - infoBoardFontSizeSpin->value()); + if (!window.exists("window_save")) { + window.add("window_save", libconfig::Setting::TypeBoolean) = + windowSizeCheckBox->isChecked(); + } else { + window["window_save"] = windowSizeCheckBox->isChecked(); + } + + if (!window.exists("info_font_size")) { + window.add("info_font_size", libconfig::Setting::TypeBoolean) = + infoBoardFontSizeSpin->value(); + } else { + window["info_font_size"] = infoBoardFontSizeSpin->value(); + } } } // namespace GpgFrontend::UI |