aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/settings/SettingsDialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/dialog/settings/SettingsDialog.cpp')
-rw-r--r--src/ui/dialog/settings/SettingsDialog.cpp88
1 files changed, 39 insertions, 49 deletions
diff --git a/src/ui/dialog/settings/SettingsDialog.cpp b/src/ui/dialog/settings/SettingsDialog.cpp
index d484207a..a1ac1885 100644
--- a/src/ui/dialog/settings/SettingsDialog.cpp
+++ b/src/ui/dialog/settings/SettingsDialog.cpp
@@ -1,5 +1,5 @@
/**
- * Copyright (C) 2021 Saturneric
+ * Copyright (C) 2021 Saturneric <[email protected]>
*
* This file is part of GpgFrontend.
*
@@ -20,7 +20,7 @@
* the gpg4usb project, which is under GPL-3.0-or-later.
*
* All the source code of GpgFrontend was modified and released by
- * Saturneric<[email protected]> starting on May 12, 2021.
+ * Saturneric <[email protected]> starting on May 12, 2021.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
@@ -28,13 +28,13 @@
#include "SettingsDialog.h"
-#include "SettingsAdvanced.h"
-#include "SettingsAppearance.h"
-#include "SettingsGeneral.h"
-#include "SettingsKeyServer.h"
-#include "SettingsNetwork.h"
#include "core/GpgConstants.h"
+#include "core/GpgModel.h"
#include "core/function/GlobalSettingStation.h"
+#include "ui/dialog/settings/SettingsAppearance.h"
+#include "ui/dialog/settings/SettingsGeneral.h"
+#include "ui/dialog/settings/SettingsKeyServer.h"
+#include "ui/dialog/settings/SettingsNetwork.h"
#include "ui/main_window/MainWindow.h"
namespace GpgFrontend::UI {
@@ -47,14 +47,14 @@ SettingsDialog::SettingsDialog(QWidget* parent)
key_server_tab_ = new KeyserverTab();
network_tab_ = new NetworkTab();
- auto* mainLayout = new QVBoxLayout;
- mainLayout->addWidget(tab_widget_);
- mainLayout->stretch(0);
+ auto* main_layout = new QVBoxLayout();
+ main_layout->addWidget(tab_widget_);
+ main_layout->stretch(0);
- tab_widget_->addTab(general_tab_, _("General"));
- tab_widget_->addTab(appearance_tab_, _("Appearance"));
- tab_widget_->addTab(key_server_tab_, _("Key Server"));
- tab_widget_->addTab(network_tab_, _("Network"));
+ tab_widget_->addTab(general_tab_, tr("General"));
+ tab_widget_->addTab(appearance_tab_, tr("Appearance"));
+ tab_widget_->addTab(key_server_tab_, tr("Key Server"));
+ tab_widget_->addTab(network_tab_, tr("Network"));
#ifndef MACOS
button_box_ =
@@ -65,14 +65,14 @@ SettingsDialog::SettingsDialog(QWidget* parent)
&SettingsDialog::reject);
mainLayout->addWidget(button_box_);
mainLayout->stretch(0);
- setWindowTitle(_("Settings"));
+ setWindowTitle(tr("Settings"));
#else
connect(this, &QDialog::finished, this, &SettingsDialog::SlotAccept);
connect(this, &QDialog::finished, this, &SettingsDialog::deleteLater);
- setWindowTitle(_("Preference"));
+ setWindowTitle(tr("Preference"));
#endif
- setLayout(mainLayout);
+ setLayout(main_layout);
// slots for handling the restart needed member
this->slot_set_restart_needed(0);
@@ -80,16 +80,17 @@ SettingsDialog::SettingsDialog(QWidget* parent)
// restart ui
connect(general_tab_, &GeneralTab::SignalRestartNeeded, this,
[=](bool needed) {
- if (needed && restart_needed_ < RESTART_CODE) {
- this->restart_needed_ = RESTART_CODE;
+ if (needed && restart_needed_ < kRestartCode) {
+ this->restart_needed_ = kRestartCode;
}
});
// restart core and ui
connect(general_tab_, &GeneralTab::SignalDeepRestartNeeded, this,
[=](bool needed) {
- if (needed && restart_needed_ < DEEP_RESTART_CODE)
- this->restart_needed_ = DEEP_RESTART_CODE;
+ if (needed && restart_needed_ < kDeepRestartCode) {
+ this->restart_needed_ = kDeepRestartCode;
+ }
});
// announce main window
@@ -101,7 +102,9 @@ SettingsDialog::SettingsDialog(QWidget* parent)
this->show();
}
-int SettingsDialog::get_restart_needed() const { return this->restart_needed_; }
+auto SettingsDialog::get_restart_needed() const -> int {
+ return this->restart_needed_;
+}
void SettingsDialog::slot_set_restart_needed(int mode) {
this->restart_needed_ = mode;
@@ -113,44 +116,31 @@ void SettingsDialog::SlotAccept() {
key_server_tab_->ApplySettings();
network_tab_->ApplySettings();
- SPDLOG_DEBUG("apply done");
-
- // write settings to filesystem
- GlobalSettingStation::GetInstance().SyncSettings();
-
- SPDLOG_DEBUG("restart needed: {}", get_restart_needed());
- if (get_restart_needed()) {
+ GF_UI_LOG_DEBUG("restart needed: {}", get_restart_needed());
+ if (get_restart_needed() != 0) {
emit SignalRestartNeeded(get_restart_needed());
}
close();
}
-QHash<QString, QString> SettingsDialog::ListLanguages() {
+auto SettingsDialog::ListLanguages() -> QHash<QString, QString> {
QHash<QString, QString> languages;
+ languages.insert(QString(), tr("System Default"));
- languages.insert(QString(), _("System Default"));
-
- auto locale_path = GlobalSettingStation::GetInstance().GetLocaleDir();
+ QStringList filenames = QDir(QLatin1String(":/i18n")).entryList();
+ for (const auto& file : filenames) {
+ GF_UI_LOG_DEBUG("get locale from locale directory: {}", file.toStdString());
- auto locale_dir = QDir(QString::fromStdString(locale_path.string()));
- QStringList file_names = locale_dir.entryList(QStringList("*"));
+ auto start = file.indexOf('.') + 1;
+ auto end = file.lastIndexOf('.');
+ if (start < 0 || end < 0 || start >= end) continue;
- for (int i = 0; i < file_names.size(); ++i) {
- QString locale = file_names[i];
- SPDLOG_DEBUG("locale: {}", locale.toStdString());
- if (locale == "." || locale == "..") continue;
+ auto locale = file.mid(start, end - start);
+ QLocale const q_locale(locale);
+ if (q_locale.nativeTerritoryName().isEmpty()) continue;
- // this works in qt 4.8
- QLocale q_locale(locale);
- if (q_locale.nativeCountryName().isEmpty()) continue;
-#if QT_VERSION < 0x040800
- QString language =
- QLocale::languageToString(q_locale.language()) + " (" + locale +
- ")"; //+ " (" + QLocale::languageToString(q_locale.language()) + ")";
-#else
auto language = q_locale.nativeLanguageName() + " (" + locale + ")";
-#endif
- languages.insert(locale, language);
+ languages.insert(q_locale.name(), language);
}
return languages;
}