aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/controller/SmartCardControllerDialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/dialog/controller/SmartCardControllerDialog.cpp')
-rw-r--r--src/ui/dialog/controller/SmartCardControllerDialog.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/ui/dialog/controller/SmartCardControllerDialog.cpp b/src/ui/dialog/controller/SmartCardControllerDialog.cpp
index b48d49af..fb812ad6 100644
--- a/src/ui/dialog/controller/SmartCardControllerDialog.cpp
+++ b/src/ui/dialog/controller/SmartCardControllerDialog.cpp
@@ -29,12 +29,11 @@
#include "SmartCardControllerDialog.h"
#include "core/function/gpg/GpgAdvancedOperator.h"
-#include "core/function/gpg/GpgAssuanHelper.h"
#include "core/function/gpg/GpgCommandExecutor.h"
#include "core/function/gpg/GpgSmartCardManager.h"
-#include "core/module/ModuleManager.h"
#include "core/utils/GpgUtils.h"
#include "ui/UISignalStation.h"
+#include "ui/dialog/key_generate/GenerateCardKeyDialog.h"
//
#include "ui_SmartCardControllerDialog.h"
@@ -59,6 +58,7 @@ SmartCardControllerDialog::SmartCardControllerDialog(QWidget* parent)
ui_->cResetCodeButton->setText(tr("Change Reset Code"));
ui_->fetchButton->setText(tr("Fetch"));
ui_->restartGpgAgentButton->setText(tr("Restart All Gpg-Agents"));
+ ui_->generateKeysButton->setText(tr("Generate Card Keys"));
ui_->refreshButton->setText(tr("Refresh"));
ui_->operationGroupBox->setTitle(tr("Operations"));
@@ -122,6 +122,16 @@ SmartCardControllerDialog::SmartCardControllerDialog(QWidget* parent)
});
});
+ connect(ui_->generateKeysButton, &QPushButton::clicked, this, [=](bool) {
+ auto serial_number = ui_->currentCardComboBox->currentText();
+ auto* d = new GenerateCardKeyDialog(channel_, serial_number, this);
+ connect(d, &GenerateCardKeyDialog::finished, this, [=](int ret) {
+ if (ret == 1) {
+ fetch_smart_card_info(serial_number);
+ }
+ });
+ });
+
connect(UISignalStation::GetInstance(),
&UISignalStation::SignalKeyDatabaseRefreshDone, this, [=]() {
refresh_key_tree_view(ui_->keyDBIndexComboBox->currentIndex());
@@ -325,17 +335,19 @@ void SmartCardControllerDialog::slot_refresh() {
void SmartCardControllerDialog::refresh_key_tree_view(int channel) {
if (!has_card_) return;
+ ui_->cardKeysTreeView->SetChannel(channel);
+
QStringList card_fprs;
for (const auto& key_info : card_info_.card_keys_info.values()) {
card_fprs.append(key_info.fingerprint);
}
+ LOG_D() << "card key fingerprints:" << card_fprs;
if (card_fprs.isEmpty()) {
ui_->cardKeysTreeView->SetKeyFilter([](auto) { return false; });
return;
}
- ui_->cardKeysTreeView->SetChannel(channel);
ui_->cardKeysTreeView->SetKeyFilter([=](const GpgAbstractKey* k) {
return card_fprs.contains(k->Fingerprint());
});