diff options
Diffstat (limited to '')
-rw-r--r-- | src/ui/dialog/import_export/KeyServerImportDialog.cpp | 21 | ||||
-rw-r--r-- | src/ui/dialog/keypair_details/KeyPairOperaTab.cpp | 14 | ||||
-rw-r--r-- | src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp | 2 | ||||
-rw-r--r-- | src/ui/widgets/VerifyKeyDetailBox.cpp | 20 |
4 files changed, 53 insertions, 4 deletions
diff --git a/src/ui/dialog/import_export/KeyServerImportDialog.cpp b/src/ui/dialog/import_export/KeyServerImportDialog.cpp index 713c5a58..5692f607 100644 --- a/src/ui/dialog/import_export/KeyServerImportDialog.cpp +++ b/src/ui/dialog/import_export/KeyServerImportDialog.cpp @@ -47,6 +47,23 @@ KeyServerImportDialog::KeyServerImportDialog(bool automatic, QWidget* parent) // Layout for messagebox auto* message_layout = new QHBoxLayout(); + // get settings + auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); + // read settings + bool forbid_all_gnupg_connection = false; + try { + forbid_all_gnupg_connection = + settings.lookup("network.forbid_all_gnupg_connection"); + } catch (...) { + SPDLOG_ERROR("setting operation error: forbid_all_gnupg_connection"); + } + + if (forbid_all_gnupg_connection) { + QMessageBox::critical(this, "Forbidden", "GnuPG is in offline mode now."); + this->close(); + this->deleteLater(); + } + if (automatic) { setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint); } else { @@ -249,6 +266,10 @@ void KeyServerImportDialog::slot_search() { Thread::TaskRunnerGetter::GetInstance() .GetTaskRunner(Thread::TaskRunnerGetter::kTaskRunnerType_Network) ->PostTask(task); + + QEventLoop loop; + connect(task, &Thread::Task::SignalTaskEnd, &loop, &QEventLoop::quit); + loop.exec(); } void KeyServerImportDialog::slot_search_finished( diff --git a/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp b/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp index 59f3f7cf..9be77923 100644 --- a/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp +++ b/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp @@ -27,6 +27,7 @@ #include "KeyPairOperaTab.h" #include "KeySetExpireDateDialog.h" +#include "core/function/GlobalSettingStation.h" #include "core/function/gpg/GpgKeyImportExporter.h" #include "core/function/gpg/GpgKeyOpera.h" #include "ui/SignalStation.h" @@ -73,10 +74,23 @@ KeyPairOperaTab::KeyPairOperaTab(const std::string& key_id, QWidget* parent) } auto advance_h_box_layout = new QHBoxLayout(); + + // get settings + auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); + // read settings + bool forbid_all_gnupg_connection = false; + try { + forbid_all_gnupg_connection = + settings.lookup("network.forbid_all_gnupg_connection"); + } catch (...) { + SPDLOG_ERROR("setting operation error: forbid_all_gnupg_connection"); + } + auto* key_server_opera_button = new QPushButton(_("Key Server Operation (Pubkey)")); key_server_opera_button->setStyleSheet("text-align:center;"); key_server_opera_button->setMenu(key_server_opera_menu_); + key_server_opera_button->setDisabled(forbid_all_gnupg_connection); advance_h_box_layout->addWidget(key_server_opera_button); if (m_key_.IsPrivateKey() && m_key_.IsHasMasterKey()) { diff --git a/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp b/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp index d1367541..9c243a39 100644 --- a/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp +++ b/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp @@ -312,7 +312,7 @@ void KeyPairSubkeyTab::slot_refresh_subkey_detail() { } fingerprint_var_label_->setText( - QString::fromStdString(subkey.GetFingerprint())); + QString::fromStdString(beautify_fingerprint(subkey.GetFingerprint()))); } void KeyPairSubkeyTab::create_subkey_opera_menu() { diff --git a/src/ui/widgets/VerifyKeyDetailBox.cpp b/src/ui/widgets/VerifyKeyDetailBox.cpp index c6c4982c..555414b4 100644 --- a/src/ui/widgets/VerifyKeyDetailBox.cpp +++ b/src/ui/widgets/VerifyKeyDetailBox.cpp @@ -28,6 +28,7 @@ #include "ui/widgets/VerifyKeyDetailBox.h" +#include "core/function/GlobalSettingStation.h" #include "core/function/gpg/GpgKeyGetter.h" namespace GpgFrontend::UI { @@ -40,8 +41,21 @@ VerifyKeyDetailBox::VerifyKeyDetailBox(const GpgSignature& signature, switch (gpg_err_code(signature.GetStatus())) { case GPG_ERR_NO_PUBKEY: { this->setTitle("A Error Signature"); - auto* importButton = new QPushButton(_("Import from keyserver")); - connect(importButton, &QPushButton::clicked, this, + + // get settings + auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); + // read settings + bool forbid_all_gnupg_connection = false; + try { + forbid_all_gnupg_connection = + settings.lookup("network.forbid_all_gnupg_connection"); + } catch (...) { + SPDLOG_ERROR("setting operation error: forbid_all_gnupg_connection"); + } + + auto* import_button = new QPushButton(_("Import from keyserver")); + import_button->setDisabled(forbid_all_gnupg_connection); + connect(import_button, &QPushButton::clicked, this, &VerifyKeyDetailBox::slot_import_form_key_server); this->setTitle(QString(_("Key not present with id 0x")) + fpr_.c_str()); @@ -52,7 +66,7 @@ VerifyKeyDetailBox::VerifyKeyDetailBox(const GpgSignature& signature, // grid->addWidget(new QLabel(_("Fingerprint:")), 1, 0); grid->addWidget(new QLabel(_("Key not present in key list")), 0, 1); // grid->addWidget(new QLabel(signature->fpr), 1, 1); - grid->addWidget(importButton, 2, 0, 2, 1); + grid->addWidget(import_button, 2, 0, 2, 1); vbox->addLayout(grid); break; |