aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2023-12-02 07:23:01 +0000
committersaturneric <[email protected]>2023-12-02 07:23:01 +0000
commit8a63c3954d6745c5e323dcf3e518219ce6545cc0 (patch)
treea41caf8801d0dceea3a2882626bbfb5b06c279b5
parentfix: discover and fix some bugs (diff)
downloadGpgFrontend-8a63c3954d6745c5e323dcf3e518219ce6545cc0.tar.gz
GpgFrontend-8a63c3954d6745c5e323dcf3e518219ce6545cc0.zip
fix: add set owner struct action in keymanager menu
-rw-r--r--src/ui/CMakeLists.txt1
-rw-r--r--src/ui/GpgFrontendUIInit.cpp4
-rw-r--r--src/ui/UISignalStation.cpp (renamed from src/ui/SignalStation.cpp)8
-rw-r--r--src/ui/UISignalStation.h (renamed from src/ui/SignalStation.h)6
-rw-r--r--src/ui/UserInterfaceUtils.cpp22
-rw-r--r--src/ui/dialog/gnupg/GnuPGControllerDialog.cpp6
-rw-r--r--src/ui/dialog/import_export/KeyServerImportDialog.cpp6
-rw-r--r--src/ui/dialog/key_generate/KeygenDialog.cpp7
-rw-r--r--src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp6
-rw-r--r--src/ui/dialog/keypair_details/KeyNewUIDDialog.cpp6
-rw-r--r--src/ui/dialog/keypair_details/KeyPairDetailTab.cpp6
-rw-r--r--src/ui/dialog/keypair_details/KeyPairOperaTab.cpp56
-rw-r--r--src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp10
-rw-r--r--src/ui/dialog/keypair_details/KeyPairUIDTab.cpp10
-rw-r--r--src/ui/dialog/keypair_details/KeySetExpireDateDialog.cpp6
-rw-r--r--src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp6
-rw-r--r--src/ui/function/SetOwnerTrustLevel.cpp95
-rw-r--r--src/ui/function/SetOwnerTrustLevel.h54
-rw-r--r--src/ui/main_window/KeyMgmt.cpp29
-rw-r--r--src/ui/main_window/KeyMgmt.h3
-rw-r--r--src/ui/main_window/MainWindow.cpp21
-rw-r--r--src/ui/main_window/MainWindowSlotFunction.cpp48
-rw-r--r--src/ui/widgets/FilePage.cpp7
-rw-r--r--src/ui/widgets/InfoBoardWidget.cpp7
-rw-r--r--src/ui/widgets/KeyList.cpp19
25 files changed, 269 insertions, 180 deletions
diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt
index b73c9c60..0006738c 100644
--- a/src/ui/CMakeLists.txt
+++ b/src/ui/CMakeLists.txt
@@ -38,6 +38,7 @@ aux_source_directory(struct UI_SOURCE)
aux_source_directory(dialog/import_export UI_SOURCE)
aux_source_directory(dialog/gnupg UI_SOURCE)
aux_source_directory(dialog UI_SOURCE)
+aux_source_directory(function UI_SOURCE)
# define libgpgfrontend_ui
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
diff --git a/src/ui/GpgFrontendUIInit.cpp b/src/ui/GpgFrontendUIInit.cpp
index 4fc3d8fa..a1dbc5f6 100644
--- a/src/ui/GpgFrontendUIInit.cpp
+++ b/src/ui/GpgFrontendUIInit.cpp
@@ -40,7 +40,7 @@
#include "core/function/GlobalSettingStation.h"
#include "core/thread/CtxCheckTask.h"
#include "core/thread/TaskRunnerGetter.h"
-#include "ui/SignalStation.h"
+#include "ui/UISignalStation.h"
#include "ui/UserInterfaceUtils.h"
#include "ui/main_window/MainWindow.h"
@@ -69,7 +69,7 @@ void InitGpgFrontendUI(QApplication* app) {
#endif
// init signal station
- SignalStation::GetInstance();
+ UISignalStation::GetInstance();
// init common utils
CommonUtils::GetInstance();
diff --git a/src/ui/SignalStation.cpp b/src/ui/UISignalStation.cpp
index 3658a926..cae1de85 100644
--- a/src/ui/SignalStation.cpp
+++ b/src/ui/UISignalStation.cpp
@@ -26,15 +26,15 @@
*
*/
-#include "SignalStation.h"
+#include "UISignalStation.h"
namespace GpgFrontend::UI {
-std::unique_ptr<SignalStation> SignalStation::instance = nullptr;
+std::unique_ptr<UISignalStation> UISignalStation::instance = nullptr;
-auto SignalStation::GetInstance() -> SignalStation* {
+auto UISignalStation::GetInstance() -> UISignalStation* {
if (instance == nullptr) {
- instance = std::make_unique<SignalStation>();
+ instance = std::make_unique<UISignalStation>();
}
return instance.get();
}
diff --git a/src/ui/SignalStation.h b/src/ui/UISignalStation.h
index 0e609b89..16c78239 100644
--- a/src/ui/SignalStation.h
+++ b/src/ui/UISignalStation.h
@@ -36,9 +36,9 @@ namespace GpgFrontend::UI {
* @brief
*
*/
-class SignalStation : public QObject {
+class UISignalStation : public QObject {
Q_OBJECT
- static std::unique_ptr<SignalStation> instance;
+ static std::unique_ptr<UISignalStation> instance;
public:
/**
@@ -46,7 +46,7 @@ class SignalStation : public QObject {
*
* @return SignalStation*
*/
- static auto GetInstance() -> SignalStation*;
+ static auto GetInstance() -> UISignalStation*;
signals:
/**
diff --git a/src/ui/UserInterfaceUtils.cpp b/src/ui/UserInterfaceUtils.cpp
index 0f44f3ab..97520a25 100644
--- a/src/ui/UserInterfaceUtils.cpp
+++ b/src/ui/UserInterfaceUtils.cpp
@@ -44,7 +44,7 @@
#include "core/utils/CacheUtils.h"
#include "core/utils/IOUtils.h"
#include "spdlog/spdlog.h"
-#include "ui/SignalStation.h"
+#include "ui/UISignalStation.h"
#include "ui/dialog/WaitingDialog.h"
#include "ui/dialog/gnupg/GnuPGControllerDialog.h"
#include "ui/struct/SettingsObject.h"
@@ -159,11 +159,11 @@ CommonUtils::CommonUtils() : QWidget(nullptr) {
&CoreSignalStation::SignalGnupgNotInstall, this,
&CommonUtils::SignalGnupgNotInstall);
connect(this, &CommonUtils::SignalKeyStatusUpdated,
- SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefresh);
+ UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefresh);
connect(this, &CommonUtils::SignalKeyDatabaseRefreshDone,
- SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefreshDone);
+ UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefreshDone);
connect(this, &CommonUtils::SignalUserInputPassphraseDone,
CoreSignalStation::GetInstance(),
&CoreSignalStation::SignalUserInputPassphraseDone);
@@ -171,8 +171,8 @@ CommonUtils::CommonUtils() : QWidget(nullptr) {
// directly connect to SignalKeyStatusUpdated
// to avoid the delay of signal emitting
// when the key database is refreshed
- connect(SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefresh, this,
+ connect(UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefresh, this,
&CommonUtils::slot_update_key_status);
connect(CoreSignalStation::GetInstance(),
@@ -180,11 +180,11 @@ CommonUtils::CommonUtils() : QWidget(nullptr) {
&CommonUtils::slot_popup_passphrase_input_dialog);
connect(this, &CommonUtils::SignalRestartApplication,
- SignalStation::GetInstance(),
- &SignalStation::SignalRestartApplication);
+ UISignalStation::GetInstance(),
+ &UISignalStation::SignalRestartApplication);
- connect(SignalStation::GetInstance(),
- &SignalStation::SignalRestartApplication, this,
+ connect(UISignalStation::GetInstance(),
+ &UISignalStation::SignalRestartApplication, this,
&CommonUtils::SlotRestartApplication);
connect(this, &CommonUtils::SignalGnupgNotInstall, this, [=]() {
diff --git a/src/ui/dialog/gnupg/GnuPGControllerDialog.cpp b/src/ui/dialog/gnupg/GnuPGControllerDialog.cpp
index ebb4cc61..a985c861 100644
--- a/src/ui/dialog/gnupg/GnuPGControllerDialog.cpp
+++ b/src/ui/dialog/gnupg/GnuPGControllerDialog.cpp
@@ -31,7 +31,7 @@
#include "core/GpgModel.h"
#include "core/function/GlobalSettingStation.h"
#include "core/module/ModuleManager.h"
-#include "ui/SignalStation.h"
+#include "ui/UISignalStation.h"
#include "ui/dialog/GeneralDialog.h"
#include "ui_GnuPGControllerDialog.h"
@@ -65,8 +65,8 @@ GnuPGControllerDialog::GnuPGControllerDialog(QWidget* parent)
// announce main window
connect(this, &GnuPGControllerDialog::SignalRestartNeeded,
- SignalStation::GetInstance(),
- &SignalStation::SignalRestartApplication);
+ UISignalStation::GetInstance(),
+ &UISignalStation::SignalRestartApplication);
connect(ui_->keyDatabseUseCustomCheckBox, &QCheckBox::stateChanged, this,
[=](int state) {
diff --git a/src/ui/dialog/import_export/KeyServerImportDialog.cpp b/src/ui/dialog/import_export/KeyServerImportDialog.cpp
index 806b5da3..e8b9eb95 100644
--- a/src/ui/dialog/import_export/KeyServerImportDialog.cpp
+++ b/src/ui/dialog/import_export/KeyServerImportDialog.cpp
@@ -35,7 +35,7 @@
#include "core/GpgModel.h"
#include "core/function/GlobalSettingStation.h"
#include "core/function/gpg/GpgKeyImportExporter.h"
-#include "ui/SignalStation.h"
+#include "ui/UISignalStation.h"
#include "ui/struct/SettingsObject.h"
#include "ui/thread/KeyServerImportTask.h"
#include "ui/thread/KeyServerSearchTask.h"
@@ -137,8 +137,8 @@ KeyServerImportDialog::KeyServerImportDialog(bool automatic, QWidget* parent)
this->setModal(true);
connect(this, &KeyServerImportDialog::SignalKeyImported,
- SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefresh);
+ UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefresh);
}
KeyServerImportDialog::KeyServerImportDialog(QWidget* parent)
diff --git a/src/ui/dialog/key_generate/KeygenDialog.cpp b/src/ui/dialog/key_generate/KeygenDialog.cpp
index f7afeef9..a70e27d1 100644
--- a/src/ui/dialog/key_generate/KeygenDialog.cpp
+++ b/src/ui/dialog/key_generate/KeygenDialog.cpp
@@ -35,7 +35,7 @@
#include "core/function/gpg/GpgKeyOpera.h"
#include "core/utils/CacheUtils.h"
#include "dialog/WaitingDialog.h"
-#include "ui/SignalStation.h"
+#include "ui/UISignalStation.h"
namespace GpgFrontend::UI {
@@ -61,8 +61,9 @@ KeyGenDialog::KeyGenDialog(QWidget* parent)
this->setWindowTitle(_("Generate Key"));
this->setModal(true);
- connect(this, &KeyGenDialog::SignalKeyGenerated, SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefresh);
+ connect(this, &KeyGenDialog::SignalKeyGenerated,
+ UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefresh);
generate_key_dialog();
}
diff --git a/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp b/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp
index fcc84d19..d0fac22c 100644
--- a/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp
+++ b/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp
@@ -36,7 +36,7 @@
#include "core/function/gpg/GpgKeyOpera.h"
#include "core/utils/CacheUtils.h"
#include "core/utils/GpgUtils.h"
-#include "ui/SignalStation.h"
+#include "ui/UISignalStation.h"
#include "ui/dialog/WaitingDialog.h"
namespace GpgFrontend::UI {
@@ -85,8 +85,8 @@ SubkeyGenerateDialog::SubkeyGenerateDialog(const KeyId& key_id, QWidget* parent)
this->setModal(true);
connect(this, &SubkeyGenerateDialog::SignalSubKeyGenerated,
- SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefresh);
+ UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefresh);
set_signal_slot();
refresh_widgets_state();
diff --git a/src/ui/dialog/keypair_details/KeyNewUIDDialog.cpp b/src/ui/dialog/keypair_details/KeyNewUIDDialog.cpp
index 78706059..71a2c14b 100644
--- a/src/ui/dialog/keypair_details/KeyNewUIDDialog.cpp
+++ b/src/ui/dialog/keypair_details/KeyNewUIDDialog.cpp
@@ -31,7 +31,7 @@
#include "core/GpgModel.h"
#include "core/function/gpg/GpgKeyGetter.h"
#include "core/function/gpg/GpgUIDOperator.h"
-#include "ui/SignalStation.h"
+#include "ui/UISignalStation.h"
namespace GpgFrontend::UI {
KeyNewUIDDialog::KeyNewUIDDialog(const KeyId& key_id, QWidget* parent)
@@ -70,8 +70,8 @@ KeyNewUIDDialog::KeyNewUIDDialog(const KeyId& key_id, QWidget* parent)
this->setModal(true);
connect(this, &KeyNewUIDDialog::SignalUIDCreated,
- SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefresh);
+ UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefresh);
}
void KeyNewUIDDialog::slot_create_new_uid() {
diff --git a/src/ui/dialog/keypair_details/KeyPairDetailTab.cpp b/src/ui/dialog/keypair_details/KeyPairDetailTab.cpp
index 114f5df7..286192f2 100644
--- a/src/ui/dialog/keypair_details/KeyPairDetailTab.cpp
+++ b/src/ui/dialog/keypair_details/KeyPairDetailTab.cpp
@@ -33,7 +33,7 @@
#include "core/function/gpg/GpgKeyImportExporter.h"
#include "core/model/GpgKey.h"
#include "core/utils/CommonUtils.h"
-#include "ui/SignalStation.h"
+#include "ui/UISignalStation.h"
#include "ui/dialog/WaitingDialog.h"
namespace GpgFrontend::UI {
@@ -160,8 +160,8 @@ KeyPairDetailTab::KeyPairDetailTab(const std::string& key_id, QWidget* parent)
mvbox->setContentsMargins(0, 0, 0, 0);
// when key database updated
- connect(SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefreshDone, this,
+ connect(UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefreshDone, this,
&KeyPairDetailTab::slot_refresh_key);
slot_refresh_key_info();
diff --git a/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp b/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp
index 5dbfd216..e5b5ab18 100644
--- a/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp
+++ b/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp
@@ -31,13 +31,12 @@
#include "KeySetExpireDateDialog.h"
#include "core/function/GlobalSettingStation.h"
#include "core/function/gpg/GpgKeyImportExporter.h"
-#include "core/function/gpg/GpgKeyManager.h"
#include "core/function/gpg/GpgKeyOpera.h"
#include "core/utils/GpgUtils.h"
#include "core/utils/IOUtils.h"
-#include "ui/SignalStation.h"
-#include "ui/UserInterfaceUtils.h"
+#include "ui/UISignalStation.h"
#include "ui/dialog/import_export/KeyUploadDialog.h"
+#include "ui/function/SetOwnerTrustLevel.h"
namespace GpgFrontend::UI {
@@ -127,8 +126,8 @@ KeyPairOperaTab::KeyPairOperaTab(const std::string& key_id, QWidget* parent)
// set up signal
connect(this, &KeyPairOperaTab::SignalKeyDatabaseRefresh,
- SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefresh);
+ UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefresh);
}
void KeyPairOperaTab::CreateOperaMenu() {
@@ -383,50 +382,9 @@ void KeyPairOperaTab::slot_modify_tofu_policy() {
}
void KeyPairOperaTab::slot_set_owner_trust_level() {
- QStringList items;
-
- items << _("Unknown") << _("Undefined") << _("Never") << _("Marginal")
- << _("Full") << _("Ultimate");
- bool ok;
- QString item = QInputDialog::getItem(this, _("Modify Owner Trust Level"),
- _("Trust for the Key Pair:"), items,
- m_key_.GetOwnerTrustLevel(), false, &ok);
-
- if (ok && !item.isEmpty()) {
- SPDLOG_DEBUG("selected policy: {}", item.toStdString());
- int trust_level = 0; // Unknown Level
- if (item == _("Ultimate")) {
- trust_level = 5;
- } else if (item == _("Full")) {
- trust_level = 4;
- } else if (item == _("Marginal")) {
- trust_level = 3;
- } else if (item == _("Never")) {
- trust_level = 2;
- } else if (item == _("Undefined")) {
- trust_level = 1;
- }
-
- if (trust_level == 0) {
- QMessageBox::warning(
- this, _("Warning"),
- QString(_("Owner Trust Level cannot set to Unknown level, automately "
- "changing it into Undefined level.")));
- trust_level = 1;
- }
-
- bool status =
- GpgKeyManager::GetInstance().SetOwnerTrustLevel(m_key_, trust_level);
- if (!status) {
- QMessageBox::critical(this, _("Failed"),
- QString(_("Modify Owner Trust Level failed.")));
- } else {
- QMessageBox::information(this, _("Success"),
- QString(_("Set Owner Trust Level successful.")));
- // update key database and refresh ui
- emit SignalKeyDatabaseRefresh();
- }
- }
+ auto* function = new SetOwnerTrustLevel(this);
+ function->Exec(m_key_.GetId());
+ function->deleteLater();
}
} // namespace GpgFrontend::UI
diff --git a/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp b/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp
index 852897c7..d7b4e47b 100644
--- a/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp
+++ b/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp
@@ -31,7 +31,7 @@
#include "core/GpgModel.h"
#include "core/function/gpg/GpgKeyGetter.h"
#include "core/utils/CommonUtils.h"
-#include "ui/SignalStation.h"
+#include "ui/UISignalStation.h"
namespace GpgFrontend::UI {
@@ -125,11 +125,11 @@ KeyPairSubkeyTab::KeyPairSubkeyTab(const std::string& key_id, QWidget* parent)
&KeyPairSubkeyTab::slot_refresh_subkey_detail);
// key database refresh signal
- connect(SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefreshDone, this,
+ connect(UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefreshDone, this,
&KeyPairSubkeyTab::slot_refresh_key_info);
- connect(SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefreshDone, this,
+ connect(UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefreshDone, this,
&KeyPairSubkeyTab::slot_refresh_subkey_list);
baseLayout->setContentsMargins(0, 0, 0, 0);
diff --git a/src/ui/dialog/keypair_details/KeyPairUIDTab.cpp b/src/ui/dialog/keypair_details/KeyPairUIDTab.cpp
index 2fb1f90a..1738be7a 100644
--- a/src/ui/dialog/keypair_details/KeyPairUIDTab.cpp
+++ b/src/ui/dialog/keypair_details/KeyPairUIDTab.cpp
@@ -32,7 +32,7 @@
#include "core/function/gpg/GpgKeyGetter.h"
#include "core/function/gpg/GpgKeyManager.h"
#include "core/function/gpg/GpgUIDOperator.h"
-#include "ui/SignalStation.h"
+#include "ui/UISignalStation.h"
#include "ui/widgets/TOFUInfoPage.h"
namespace GpgFrontend::UI {
@@ -104,13 +104,13 @@ KeyPairUIDTab::KeyPairUIDTab(const std::string& key_id, QWidget* parent)
&KeyPairUIDTab::slot_refresh_sig_list);
// Key Database Refresh
- connect(SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefreshDone, this,
+ connect(UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefreshDone, this,
&KeyPairUIDTab::slot_refresh_key);
connect(this, &KeyPairUIDTab::SignalUpdateUIDInfo,
- SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefresh);
+ UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefresh);
setLayout(vbox_layout);
setAttribute(Qt::WA_DeleteOnClose, true);
diff --git a/src/ui/dialog/keypair_details/KeySetExpireDateDialog.cpp b/src/ui/dialog/keypair_details/KeySetExpireDateDialog.cpp
index de653534..969381bc 100644
--- a/src/ui/dialog/keypair_details/KeySetExpireDateDialog.cpp
+++ b/src/ui/dialog/keypair_details/KeySetExpireDateDialog.cpp
@@ -34,7 +34,7 @@
#include "core/function/gpg/GpgKeyGetter.h"
#include "core/function/gpg/GpgKeyOpera.h"
#include "core/utils/GpgUtils.h"
-#include "ui/SignalStation.h"
+#include "ui/UISignalStation.h"
#include "ui_ModifiedExpirationDateTime.h"
namespace GpgFrontend::UI {
@@ -138,8 +138,8 @@ void KeySetExpireDateDialog::init() {
connect(ui_->button_box_, &QDialogButtonBox::accepted, this,
&KeySetExpireDateDialog::slot_confirm);
connect(this, &KeySetExpireDateDialog::SignalKeyExpireDateUpdated,
- SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefresh);
+ UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefresh);
ui_->titleLabel->setText(_("Modified Expiration Date (Local Time)"));
ui_->label->setText(
diff --git a/src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp b/src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp
index 6afaa510..54b6298a 100644
--- a/src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp
+++ b/src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp
@@ -31,7 +31,7 @@
#include "core/GpgModel.h"
#include "core/function/gpg/GpgKeyGetter.h"
#include "core/function/gpg/GpgKeyManager.h"
-#include "ui/SignalStation.h"
+#include "ui/UISignalStation.h"
namespace GpgFrontend::UI {
@@ -99,8 +99,8 @@ KeyUIDSignDialog::KeyUIDSignDialog(const GpgKey& key, UIDArgsListPtr uid,
setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, &KeyUIDSignDialog::SignalKeyUIDSignUpdate,
- SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefresh);
+ UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefresh);
}
void KeyUIDSignDialog::slot_sign_key(bool clicked) {
diff --git a/src/ui/function/SetOwnerTrustLevel.cpp b/src/ui/function/SetOwnerTrustLevel.cpp
new file mode 100644
index 00000000..4154b5ff
--- /dev/null
+++ b/src/ui/function/SetOwnerTrustLevel.cpp
@@ -0,0 +1,95 @@
+/**
+ * Copyright (C) 2021 Saturneric <[email protected]>
+ *
+ * This file is part of GpgFrontend.
+ *
+ * GpgFrontend is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GpgFrontend is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
+ *
+ * The initial version of the source code is inherited from
+ * 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.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+#include "SetOwnerTrustLevel.h"
+
+#include "core/GpgModel.h"
+#include "core/function/gpg/GpgKeyGetter.h"
+#include "core/function/gpg/GpgKeyManager.h"
+#include "ui/UISignalStation.h"
+
+namespace GpgFrontend::UI {
+
+SetOwnerTrustLevel::SetOwnerTrustLevel(QWidget* parent) : QWidget(parent) {}
+
+auto SetOwnerTrustLevel::Exec(const std::string& key_id) -> bool {
+ if (key_id.empty()) {
+ return false;
+ }
+
+ auto key = GpgKeyGetter::GetInstance().GetKey(key_id);
+
+ QStringList items;
+
+ items << _("Unknown") << _("Undefined") << _("Never") << _("Marginal")
+ << _("Full") << _("Ultimate");
+ bool ok;
+ QString item = QInputDialog::getItem(this, _("Modify Owner Trust Level"),
+ _("Trust for the Key Pair:"), items,
+ key.GetOwnerTrustLevel(), false, &ok);
+
+ if (ok && !item.isEmpty()) {
+ SPDLOG_DEBUG("selected owner trust policy: {}", item.toStdString());
+ int trust_level = 0; // Unknown Level
+ if (item == _("Ultimate")) {
+ trust_level = 5;
+ } else if (item == _("Full")) {
+ trust_level = 4;
+ } else if (item == _("Marginal")) {
+ trust_level = 3;
+ } else if (item == _("Never")) {
+ trust_level = 2;
+ } else if (item == _("Undefined")) {
+ trust_level = 1;
+ }
+
+ if (trust_level == 0) {
+ QMessageBox::warning(
+ this, _("Warning"),
+ QString(_("Owner Trust Level cannot set to Unknown level, automately "
+ "changing it into Undefined level.")));
+ trust_level = 1;
+ }
+
+ bool status =
+ GpgKeyManager::GetInstance().SetOwnerTrustLevel(key, trust_level);
+ if (!status) {
+ QMessageBox::critical(this, _("Failed"),
+ QString(_("Modify Owner Trust Level failed.")));
+ return false;
+ }
+
+ // update key database and refresh ui
+ emit UISignalStation::GetInstance()->SignalKeyDatabaseRefresh();
+ return true;
+ }
+
+ return false;
+}
+
+} // namespace GpgFrontend::UI \ No newline at end of file
diff --git a/src/ui/function/SetOwnerTrustLevel.h b/src/ui/function/SetOwnerTrustLevel.h
new file mode 100644
index 00000000..ddd7a97f
--- /dev/null
+++ b/src/ui/function/SetOwnerTrustLevel.h
@@ -0,0 +1,54 @@
+/**
+ * Copyright (C) 2021 Saturneric <[email protected]>
+ *
+ * This file is part of GpgFrontend.
+ *
+ * GpgFrontend is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GpgFrontend is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
+ *
+ * The initial version of the source code is inherited from
+ * 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.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+#pragma once
+
+#include "GpgFrontendUI.h"
+
+namespace GpgFrontend::UI {
+
+class SetOwnerTrustLevel : public QWidget {
+ public:
+ /**
+ * @brief Set the Owner Trust Level object
+ *
+ * @param parent
+ */
+ explicit SetOwnerTrustLevel(QWidget* parent);
+
+ /**
+ * @brief
+ *
+ * @param key_id
+ * @return true
+ * @return false
+ */
+ auto Exec(const std::string& key_id) -> bool;
+};
+
+} // namespace GpgFrontend::UI \ No newline at end of file
diff --git a/src/ui/main_window/KeyMgmt.cpp b/src/ui/main_window/KeyMgmt.cpp
index cbe1251d..81bd2f03 100644
--- a/src/ui/main_window/KeyMgmt.cpp
+++ b/src/ui/main_window/KeyMgmt.cpp
@@ -36,7 +36,8 @@
#include "core/function/gpg/GpgKeyImportExporter.h"
#include "core/function/gpg/GpgKeyOpera.h"
#include "core/utils/IOUtils.h"
-#include "ui/SignalStation.h"
+#include "function/SetOwnerTrustLevel.h"
+#include "ui/UISignalStation.h"
#include "ui/UserInterfaceUtils.h"
#include "ui/dialog/import_export/ExportKeyPackageDialog.h"
#include "ui/dialog/key_generate/SubkeyGenerateDialog.h"
@@ -116,12 +117,16 @@ KeyMgmt::KeyMgmt(QWidget* parent)
key_list_->AddMenuAction(generate_subkey_act_);
key_list_->AddMenuAction(delete_selected_keys_act_);
key_list_->AddSeparator();
+ key_list_->AddMenuAction(set_owner_trust_of_key_act_);
+ key_list_->AddSeparator();
key_list_->AddMenuAction(show_key_details_act_);
- connect(this, &KeyMgmt::SignalKeyStatusUpdated, SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefresh);
- connect(SignalStation::GetInstance(), &SignalStation::SignalRefreshStatusBar,
- this, [=](const QString& message, int timeout) {
+ connect(this, &KeyMgmt::SignalKeyStatusUpdated,
+ UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefresh);
+ connect(UISignalStation::GetInstance(),
+ &UISignalStation::SignalRefreshStatusBar, this,
+ [=](const QString& message, int timeout) {
statusBar()->showMessage(message, timeout);
});
}
@@ -178,7 +183,7 @@ void KeyMgmt::create_actions() {
import_key_from_key_server_act_->setToolTip(
_("Import New Key From Keyserver"));
import_key_from_key_server_act_->setDisabled(forbid_all_gnupg_connection);
- connect(import_key_from_key_server_act_, &QAction::triggered, this, [&]() {
+ connect(import_key_from_key_server_act_, &QAction::triggered, this, [this]() {
CommonUtils::GetInstance()->SlotImportKeyFromKeyServer(this);
});
@@ -225,6 +230,18 @@ void KeyMgmt::create_actions() {
show_key_details_act_->setToolTip(_("Show Details for this Key"));
connect(show_key_details_act_, &QAction::triggered, this,
&KeyMgmt::SlotShowKeyDetails);
+
+ set_owner_trust_of_key_act_ = new QAction(_("Set Owner Trust Level"), this);
+ set_owner_trust_of_key_act_->setToolTip(_("Set Owner Trust Level"));
+ set_owner_trust_of_key_act_->setData(QVariant("set_owner_trust_level"));
+ connect(set_owner_trust_of_key_act_, &QAction::triggered, this, [this]() {
+ auto keys_selected = key_list_->GetSelected();
+ if (keys_selected->empty()) return;
+
+ auto* function = new SetOwnerTrustLevel(this);
+ function->Exec(keys_selected->front());
+ function->deleteLater();
+ });
}
void KeyMgmt::create_menus() {
diff --git a/src/ui/main_window/KeyMgmt.h b/src/ui/main_window/KeyMgmt.h
index bc3f41fa..a75f1c48 100644
--- a/src/ui/main_window/KeyMgmt.h
+++ b/src/ui/main_window/KeyMgmt.h
@@ -169,7 +169,8 @@ class KeyMgmt : public GeneralMainWindow {
QAction* import_keys_from_key_package_act_{}; ///<
QAction* close_act_{}; ///<
QAction* show_key_details_act_{}; ///<
- KeyServerImportDialog* import_dialog_{}; ///<
+ QAction* set_owner_trust_of_key_act_{};
+ KeyServerImportDialog* import_dialog_{}; ///<
};
} // namespace GpgFrontend::UI
diff --git a/src/ui/main_window/MainWindow.cpp b/src/ui/main_window/MainWindow.cpp
index 0b683bbe..ce62b376 100644
--- a/src/ui/main_window/MainWindow.cpp
+++ b/src/ui/main_window/MainWindow.cpp
@@ -33,7 +33,7 @@
#include "core/function/GlobalSettingStation.h"
#include "core/function/gpg/GpgAdvancedOperator.h"
#include "core/module/ModuleManager.h"
-#include "ui/SignalStation.h"
+#include "ui/UISignalStation.h"
#include "ui/main_window/GeneralMainWindow.h"
#include "ui/struct/SettingsObject.h"
#include "ui/widgets/KeyList.h"
@@ -81,19 +81,19 @@ void MainWindow::Init() noexcept {
this->menuBar()->show();
connect(this, &MainWindow::SignalRestartApplication,
- SignalStation::GetInstance(),
- &SignalStation::SignalRestartApplication);
+ UISignalStation::GetInstance(),
+ &UISignalStation::SignalRestartApplication);
- connect(this, &MainWindow::SignalUIRefresh, SignalStation::GetInstance(),
- &SignalStation::SignalUIRefresh);
+ connect(this, &MainWindow::SignalUIRefresh, UISignalStation::GetInstance(),
+ &UISignalStation::SignalUIRefresh);
connect(this, &MainWindow::SignalKeyDatabaseRefresh,
- SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefresh);
+ UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefresh);
connect(edit_->tab_widget_, &QTabWidget::currentChanged, this,
&MainWindow::slot_disable_tab_actions);
- connect(SignalStation::GetInstance(),
- &SignalStation::SignalRefreshStatusBar, this,
+ connect(UISignalStation::GetInstance(),
+ &UISignalStation::SignalRefreshStatusBar, this,
[=](const QString &message, int timeout) {
statusBar()->showMessage(message, timeout);
});
@@ -132,8 +132,7 @@ void MainWindow::Init() noexcept {
});
Module::ListenRTPublishEvent(
- this,
- "com.bktus.gpgfrontend.module.integrated.version-checking",
+ this, "com.bktus.gpgfrontend.module.integrated.version-checking",
"version.loading_done",
[=](Module::Namespace, Module::Key, int, std::any) {
SPDLOG_DEBUG(
diff --git a/src/ui/main_window/MainWindowSlotFunction.cpp b/src/ui/main_window/MainWindowSlotFunction.cpp
index 2c1d92ac..8998024f 100644
--- a/src/ui/main_window/MainWindowSlotFunction.cpp
+++ b/src/ui/main_window/MainWindowSlotFunction.cpp
@@ -49,6 +49,7 @@
#include "ui/dialog/help/AboutDialog.h"
#include "ui/dialog/import_export/KeyUploadDialog.h"
#include "ui/dialog/keypair_details/KeyDetailsDialog.h"
+#include "ui/function/SetOwnerTrustLevel.h"
#include "ui/widgets/FindWidget.h"
namespace GpgFrontend::UI {
@@ -751,50 +752,9 @@ void MainWindow::slot_set_owner_trust_level_of_key() {
auto key_ids = m_key_list_->GetSelected();
if (key_ids->empty()) return;
- auto key = GpgKeyGetter::GetInstance().GetKey(key_ids->front());
-
- QStringList items;
-
- items << _("Unknown") << _("Undefined") << _("Never") << _("Marginal")
- << _("Full") << _("Ultimate");
- bool ok;
- QString item = QInputDialog::getItem(this, _("Modify Owner Trust Level"),
- _("Trust for the Key Pair:"), items,
- key.GetOwnerTrustLevel(), false, &ok);
-
- if (ok && !item.isEmpty()) {
- SPDLOG_DEBUG("selected policy: {}", item.toStdString());
- int trust_level = 0; // Unknown Level
- if (item == _("Ultimate")) {
- trust_level = 5;
- } else if (item == _("Full")) {
- trust_level = 4;
- } else if (item == _("Marginal")) {
- trust_level = 3;
- } else if (item == _("Never")) {
- trust_level = 2;
- } else if (item == _("Undefined")) {
- trust_level = 1;
- }
-
- if (trust_level == 0) {
- QMessageBox::warning(
- this, _("Warning"),
- QString(_("Owner Trust Level cannot set to Unknown level, automately "
- "changing it into Undefined level.")));
- trust_level = 1;
- }
-
- bool status =
- GpgKeyManager::GetInstance().SetOwnerTrustLevel(key, trust_level);
- if (!status) {
- QMessageBox::critical(this, _("Failed"),
- QString(_("Modify Owner Trust Level failed.")));
- } else {
- // update key database and refresh ui
- emit SignalKeyDatabaseRefresh();
- }
- }
+ auto* function = new SetOwnerTrustLevel(this);
+ function->Exec(key_ids->front());
+ function->deleteLater();
}
void MainWindow::upload_key_to_server() {
diff --git a/src/ui/widgets/FilePage.cpp b/src/ui/widgets/FilePage.cpp
index a0477fa1..073bd978 100644
--- a/src/ui/widgets/FilePage.cpp
+++ b/src/ui/widgets/FilePage.cpp
@@ -33,7 +33,7 @@
#include "core/GpgModel.h"
#include "core/function/ArchiveFileOperator.h"
#include "core/function/gpg/GpgFileOpera.h"
-#include "ui/SignalStation.h"
+#include "ui/UISignalStation.h"
#include "ui/main_window/MainWindow.h"
#include "ui_FilePage.h"
@@ -95,8 +95,9 @@ FilePage::FilePage(QWidget* parent)
}
});
- connect(this, &FilePage::SignalRefreshInfoBoard, SignalStation::GetInstance(),
- &SignalStation::SignalRefreshInfoBoard);
+ connect(this, &FilePage::SignalRefreshInfoBoard,
+ UISignalStation::GetInstance(),
+ &UISignalStation::SignalRefreshInfoBoard);
}
void FilePage::slot_file_tree_view_item_clicked(const QModelIndex& index) {
diff --git a/src/ui/widgets/InfoBoardWidget.cpp b/src/ui/widgets/InfoBoardWidget.cpp
index 9a243da8..735ed7ba 100644
--- a/src/ui/widgets/InfoBoardWidget.cpp
+++ b/src/ui/widgets/InfoBoardWidget.cpp
@@ -30,7 +30,7 @@
#include "core/GpgModel.h"
#include "core/function/GlobalSettingStation.h"
-#include "ui/SignalStation.h"
+#include "ui/UISignalStation.h"
#include "ui/struct/SettingsObject.h"
#include "ui_InfoBoard.h"
@@ -52,8 +52,9 @@ InfoBoardWidget::InfoBoardWidget(QWidget* parent)
connect(ui_->clearButton, &QPushButton::clicked, this,
&InfoBoardWidget::SlotReset);
- connect(SignalStation::GetInstance(), &SignalStation::SignalRefreshInfoBoard,
- this, &InfoBoardWidget::SlotRefresh);
+ connect(UISignalStation::GetInstance(),
+ &UISignalStation::SignalRefreshInfoBoard, this,
+ &InfoBoardWidget::SlotRefresh);
}
void InfoBoardWidget::SetInfoBoard(const QString& text,
diff --git a/src/ui/widgets/KeyList.cpp b/src/ui/widgets/KeyList.cpp
index fb007481..751548ec 100644
--- a/src/ui/widgets/KeyList.cpp
+++ b/src/ui/widgets/KeyList.cpp
@@ -36,7 +36,7 @@
#include "core/GpgCoreInit.h"
#include "core/function/GlobalSettingStation.h"
#include "core/function/gpg/GpgKeyGetter.h"
-#include "ui/SignalStation.h"
+#include "ui/UISignalStation.h"
#include "ui/UserInterfaceUtils.h"
#include "ui_KeyList.h"
#include "widgets/TextEdit.h"
@@ -71,13 +71,13 @@ void KeyList::init() {
if (forbid_all_gnupg_connection) ui_->syncButton->setDisabled(true);
// register key database refresh signal
- connect(this, &KeyList::SignalRefreshDatabase, SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefresh);
- connect(SignalStation::GetInstance(),
- &SignalStation::SignalKeyDatabaseRefreshDone, this,
+ connect(this, &KeyList::SignalRefreshDatabase, UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefresh);
+ connect(UISignalStation::GetInstance(),
+ &UISignalStation::SignalKeyDatabaseRefreshDone, this,
&KeyList::SlotRefresh);
- connect(SignalStation::GetInstance(), &SignalStation::SignalUIRefresh, this,
- &KeyList::SlotRefreshUI);
+ connect(UISignalStation::GetInstance(), &UISignalStation::SignalUIRefresh,
+ this, &KeyList::SlotRefreshUI);
// register key database sync signal for refresh button
connect(ui_->refreshKeyListButton, &QPushButton::clicked, this,
@@ -91,8 +91,9 @@ void KeyList::init() {
&KeyList::slot_sync_with_key_server);
connect(ui_->searchBarEdit, &QLineEdit::textChanged, this,
&KeyList::filter_by_keyword);
- connect(this, &KeyList::SignalRefreshStatusBar, SignalStation::GetInstance(),
- &SignalStation::SignalRefreshStatusBar);
+ connect(this, &KeyList::SignalRefreshStatusBar,
+ UISignalStation::GetInstance(),
+ &UISignalStation::SignalRefreshStatusBar);
setAcceptDrops(true);