aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/settings/SettingsGeneral.cpp
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2021-12-02 06:41:28 +0000
committerSaturneric <[email protected]>2021-12-02 06:51:14 +0000
commit0d7cd30a97bfa3ed3ee9347cc8ad485a3bcbddee (patch)
tree76d9f2c6b2a7dbb774bb83e567f3b5c07b98de31 /src/ui/settings/SettingsGeneral.cpp
parentAdd i18n Support (diff)
downloadGpgFrontend-0d7cd30a97bfa3ed3ee9347cc8ad485a3bcbddee.tar.gz
GpgFrontend-0d7cd30a97bfa3ed3ee9347cc8ad485a3bcbddee.zip
Modified & Improve
1. Modified Wizard. 2. Modified Stttings General Tab. 3. Improve Project Configuration.
Diffstat (limited to 'src/ui/settings/SettingsGeneral.cpp')
-rw-r--r--src/ui/settings/SettingsGeneral.cpp95
1 files changed, 63 insertions, 32 deletions
diff --git a/src/ui/settings/SettingsGeneral.cpp b/src/ui/settings/SettingsGeneral.cpp
index 51e0649c..a5ae124e 100644
--- a/src/ui/settings/SettingsGeneral.cpp
+++ b/src/ui/settings/SettingsGeneral.cpp
@@ -28,20 +28,19 @@
#include "server/ComUtils.h"
#endif
+#ifdef MULTI_LANG_SUPPORT
#include "SettingsDialog.h"
+#endif
+
+#include "GlobalSettingStation.h"
#include "gpg/function/GpgKeyGetter.h"
#include "rapidjson/prettywriter.h"
#include "ui/widgets/KeyList.h"
namespace GpgFrontend::UI {
-GeneralTab::GeneralTab(QWidget* parent)
- : QWidget(parent),
- appPath(qApp->applicationDirPath()),
- settings(RESOURCE_DIR(appPath) + "/conf/gpgfrontend.ini",
- QSettings::IniFormat) {
+GeneralTab::GeneralTab(QWidget* parent) : QWidget(parent) {
#ifdef SERVER_SUPPORT
-
/*****************************************
* GpgFrontend Server
*****************************************/
@@ -77,7 +76,7 @@ GeneralTab::GeneralTab(QWidget* parent)
importConfirmationBoxLayout->addWidget(importConfirmationCheckBox);
importConfirmationBox->setLayout(importConfirmationBoxLayout);
-#ifdef MULT_LANGUAGE_SUPPORT
+#ifdef MULTI_LANG_SUPPORT
/*****************************************
* Language Select Box
*****************************************/
@@ -141,7 +140,6 @@ GeneralTab::GeneralTab(QWidget* parent)
ownKeyServiceTokenLayout->addWidget(getServiceTokenButton);
ownKeyServiceTokenLayout->addWidget(serviceTokenLabel);
ownKeyServiceTokenLayout->stretch(0);
-
#endif
/*****************************************
@@ -153,7 +151,7 @@ GeneralTab::GeneralTab(QWidget* parent)
#endif
mainLayout->addWidget(saveCheckedKeysBox);
mainLayout->addWidget(importConfirmationBox);
-#ifdef MULT_LANGUAGE_SUPPORT
+#ifdef MULTI_LANG_SUPPORT
mainLayout->addWidget(langBox);
#endif
#ifdef SERVER_SUPPORT
@@ -171,9 +169,12 @@ GeneralTab::GeneralTab(QWidget* parent)
* appropriately
**********************************/
void GeneralTab::setSettings() {
- // Keysaving
- if (settings.value("keys/saveKeyChecked").toBool()) {
- saveCheckedKeysCheckBox->setCheckState(Qt::Checked);
+ auto& settings = GlobalSettingStation::GetInstance().GetUISettings();
+ try {
+ bool save_key_checked = settings.lookup("general.save_key_checked");
+ if (save_key_checked) saveCheckedKeysCheckBox->setCheckState(Qt::Checked);
+ } catch (...) {
+ LOG(ERROR) << _("Setting Operation Error") << _("save_key_checked");
}
#ifdef SERVER_SUPPORT
@@ -199,19 +200,19 @@ void GeneralTab::setSettings() {
});
#endif
-#ifdef MULT_LANGUAGE_SUPPORT
-
- // Language setting
- QString langKey = settings.value("int/lang").toString();
- QString langValue = lang.value(langKey);
- if (!langKey.isEmpty()) {
- langSelectBox->setCurrentIndex(langSelectBox->findText(langValue));
+#ifdef MULTI_LANG_SUPPORT
+ try {
+ std::string lang_key = settings.lookup("general.lang");
+ QString lang_value = lang.value(lang_key.c_str());
+ if (!lang.empty()) {
+ langSelectBox->setCurrentIndex(langSelectBox->findText(lang_value));
+ }
+ } catch (...) {
+ LOG(ERROR) << _("Setting Operation Error") << _("lang");
}
-
#endif
#ifdef SERVER_SUPPORT
-
auto own_key_id = settings.value("general/ownKeyId").toString().toStdString();
if (own_key_id.empty()) {
ownKeySelectBox->setCurrentText("<none>");
@@ -225,12 +226,15 @@ void GeneralTab::setSettings() {
if (!serviceToken.empty()) {
serviceTokenLabel->setText(QString::fromStdString(serviceToken));
}
-
#endif
- // Get own key information from keydb/gpg.conf (if contained)
- if (settings.value("general/confirmImportKeys", Qt::Checked).toBool()) {
- importConfirmationCheckBox->setCheckState(Qt::Checked);
+ try {
+ bool confirm_import_keys = settings.lookup("general.confirm_import_keys");
+ LOG(INFO) << "confirm_import_keys" << confirm_import_keys;
+ if (confirm_import_keys)
+ importConfirmationCheckBox->setCheckState(Qt::Checked);
+ } catch (...) {
+ LOG(ERROR) << _("Setting Operation Error") << _("confirm_import_keys");
}
}
@@ -239,8 +243,22 @@ void GeneralTab::setSettings() {
* write them to settings-file
*************************************/
void GeneralTab::applySettings() {
- settings.setValue("keys/saveKeyChecked",
- saveCheckedKeysCheckBox->isChecked());
+ auto& settings =
+ GpgFrontend::UI::GlobalSettingStation::GetInstance().GetUISettings();
+
+ if (!settings.exists("general") ||
+ settings.lookup("general").getType() != libconfig::Setting::TypeGroup)
+ settings.add("general", libconfig::Setting::TypeGroup);
+
+ auto& general = settings["general"];
+
+ if (!general.exists("save_key_checked"))
+ general.add("save_key_checked", libconfig::Setting::TypeBoolean) =
+ saveCheckedKeysCheckBox->isChecked();
+ else {
+ general["save_key_checked"] = saveCheckedKeysCheckBox->isChecked();
+ }
+
#ifdef SERVER_SUPPORT
qDebug() << "serverSelectBox currentText" << serverSelectBox->currentText();
settings.setValue("general/currentGpgfrontendServer",
@@ -253,8 +271,15 @@ void GeneralTab::applySettings() {
delete serverList;
#endif
-#ifdef MULT_LANGUAGE_SUPPORT
- settings.setValue("int/lang", lang.key(langSelectBox->currentText()));
+#ifdef MULTI_LANG_SUPPORT
+
+ if (!general.exists("lang"))
+ general.add("lang", libconfig::Setting::TypeBoolean) =
+ langSelectBox->currentText().toStdString();
+ else {
+ general["lang"] = langSelectBox->currentText().toStdString();
+ }
+
#endif
#ifdef SERVER_SUPPORT
@@ -266,11 +291,17 @@ void GeneralTab::applySettings() {
QString::fromStdString(serviceToken));
#endif
- settings.setValue("general/confirmImportKeys",
- importConfirmationCheckBox->isChecked());
+ if (!general.exists("confirm_import_keys"))
+ general.add("confirm_import_keys", libconfig::Setting::TypeBoolean) =
+ importConfirmationCheckBox->isChecked();
+ else {
+ general["confirm_import_keys"] = importConfirmationCheckBox->isChecked();
+ }
+
+ GlobalSettingStation::GetInstance().Sync();
}
-#ifdef MULT_LANGUAGE_SUPPORT
+#ifdef MULTI_LANG_SUPPORT
void GeneralTab::slotLanguageChanged() { emit signalRestartNeeded(true); }
#endif