1
0

fix: add set owner struct action in keymanager menu

This commit is contained in:
saturneric 2023-12-01 23:23:01 -08:00
parent 9ea9c03263
commit 8a63c3954d
25 changed files with 269 additions and 180 deletions

View File

@ -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)

View File

@ -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();

View File

@ -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();
}

View File

@ -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:
/**

View File

@ -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, [=]() {

View File

@ -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) {

View File

@ -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)

View File

@ -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();
}

View File

@ -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();

View File

@ -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() {

View File

@ -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();

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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(

View File

@ -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) {

View File

@ -0,0 +1,95 @@
/**
* Copyright (C) 2021 Saturneric <eric@bktus.com>
*
* 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 <eric@bktus.com> 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

View File

@ -0,0 +1,54 @@
/**
* Copyright (C) 2021 Saturneric <eric@bktus.com>
*
* 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 <eric@bktus.com> 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

View File

@ -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() {

View File

@ -169,6 +169,7 @@ class KeyMgmt : public GeneralMainWindow {
QAction* import_keys_from_key_package_act_{}; ///<
QAction* close_act_{}; ///<
QAction* show_key_details_act_{}; ///<
QAction* set_owner_trust_of_key_act_{};
KeyServerImportDialog* import_dialog_{}; ///<
};

View File

@ -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(

View File

@ -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() {

View File

@ -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) {

View File

@ -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,

View File

@ -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);