aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2025-04-12 14:00:42 +0000
committersaturneric <[email protected]>2025-04-12 14:00:42 +0000
commit1f393a50c60d94a4ae23875b31e0e07ad3d64375 (patch)
treee4e4597dfca48a38c73779fe577e22e3550ee993 /src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp
parentfix: avoid accessing invalid pointers of structs related to gpgme_key (diff)
downloadGpgFrontend-1f393a50c60d94a4ae23875b31e0e07ad3d64375.tar.gz
GpgFrontend-1f393a50c60d94a4ae23875b31e0e07ad3d64375.zip
fix: issues on adsk operations
Diffstat (limited to 'src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp')
-rw-r--r--src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp b/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp
index ea175f3e..79a28176 100644
--- a/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp
+++ b/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp
@@ -294,7 +294,9 @@ void KeyPairSubkeyTab::slot_add_adsk() {
auto* dialog = new ADSKsPicker(
current_gpg_context_channel_,
- [=](GpgAbstractKey* key) { return !except_key_ids.contains(key->ID()); },
+ [=](const GpgAbstractKey* key) {
+ return !except_key_ids.contains(key->ID());
+ },
this);
dialog->exec();
@@ -474,8 +476,9 @@ void KeyPairSubkeyTab::contextMenuEvent(QContextMenuEvent* event) {
export_subkey_act_->setDisabled(!s_key.IsSecretKey());
edit_subkey_act_->setDisabled(!s_key.IsSecretKey());
- delete_subkey_act_->setDisabled(!s_key.IsSecretKey());
- revoke_subkey_act_->setDisabled(!s_key.IsSecretKey() || s_key.IsRevoked());
+ delete_subkey_act_->setDisabled(!s_key.IsSecretKey() && !s_key.IsADSK());
+ revoke_subkey_act_->setDisabled((!s_key.IsSecretKey() && !s_key.IsADSK()) ||
+ s_key.IsRevoked());
subkey_opera_menu_->exec(event->globalPos());
}