aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2024-07-28 16:00:30 +0000
committersaturneric <[email protected]>2024-07-28 16:00:30 +0000
commitcb626d06dee921426a2ea97662f6237e21a8781b (patch)
treea6724ad799695c9b6b807c4e637a69842a82549a
parentfeat: search for keywords in all uids (diff)
downloadGpgFrontend-cb626d06dee921426a2ea97662f6237e21a8781b.tar.gz
GpgFrontend-cb626d06dee921426a2ea97662f6237e21a8781b.zip
feat: user can prevent all modules
-rw-r--r--src/core/module/ModuleManager.cpp9
-rw-r--r--src/ui/dialog/controller/ModuleControllerDialog.cpp12
-rw-r--r--src/ui/dialog/settings/SettingsGeneral.cpp14
-rw-r--r--ui/GeneralSettings.ui4
4 files changed, 30 insertions, 9 deletions
diff --git a/src/core/module/ModuleManager.cpp b/src/core/module/ModuleManager.cpp
index 51611a72..d575d40c 100644
--- a/src/core/module/ModuleManager.cpp
+++ b/src/core/module/ModuleManager.cpp
@@ -31,6 +31,7 @@
#include <memory>
#include <utility>
+#include "core/function/GlobalSettingStation.h"
#include "core/function/SecureMemoryAllocator.h"
#include "core/function/basic/GpgFunctionObject.h"
#include "core/model/SettingsObject.h"
@@ -54,6 +55,14 @@ class ModuleManager::Impl {
auto LoadAndRegisterModule(const QString& module_library_path,
bool integrated_module) -> void {
+ // give user ability to give up all modules
+ auto disable_loading_all_modules =
+ GlobalSettingStation::GetInstance()
+ .GetSettings()
+ .value("basic/disable_loading_all_modules", false)
+ .toBool();
+ if (disable_loading_all_modules) return;
+
Thread::TaskRunnerGetter::GetInstance()
.GetTaskRunner(Thread::TaskRunnerGetter::kTaskRunnerType_Default)
->PostTask(new Thread::Task(
diff --git a/src/ui/dialog/controller/ModuleControllerDialog.cpp b/src/ui/dialog/controller/ModuleControllerDialog.cpp
index aa69eb5a..e7c0d5fe 100644
--- a/src/ui/dialog/controller/ModuleControllerDialog.cpp
+++ b/src/ui/dialog/controller/ModuleControllerDialog.cpp
@@ -103,8 +103,18 @@ ModuleControllerDialog::ModuleControllerDialog(QWidget* parent)
});
#ifdef RELEASE
- ui_->tabWidget->setTabEnabled(2, false);
+ ui_->tabWidget->setTabVisible(2, false);
#endif
+
+ // give user ability to give up all modules
+ auto disable_loading_all_modules =
+ GlobalSettingStation::GetInstance()
+ .GetSettings()
+ .value("basic/disable_loading_all_modules", false)
+ .toBool();
+ if (disable_loading_all_modules) {
+ ui_->tabWidget->setTabEnabled(0, false);
+ }
}
void ModuleControllerDialog::slot_load_module_details(
diff --git a/src/ui/dialog/settings/SettingsGeneral.cpp b/src/ui/dialog/settings/SettingsGeneral.cpp
index 81557b0d..6167ea01 100644
--- a/src/ui/dialog/settings/SettingsGeneral.cpp
+++ b/src/ui/dialog/settings/SettingsGeneral.cpp
@@ -52,6 +52,8 @@ GeneralTab::GeneralTab(QWidget* parent)
tr("Enable to use longer key expiration date."));
ui_->importConfirmationCheckBox->setText(
tr("Import files dropped on the Key List without confirmation."));
+ ui_->disableLoadingModulesCheckBox->setText(
+ tr("Disable loading of all modules (including integrated modules)"));
ui_->langBox->setTitle(tr("Language"));
ui_->langNoteLabel->setText(
@@ -129,10 +131,10 @@ void GeneralTab::SetSettings() {
ui_->importConfirmationCheckBox->setCheckState(
confirm_import_keys ? Qt::Checked : Qt::Unchecked);
- auto more_signing_options =
- settings.value("basic/more_signing_options", false).toBool();
- ui_->moreSigningOptionsCheckBox->setCheckState(
- more_signing_options ? Qt::Checked : Qt::Unchecked);
+ auto disable_loading_all_modules =
+ settings.value("basic/disable_loading_all_modules", false).toBool();
+ ui_->disableLoadingModulesCheckBox->setCheckState(
+ disable_loading_all_modules ? Qt::Checked : Qt::Unchecked);
auto lang_key = settings.value("basic/lang").toString();
auto lang_value = lang_.value(lang_key);
@@ -156,8 +158,8 @@ void GeneralTab::ApplySettings() {
ui_->restoreTextEditorPageCheckBox->isChecked());
settings.setValue("basic/confirm_import_keys",
ui_->importConfirmationCheckBox->isChecked());
- settings.setValue("basic/more_signing_options",
- ui_->moreSigningOptionsCheckBox->isChecked());
+ settings.setValue("basic/disable_loading_all_modules",
+ ui_->disableLoadingModulesCheckBox->isChecked());
settings.setValue("basic/lang", lang_.key(ui_->langSelectBox->currentText()));
}
diff --git a/ui/GeneralSettings.ui b/ui/GeneralSettings.ui
index df2a8334..78f3bb6a 100644
--- a/ui/GeneralSettings.ui
+++ b/ui/GeneralSettings.ui
@@ -66,9 +66,9 @@
</widget>
</item>
<item>
- <widget class="QCheckBox" name="moreSigningOptionsCheckBox">
+ <widget class="QCheckBox" name="disableLoadingModulesCheckBox">
<property name="text">
- <string>Provide more options in the signing process.</string>
+ <string>Disable loading of all modules (including integrated modules)</string>
</property>
</widget>
</item>