diff options
author | Saturneric <[email protected]> | 2022-02-07 11:56:18 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2022-02-07 11:56:18 +0000 |
commit | 1028b92343c0f8579503d3439d1b6ae76c35b8ca (patch) | |
tree | ec2bc2b41e8c280b2653bb96b9a289654a36d8f4 | |
parent | <fix>(core, ui): Fix the remaining problems in the data object (diff) | |
download | GpgFrontend-1028b92343c0f8579503d3439d1b6ae76c35b8ca.tar.gz GpgFrontend-1028b92343c0f8579503d3439d1b6ae76c35b8ca.zip |
<fix>(ui): Adapt some settings transferred to the data object
Diffstat (limited to '')
-rw-r--r-- | src/ui/main_window/MainWindowSlotUI.cpp | 36 | ||||
-rw-r--r-- | src/ui/settings/SettingsAppearance.cpp | 138 | ||||
-rw-r--r-- | src/ui/settings/SettingsKeyServer.cpp | 69 | ||||
-rw-r--r-- | src/ui/widgets/InfoBoardWidget.cpp | 11 |
4 files changed, 93 insertions, 161 deletions
diff --git a/src/ui/main_window/MainWindowSlotUI.cpp b/src/ui/main_window/MainWindowSlotUI.cpp index 9b7e358d..42dd3be7 100644 --- a/src/ui/main_window/MainWindowSlotUI.cpp +++ b/src/ui/main_window/MainWindowSlotUI.cpp @@ -27,8 +27,9 @@ */ #include "MainWindow.h" -#include "ui/UserInterfaceUtils.h" #include "core/function/GlobalSettingStation.h" +#include "ui/UserInterfaceUtils.h" +#include "ui/struct/SettingsObject.h" namespace GpgFrontend::UI { @@ -104,20 +105,24 @@ void MainWindow::slot_open_settings_dialog() { connect(dialog, &SettingsDialog::finished, this, [&]() -> void { LOG(INFO) << "Setting Dialog Finished"; - auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); + SettingsObject main_windows_state("main_windows_state"); - int icon_width = settings["window"]["icon_size"]["width"]; - int icon_height = settings["window"]["icon_size"]["height"]; + int width = main_windows_state.Check("icon_size").Check("width", 24), + height = main_windows_state.Check("icon_size").Check("height", 24); + LOG(INFO) << "icon_size" << width << height; - this->setIconSize(QSize(icon_width, icon_height)); - import_button_->setIconSize(QSize(icon_width, icon_height)); + main_windows_state.Check("info_font_size", 10); - // Iconstyle + // icon_style + int s_icon_style = + main_windows_state.Check("icon_style", Qt::ToolButtonTextUnderIcon); + auto icon_style = static_cast<Qt::ToolButtonStyle>(s_icon_style); + this->setToolButtonStyle(icon_style); + import_button_->setToolButtonStyle(icon_style); - int icon_style = settings["window"]["icon_style"]; - auto button_style = static_cast<Qt::ToolButtonStyle>(icon_style); - this->setToolButtonStyle(button_style); - import_button_->setToolButtonStyle(button_style); + // icons ize + this->setIconSize(QSize(width, height)); + import_button_->setIconSize(QSize(width, height)); // restart mainwindow if necessary if (get_restart_needed()) { @@ -126,15 +131,6 @@ void MainWindow::slot_open_settings_dialog() { qApp->exit(RESTART_CODE); } } -#ifdef ADVANCED_SUPPORT - // steganography hide/show - if (!settings.value("advanced/steganography").toBool()) { - this->menuBar()->removeAction(steganoMenu->menuAction()); - } else { - this->menuBar()->insertAction(viewMenu->menuAction(), - steganoMenu->menuAction()); - } -#endif }); } diff --git a/src/ui/settings/SettingsAppearance.cpp b/src/ui/settings/SettingsAppearance.cpp index d9fe8c42..7e54c9f8 100644 --- a/src/ui/settings/SettingsAppearance.cpp +++ b/src/ui/settings/SettingsAppearance.cpp @@ -29,6 +29,7 @@ #include "SettingsAppearance.h" #include "core/function/GlobalSettingStation.h" +#include "ui/struct/SettingsObject.h" namespace GpgFrontend::UI { @@ -113,70 +114,51 @@ AppearanceTab::AppearanceTab(QWidget* parent) : QWidget(parent) { * appropriately **********************************/ void AppearanceTab::SetSettings() { - 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: - icon_size_small_->setChecked(true); - break; - case 24: - icon_size_medium_->setChecked(true); - break; - case 32: - icon_size_large_->setChecked(true); - break; - } - - } catch (...) { - LOG(ERROR) << _("Setting Operation Error") << _("icon_size"); - } - // 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: - icon_text_button_->setChecked(true); - break; - case Qt::ToolButtonIconOnly: - icon_icons_button_->setChecked(true); - break; - case Qt::ToolButtonTextUnderIcon: - icon_all_button_->setChecked(true); - break; - default: - break; - } - - } catch (...) { - LOG(ERROR) << _("Setting Operation Error") << _("icon_style"); - } + SettingsObject main_windows_state("main_windows_state"); - // Window Save and Position - try { - bool window_save = settings.lookup("window.window_save"); - if (window_save) window_size_check_box_->setCheckState(Qt::Checked); + int width = main_windows_state.Check("icon_size").Check("width", 24), + height = main_windows_state.Check("icon_size").Check("height", 24); - } catch (...) { - LOG(ERROR) << _("Setting Operation Error") << _("window_save"); + auto icon_size = QSize(width, height); + + switch (icon_size.width()) { + case 12: + icon_size_small_->setChecked(true); + break; + case 24: + icon_size_medium_->setChecked(true); + break; + case 32: + icon_size_large_->setChecked(true); + break; } - // 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; - info_board_font_size_spin_->setValue(info_font_size); - } catch (...) { - LOG(ERROR) << _("Setting Operation Error") << _("info_font_size"); + // icon_style + int s_icon_style = + main_windows_state.Check("icon_style", Qt::ToolButtonTextUnderIcon); + auto icon_style = static_cast<Qt::ToolButtonStyle>(s_icon_style); + + switch (icon_style) { + case Qt::ToolButtonTextOnly: + icon_text_button_->setChecked(true); + break; + case Qt::ToolButtonIconOnly: + icon_icons_button_->setChecked(true); + break; + case Qt::ToolButtonTextUnderIcon: + icon_all_button_->setChecked(true); + break; + default: + break; } + + bool window_save = main_windows_state.Check("window_save", true); + if (window_save) window_size_check_box_->setCheckState(Qt::Checked); + + auto info_font_size = main_windows_state.Check("info_font_size", 10); + if (info_font_size < 9 || info_font_size > 18) info_font_size = 10; + info_board_font_size_spin_->setValue(info_font_size); } /*********************************** @@ -184,14 +166,8 @@ void AppearanceTab::SetSettings() { * write them to settings-file *************************************/ void AppearanceTab::ApplySettings() { - auto& settings = - GpgFrontend::GlobalSettingStation::GetInstance().GetUISettings(); - - if (!settings.exists("window") || - settings.lookup("window").getType() != libconfig::Setting::TypeGroup) - settings.add("window", libconfig::Setting::TypeGroup); - auto& window = settings["window"]; + SettingsObject main_windows_state("main_windows_state"); int icon_size = 24; switch (icon_size_group_->checkedId()) { @@ -206,15 +182,8 @@ void AppearanceTab::ApplySettings() { 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; - } + main_windows_state["icon_size"]["width"] = icon_size; + main_windows_state["icon_size"]["height"] = icon_size; auto icon_style = Qt::ToolButtonTextUnderIcon; switch (icon_style_group_->checkedId()) { @@ -229,25 +198,12 @@ void AppearanceTab::ApplySettings() { break; } - if (!window.exists("icon_style")) { - window.add("icon_style", libconfig::Setting::TypeInt) = icon_style; - } else { - window["icon_style"] = icon_style; - } + main_windows_state["icon_style"] = icon_style; - if (!window.exists("window_save")) { - window.add("window_save", libconfig::Setting::TypeBoolean) = - window_size_check_box_->isChecked(); - } else { - window["window_save"] = window_size_check_box_->isChecked(); - } + main_windows_state["window_save"] = window_size_check_box_->isChecked(); + + main_windows_state["info_font_size"] = info_board_font_size_spin_->value(); - if (!window.exists("info_font_size")) { - window.add("info_font_size", libconfig::Setting::TypeBoolean) = - info_board_font_size_spin_->value(); - } else { - window["info_font_size"] = info_board_font_size_spin_->value(); - } } } // namespace GpgFrontend::UI diff --git a/src/ui/settings/SettingsKeyServer.cpp b/src/ui/settings/SettingsKeyServer.cpp index 70edb2c4..f2eaf9a9 100644 --- a/src/ui/settings/SettingsKeyServer.cpp +++ b/src/ui/settings/SettingsKeyServer.cpp @@ -29,6 +29,7 @@ #include "SettingsKeyServer.h" #include "core/function/GlobalSettingStation.h" +#include "ui/struct/SettingsObject.h" #include "ui/thread/ListedKeyServerTestThread.h" #include "ui_KeyServerSettings.h" @@ -117,27 +118,25 @@ KeyserverTab::KeyserverTab(QWidget* parent) * appropriately **********************************/ void KeyserverTab::SetSettings() { - auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); + SettingsObject key_server_json("key_server"); - try { - auto& server_list = settings.lookup("keyserver.server_list"); - const auto server_list_size = server_list.getLength(); - for (int i = 0; i < server_list_size; i++) { - std::string server_url = server_list[i]; - key_server_str_list_.append(server_url.c_str()); - } - } catch (...) { - LOG(ERROR) << _("Setting Operation Error") << _("server_list"); - } + const auto key_server_list = + key_server_json.Check("server_list", nlohmann::json::array()); - try { - std::string default_server = settings.lookup("keyserver.default_server"); - if (!key_server_str_list_.contains(default_server.c_str())) - key_server_str_list_.append(default_server.c_str()); - default_key_server_ = QString::fromStdString(default_server); - } catch (...) { - LOG(ERROR) << _("Setting Operation Error") << _("default_server"); + for (const auto& key_server : key_server_list) { + const auto key_server_str = key_server.get<std::string>(); + this->key_server_str_list_.append(key_server_str.c_str()); } + + auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); + + int default_key_server_index = key_server_json.Check("default_server", 0); + std::string default_key_server = + key_server_list[default_key_server_index].get<std::string>(); + + if (!key_server_str_list_.contains(default_key_server.c_str())) + key_server_str_list_.append(default_key_server.c_str()); + default_key_server_ = QString::fromStdString(default_key_server); } void KeyserverTab::slot_add_key_server() { @@ -173,30 +172,16 @@ void KeyserverTab::slot_add_key_server() { } void KeyserverTab::ApplySettings() { - auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); - - if (!settings.exists("keyserver") || - settings.lookup("keyserver").getType() != libconfig::Setting::TypeGroup) - settings.add("keyserver", libconfig::Setting::TypeGroup); - - auto& keyserver = settings["keyserver"]; - - if (keyserver.exists("server_list")) keyserver.remove("server_list"); - - keyserver.add("server_list", libconfig::Setting::TypeList); - - const auto row_size = ui_->keyServerListTable->rowCount(); - auto& server_list = keyserver["server_list"]; - for (int i = 0; i < row_size; i++) { - const auto key_server = ui_->keyServerListTable->item(i, 1)->text(); - server_list.add(libconfig::Setting::TypeString) = key_server.toStdString(); - } - - if (!keyserver.exists("default_server")) { - keyserver.add("default_server", libconfig::Setting::TypeString) = - default_key_server_.toStdString(); - } else { - keyserver["default_server"] = default_key_server_.toStdString(); + SettingsObject key_server_json("key_server"); + key_server_json["server_list"] = nlohmann::json::array(); + auto& key_server_list = key_server_json["server_list"]; + + const auto list_size = key_server_str_list_.size(); + for (int i = 0; i < list_size; i++) { + const auto key_server = key_server_str_list_[i]; + if (default_key_server_ == key_server) + key_server_json["default_server"] = i; + key_server_list.insert(key_server_list.end(), key_server.toStdString()); } } diff --git a/src/ui/widgets/InfoBoardWidget.cpp b/src/ui/widgets/InfoBoardWidget.cpp index b8a64145..ec2971cc 100644 --- a/src/ui/widgets/InfoBoardWidget.cpp +++ b/src/ui/widgets/InfoBoardWidget.cpp @@ -31,6 +31,7 @@ #include "ui/SignalStation.h" #include "core/function/GlobalSettingStation.h" #include "ui_InfoBoard.h" +#include "ui/struct/SettingsObject.h" namespace GpgFrontend::UI { @@ -78,16 +79,10 @@ void InfoBoardWidget::SetInfoBoard(const QString& text, status.setColor(QPalette::Text, color); ui_->infoBoard->setPalette(status); - auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); + SettingsObject main_windows_state("main_windows_state"); // info board font size - auto info_font_size = 10; - try { - info_font_size = settings.lookup("window.info_font_size"); - if (info_font_size < 9 || info_font_size > 18) info_font_size = 10; - } catch (...) { - LOG(ERROR) << _("Setting Operation Error") << _("info_font_size"); - } + auto info_font_size = main_windows_state.Check("info_font_size", 10); ui_->infoBoard->setFont(QFont("Times", info_font_size)); } |