diff options
Diffstat (limited to 'src/ui/dialog/settings/SettingsDialog.cpp')
-rw-r--r-- | src/ui/dialog/settings/SettingsDialog.cpp | 88 |
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; } |