aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/ui/dialog/import_export/KeyServerImportDialog.cpp21
-rw-r--r--src/ui/dialog/keypair_details/KeyPairOperaTab.cpp14
-rw-r--r--src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp2
-rw-r--r--src/ui/widgets/VerifyKeyDetailBox.cpp20
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;