aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/ui/main_window/MainWindowSlotUI.cpp36
-rw-r--r--src/ui/settings/SettingsAppearance.cpp138
-rw-r--r--src/ui/settings/SettingsKeyServer.cpp69
-rw-r--r--src/ui/widgets/InfoBoardWidget.cpp11
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));
}