diff options
author | Saturneric <[email protected]> | 2022-12-04 10:15:50 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2022-12-04 10:16:25 +0000 |
commit | 6bdfddb208bb00fc67a309b0c23af124217d3541 (patch) | |
tree | b2fe2928b8ae7396021b433b808121260c6ef80f /src/ui/dialog/settings/SettingsDialog.cpp | |
parent | fix: solve a refresh crash (diff) | |
download | GpgFrontend-6bdfddb208bb00fc67a309b0c23af124217d3541.tar.gz GpgFrontend-6bdfddb208bb00fc67a309b0c23af124217d3541.zip |
feat(ui, core): add custom key db support
1. add custom key db support
2. add deep restart mode for custom key db settings
3. add core reset function
Diffstat (limited to 'src/ui/dialog/settings/SettingsDialog.cpp')
-rw-r--r-- | src/ui/dialog/settings/SettingsDialog.cpp | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/src/ui/dialog/settings/SettingsDialog.cpp b/src/ui/dialog/settings/SettingsDialog.cpp index e2677a0f..6737a512 100644 --- a/src/ui/dialog/settings/SettingsDialog.cpp +++ b/src/ui/dialog/settings/SettingsDialog.cpp @@ -33,6 +33,7 @@ #include "SettingsGeneral.h" #include "SettingsKeyServer.h" #include "SettingsNetwork.h" +#include "core/GpgConstants.h" #include "core/function/GlobalSettingStation.h" #include "ui/main_window/MainWindow.h" @@ -74,9 +75,24 @@ SettingsDialog::SettingsDialog(QWidget* parent) setLayout(mainLayout); // slots for handling the restart needed member - this->slot_set_restart_needed(false); + this->slot_set_restart_needed(0); + + // restart ui connect(general_tab_, &GeneralTab::SignalRestartNeeded, this, - &SettingsDialog::slot_set_restart_needed); + [=](bool needed) { + if (needed && restart_needed_ < RESTART_CODE) { + this->restart_needed_ = RESTART_CODE; + } + }); + + // 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; + }); + + // announce main window connect(this, &SettingsDialog::SignalRestartNeeded, qobject_cast<MainWindow*>(parent), &MainWindow::SlotSetRestartNeeded); @@ -85,12 +101,10 @@ SettingsDialog::SettingsDialog(QWidget* parent) this->show(); } -bool SettingsDialog::get_restart_needed() const { - return this->restart_needed_; -} +int SettingsDialog::get_restart_needed() const { return this->restart_needed_; } -void SettingsDialog::slot_set_restart_needed(bool needed) { - this->restart_needed_ = needed; +void SettingsDialog::slot_set_restart_needed(int mode) { + this->restart_needed_ = mode; } void SettingsDialog::SlotAccept() { @@ -108,7 +122,7 @@ void SettingsDialog::SlotAccept() { LOG(INFO) << "restart needed" << get_restart_needed(); if (get_restart_needed()) { - emit SignalRestartNeeded(true); + emit SignalRestartNeeded(get_restart_needed()); } close(); } |