fix: add set owner struct action in keymanager menu
This commit is contained in:
parent
9ea9c03263
commit
8a63c3954d
@ -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)
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
}
|
@ -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:
|
||||
/**
|
@ -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, [=]() {
|
||||
|
@ -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) {
|
||||
|
@ -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)
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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();
|
||||
|
@ -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() {
|
||||
|
@ -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();
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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(
|
||||
|
@ -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) {
|
||||
|
95
src/ui/function/SetOwnerTrustLevel.cpp
Normal file
95
src/ui/function/SetOwnerTrustLevel.cpp
Normal 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
|
54
src/ui/function/SetOwnerTrustLevel.h
Normal file
54
src/ui/function/SetOwnerTrustLevel.h
Normal 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
|
@ -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() {
|
||||
|
@ -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_{}; ///<
|
||||
};
|
||||
|
||||
|
@ -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(
|
||||
|
@ -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() {
|
||||
|
@ -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) {
|
||||
|
@ -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,
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user