aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp')
-rw-r--r--src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp241
1 files changed, 110 insertions, 131 deletions
diff --git a/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp b/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp
index 9c243a39..3f973fae 100644
--- a/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp
+++ b/src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp
@@ -1,5 +1,5 @@
/**
- * Copyright (C) 2021 Saturneric
+ * Copyright (C) 2021 Saturneric <[email protected]>
*
* This file is part of GpgFrontend.
*
@@ -20,7 +20,7 @@
* the gpg4usb project, which is under GPL-3.0-or-later.
*
* All the source code of GpgFrontend was modified and released by
- * Saturneric<[email protected]> starting on May 12, 2021.
+ * Saturneric <[email protected]> starting on May 12, 2021.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
@@ -28,57 +28,52 @@
#include "KeyPairSubkeyTab.h"
+#include "core/GpgModel.h"
#include "core/function/gpg/GpgKeyGetter.h"
-#include "ui/SignalStation.h"
+#include "core/utils/CommonUtils.h"
+#include "ui/UISignalStation.h"
namespace GpgFrontend::UI {
-KeyPairSubkeyTab::KeyPairSubkeyTab(const std::string& key_id, QWidget* parent)
+KeyPairSubkeyTab::KeyPairSubkeyTab(const QString& key_id, QWidget* parent)
: QWidget(parent), key_(GpgKeyGetter::GetInstance().GetKey(key_id)) {
- SPDLOG_DEBUG(key_.GetEmail(), key_.IsPrivateKey(), key_.IsHasMasterKey(),
- key_.GetSubKeys()->front().IsPrivateKey());
-
create_subkey_list();
create_subkey_opera_menu();
- list_box_ = new QGroupBox(_("Subkey List"));
- detail_box_ = new QGroupBox(_("Detail of Selected Subkey"));
+ list_box_ = new QGroupBox(tr("Subkey List"));
+ detail_box_ = new QGroupBox(tr("Detail of Selected Subkey"));
- auto uidButtonsLayout = new QGridLayout();
+ auto* uid_buttons_layout = new QGridLayout();
- auto addSubkeyButton = new QPushButton(_("Generate A New Subkey"));
+ auto* add_subkey_button = new QPushButton(tr("Generate A New Subkey"));
if (!key_.IsPrivateKey() || !key_.IsHasMasterKey()) {
- addSubkeyButton->setDisabled(true);
- setHidden(addSubkeyButton);
+ add_subkey_button->setDisabled(true);
+ setHidden(add_subkey_button);
}
- uidButtonsLayout->addWidget(addSubkeyButton, 0, 1);
-
- auto* baseLayout = new QVBoxLayout();
-
- auto subkeyListLayout = new QGridLayout();
- subkeyListLayout->addWidget(subkey_list_, 0, 0);
- subkeyListLayout->addLayout(uidButtonsLayout, 1, 0);
- subkeyListLayout->setContentsMargins(0, 10, 0, 0);
-
- auto* subkeyDetailLayout = new QGridLayout();
-
- subkeyDetailLayout->addWidget(new QLabel(QString(_("Key ID")) + ": "), 0, 0);
- subkeyDetailLayout->addWidget(new QLabel(QString(_("Algorithm")) + ": "), 1,
- 0);
- subkeyDetailLayout->addWidget(new QLabel(QString(_("Key Size")) + ": "), 2,
- 0);
- subkeyDetailLayout->addWidget(new QLabel(QString(_("Usage")) + ": "), 3, 0);
- subkeyDetailLayout->addWidget(
- new QLabel(QString(_("Expires On (Local Time)")) + ": "), 4, 0);
- subkeyDetailLayout->addWidget(
- new QLabel(QString(_("Create Date (Local Time)")) + ": "), 5, 0);
- subkeyDetailLayout->addWidget(new QLabel(QString(_("Existence")) + ": "), 6,
- 0);
- subkeyDetailLayout->addWidget(
- new QLabel(QString(_("Key in Smart Card")) + ": "), 7, 0);
- subkeyDetailLayout->addWidget(new QLabel(QString(_("Fingerprint")) + ": "), 8,
- 0);
+ uid_buttons_layout->addWidget(add_subkey_button, 0, 1);
+
+ auto* base_layout = new QVBoxLayout();
+
+ auto* subkey_list_layout = new QGridLayout();
+ subkey_list_layout->addWidget(subkey_list_, 0, 0);
+ subkey_list_layout->addLayout(uid_buttons_layout, 1, 0);
+ subkey_list_layout->setContentsMargins(0, 10, 0, 0);
+
+ auto* subkey_detail_layout = new QGridLayout();
+
+ subkey_detail_layout->addWidget(new QLabel(tr("Key ID") + ": "), 0, 0);
+ subkey_detail_layout->addWidget(new QLabel(tr("Algorithm") + ": "), 1, 0);
+ subkey_detail_layout->addWidget(new QLabel(tr("Key Size") + ": "), 2, 0);
+ subkey_detail_layout->addWidget(new QLabel(tr("Usage") + ": "), 3, 0);
+ subkey_detail_layout->addWidget(
+ new QLabel(tr("Expires On (Local Time)") + ": "), 4, 0);
+ subkey_detail_layout->addWidget(
+ new QLabel(tr("Create Date (Local Time)") + ": "), 5, 0);
+ subkey_detail_layout->addWidget(new QLabel(tr("Existence") + ": "), 6, 0);
+ subkey_detail_layout->addWidget(new QLabel(tr("Key in Smart Card") + ": "), 7,
+ 0);
+ subkey_detail_layout->addWidget(new QLabel(tr("Fingerprint") + ": "), 8, 0);
key_id_var_label_ = new QLabel(this);
key_size_var_label_ = new QLabel(this);
@@ -90,49 +85,49 @@ KeyPairSubkeyTab::KeyPairSubkeyTab(const std::string& key_id, QWidget* parent)
fingerprint_var_label_ = new QLabel(this);
card_key_label_ = new QLabel(this);
- subkeyDetailLayout->addWidget(key_id_var_label_, 0, 1, 1, 1);
- subkeyDetailLayout->addWidget(key_size_var_label_, 2, 1, 1, 2);
- subkeyDetailLayout->addWidget(expire_var_label_, 4, 1, 1, 2);
- subkeyDetailLayout->addWidget(algorithm_var_label_, 1, 1, 1, 2);
- subkeyDetailLayout->addWidget(created_var_label_, 5, 1, 1, 2);
- subkeyDetailLayout->addWidget(usage_var_label_, 3, 1, 1, 2);
- subkeyDetailLayout->addWidget(master_key_exist_var_label_, 6, 1, 1, 2);
- subkeyDetailLayout->addWidget(card_key_label_, 7, 1, 1, 2);
- subkeyDetailLayout->addWidget(fingerprint_var_label_, 8, 1, 1, 2);
-
- auto* copyKeyIdButton = new QPushButton(_("Copy"));
- copyKeyIdButton->setFlat(true);
- subkeyDetailLayout->addWidget(copyKeyIdButton, 0, 2);
- connect(copyKeyIdButton, &QPushButton::clicked, this, [=]() {
+ subkey_detail_layout->addWidget(key_id_var_label_, 0, 1, 1, 1);
+ subkey_detail_layout->addWidget(key_size_var_label_, 2, 1, 1, 2);
+ subkey_detail_layout->addWidget(expire_var_label_, 4, 1, 1, 2);
+ subkey_detail_layout->addWidget(algorithm_var_label_, 1, 1, 1, 2);
+ subkey_detail_layout->addWidget(created_var_label_, 5, 1, 1, 2);
+ subkey_detail_layout->addWidget(usage_var_label_, 3, 1, 1, 2);
+ subkey_detail_layout->addWidget(master_key_exist_var_label_, 6, 1, 1, 2);
+ subkey_detail_layout->addWidget(card_key_label_, 7, 1, 1, 2);
+ subkey_detail_layout->addWidget(fingerprint_var_label_, 8, 1, 1, 2);
+
+ auto* copy_key_id_button = new QPushButton(tr("Copy"));
+ copy_key_id_button->setFlat(true);
+ subkey_detail_layout->addWidget(copy_key_id_button, 0, 2);
+ connect(copy_key_id_button, &QPushButton::clicked, this, [=]() {
QString fpr = key_id_var_label_->text().trimmed();
QClipboard* cb = QApplication::clipboard();
cb->setText(fpr);
});
- list_box_->setLayout(subkeyListLayout);
+ list_box_->setLayout(subkey_list_layout);
list_box_->setContentsMargins(0, 12, 0, 0);
- detail_box_->setLayout(subkeyDetailLayout);
+ detail_box_->setLayout(subkey_detail_layout);
- baseLayout->addWidget(list_box_);
- baseLayout->addWidget(detail_box_);
- baseLayout->addStretch();
+ base_layout->addWidget(list_box_);
+ base_layout->addWidget(detail_box_);
+ base_layout->addStretch();
- connect(addSubkeyButton, &QPushButton::clicked, this,
+ connect(add_subkey_button, &QPushButton::clicked, this,
&KeyPairSubkeyTab::slot_add_subkey);
connect(subkey_list_, &QTableWidget::itemSelectionChanged, this,
&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);
+ base_layout->setContentsMargins(0, 0, 0, 0);
- setLayout(baseLayout);
+ setLayout(base_layout);
setAttribute(Qt::WA_DeleteOnClose, true);
slot_refresh_subkey_list();
@@ -157,8 +152,8 @@ void KeyPairSubkeyTab::create_subkey_list() {
subkey_list_->setAlternatingRowColors(true);
QStringList labels;
- labels << _("Subkey ID") << _("Key Size") << _("Algo")
- << _("Create Date (UTC)") << _("Expire Date (UTC)");
+ labels << tr("Subkey ID") << tr("Key Size") << tr("Algo") << tr("Create Date")
+ << tr("Expire Date");
subkey_list_->setHorizontalHeaderLabels(labels);
subkey_list_->horizontalHeader()->setStretchLastSection(false);
@@ -176,13 +171,13 @@ void KeyPairSubkeyTab::slot_refresh_subkey_list() {
this->buffered_subkeys_.push_back(std::move(sub_key));
}
- SPDLOG_DEBUG("buffered_subkeys_ refreshed size",
- this->buffered_subkeys_.size());
+ GF_UI_LOG_DEBUG("buffered_subkeys_ refreshed size",
+ this->buffered_subkeys_.size());
subkey_list_->setRowCount(buffered_subkeys_.size());
for (const auto& subkeys : buffered_subkeys_) {
- auto* tmp0 = new QTableWidgetItem(QString::fromStdString(subkeys.GetID()));
+ auto* tmp0 = new QTableWidgetItem(subkeys.GetID());
tmp0->setTextAlignment(Qt::AlignCenter);
subkey_list_->setItem(row, 0, tmp0);
@@ -190,21 +185,18 @@ void KeyPairSubkeyTab::slot_refresh_subkey_list() {
tmp1->setTextAlignment(Qt::AlignCenter);
subkey_list_->setItem(row, 1, tmp1);
- auto* tmp2 =
- new QTableWidgetItem(QString::fromStdString(subkeys.GetPubkeyAlgo()));
+ auto* tmp2 = new QTableWidgetItem(subkeys.GetPubkeyAlgo());
tmp2->setTextAlignment(Qt::AlignCenter);
subkey_list_->setItem(row, 2, tmp2);
- auto* tmp3 = new QTableWidgetItem(
- QString::fromStdString(to_iso_string(subkeys.GetCreateTime())));
+ auto* tmp3 = new QTableWidgetItem(subkeys.GetCreateTime().toString());
tmp3->setTextAlignment(Qt::AlignCenter);
subkey_list_->setItem(row, 3, tmp3);
- auto* tmp4 = new QTableWidgetItem(
- boost::posix_time::to_time_t(
- boost::posix_time::ptime(subkeys.GetExpireTime())) == 0
- ? _("Never Expire")
- : QString::fromStdString(to_iso_string(subkeys.GetExpireTime())));
+ auto* tmp4 =
+ new QTableWidgetItem(subkeys.GetExpireTime().toSecsSinceEpoch() == 0
+ ? tr("Never Expire")
+ : subkeys.GetExpireTime().toString());
tmp4->setTextAlignment(Qt::AlignCenter);
subkey_list_->setItem(row, 4, tmp4);
@@ -214,12 +206,12 @@ void KeyPairSubkeyTab::slot_refresh_subkey_list() {
}
}
- SPDLOG_DEBUG("subkey_list_ item {} refreshed", row);
+ GF_UI_LOG_DEBUG("subkey_list_ item {} refreshed", row);
row++;
}
- SPDLOG_DEBUG("subkey_list_ refreshed");
+ GF_UI_LOG_DEBUG("subkey_list_ refreshed");
if (subkey_list_->rowCount() > 0) {
subkey_list_->selectRow(0);
@@ -227,67 +219,55 @@ void KeyPairSubkeyTab::slot_refresh_subkey_list() {
}
void KeyPairSubkeyTab::slot_add_subkey() {
- auto dialog = new SubkeyGenerateDialog(key_.GetId(), this);
+ auto* dialog = new SubkeyGenerateDialog(key_.GetId(), this);
dialog->show();
}
void KeyPairSubkeyTab::slot_refresh_subkey_detail() {
- auto& subkey = get_selected_subkey();
+ const auto& subkey = get_selected_subkey();
- key_id_var_label_->setText(QString::fromStdString(subkey.GetID()));
+ key_id_var_label_->setText(subkey.GetID());
key_size_var_label_->setText(QString::number(subkey.GetKeyLength()));
- time_t subkey_time_t = boost::posix_time::to_time_t(
- boost::posix_time::ptime(subkey.GetExpireTime()));
+ time_t subkey_time_t = subkey.GetExpireTime().toSecsSinceEpoch();
-#ifdef GPGFRONTEND_GUI_QT6
- expire_var_label_->setText(
- subkey_time_t == 0
- ? _("Never Expires")
- : QLocale::system().toString(QDateTime::fromSecsSinceEpoch(
- to_time_t(subkey.GetExpireTime()))));
-#else
expire_var_label_->setText(
- subkey_time_t == 0 ? _("Never Expires")
- : QLocale::system().toString(QDateTime::fromTime_t(
- to_time_t(subkey.GetExpireTime()))));
-#endif
+ subkey_time_t == 0 ? tr("Never Expires")
+ : QLocale::system().toString(subkey.GetExpireTime()));
+
if (subkey_time_t != 0 &&
- subkey.GetExpireTime() < boost::posix_time::second_clock::local_time()) {
- auto paletteExpired = expire_var_label_->palette();
- paletteExpired.setColor(expire_var_label_->foregroundRole(), Qt::red);
- expire_var_label_->setPalette(paletteExpired);
+ subkey.GetExpireTime() < QDateTime::currentDateTime()) {
+ auto palette_expired = expire_var_label_->palette();
+ palette_expired.setColor(expire_var_label_->foregroundRole(), Qt::red);
+ expire_var_label_->setPalette(palette_expired);
} else {
- auto paletteValid = expire_var_label_->palette();
- paletteValid.setColor(expire_var_label_->foregroundRole(), Qt::darkGreen);
- expire_var_label_->setPalette(paletteValid);
+ auto palette_valid = expire_var_label_->palette();
+ palette_valid.setColor(expire_var_label_->foregroundRole(), Qt::darkGreen);
+ expire_var_label_->setPalette(palette_valid);
}
- algorithm_var_label_->setText(QString::fromStdString(subkey.GetPubkeyAlgo()));
-#ifdef GPGFRONTEND_GUI_QT6
- created_var_label_->setText(QLocale::system().toString(
- QDateTime::fromSecsSinceEpoch(to_time_t(subkey.GetCreateTime()))));
-#else
- created_var_label_->setText(QLocale::system().toString(
- QDateTime::fromTime_t(to_time_t(subkey.GetCreateTime()))));
-#endif
+ algorithm_var_label_->setText(subkey.GetPubkeyAlgo());
+ created_var_label_->setText(
+ QLocale::system().toString(subkey.GetCreateTime()));
- std::stringstream usage_steam;
+ QString buffer;
+ QTextStream usage_steam(&buffer);
- if (subkey.IsHasCertificationCapability())
- usage_steam << _("Certificate") << " ";
- if (subkey.IsHasEncryptionCapability()) usage_steam << _("Encrypt") << " ";
- if (subkey.IsHasSigningCapability()) usage_steam << _("Sign") << " ";
- if (subkey.IsHasAuthenticationCapability()) usage_steam << _("Auth") << " ";
+ if (subkey.IsHasCertificationCapability()) {
+ usage_steam << tr("Certificate") << " ";
+ }
+ if (subkey.IsHasEncryptionCapability()) usage_steam << tr("Encrypt") << " ";
+ if (subkey.IsHasSigningCapability()) usage_steam << tr("Sign") << " ";
+ if (subkey.IsHasAuthenticationCapability()) usage_steam << tr("Auth") << " ";
- usage_var_label_->setText(usage_steam.str().c_str());
+ usage_var_label_->setText(usage_steam.readAll());
// Show the situation that secret key not exists.
- master_key_exist_var_label_->setText(subkey.IsSecretKey() ? _("Exists")
- : _("Not Exists"));
+ master_key_exist_var_label_->setText(subkey.IsSecretKey() ? tr("Exists")
+ : tr("Not Exists"));
// Show the situation if key in a smart card.
- card_key_label_->setText(subkey.IsCardKey() ? _("Yes") : _("No"));
+ card_key_label_->setText(subkey.IsCardKey() ? tr("Yes") : tr("No"));
if (!subkey.IsSecretKey()) {
auto palette_expired = master_key_exist_var_label_->palette();
@@ -311,23 +291,22 @@ void KeyPairSubkeyTab::slot_refresh_subkey_detail() {
card_key_label_->setPalette(palette_valid);
}
- fingerprint_var_label_->setText(
- QString::fromStdString(beautify_fingerprint(subkey.GetFingerprint())));
+ fingerprint_var_label_->setText(BeautifyFingerprint(subkey.GetFingerprint()));
}
void KeyPairSubkeyTab::create_subkey_opera_menu() {
subkey_opera_menu_ = new QMenu(this);
- auto* editSubkeyAct = new QAction(_("Edit Expire Date"));
- connect(editSubkeyAct, &QAction::triggered, this,
+ auto* edit_subkey_act = new QAction(tr("Edit Expire Date"));
+ connect(edit_subkey_act, &QAction::triggered, this,
&KeyPairSubkeyTab::slot_edit_subkey);
- subkey_opera_menu_->addAction(editSubkeyAct);
+ subkey_opera_menu_->addAction(edit_subkey_act);
}
void KeyPairSubkeyTab::slot_edit_subkey() {
- SPDLOG_DEBUG("fpr {}", get_selected_subkey().GetFingerprint());
+ GF_UI_LOG_DEBUG("fpr {}", get_selected_subkey().GetFingerprint());
- auto dialog = new KeySetExpireDateDialog(
+ auto* dialog = new KeySetExpireDateDialog(
key_.GetId(), get_selected_subkey().GetFingerprint(), this);
dialog->show();
}
@@ -340,7 +319,7 @@ void KeyPairSubkeyTab::contextMenuEvent(QContextMenuEvent* event) {
}
}
-const GpgSubKey& KeyPairSubkeyTab::get_selected_subkey() {
+auto KeyPairSubkeyTab::get_selected_subkey() -> const GpgSubKey& {
int row = 0;
for (int i = 0; i < subkey_list_->rowCount(); i++) {