aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/settings/SettingsDialog.cpp
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2022-12-04 10:15:50 +0000
committerSaturneric <[email protected]>2022-12-04 10:16:25 +0000
commit6bdfddb208bb00fc67a309b0c23af124217d3541 (patch)
treeb2fe2928b8ae7396021b433b808121260c6ef80f /src/ui/dialog/settings/SettingsDialog.cpp
parentfix: solve a refresh crash (diff)
downloadGpgFrontend-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.cpp30
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();
}