aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/settings/SettingsAppearance.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/settings/SettingsAppearance.cpp')
-rw-r--r--src/ui/settings/SettingsAppearance.cpp160
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