aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/keypair_details/KeyPairSubkeyTab.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/keypair_details/KeyPairSubkeyTab.cpp')
-rw-r--r--src/ui/keypair_details/KeyPairSubkeyTab.cpp248
1 files changed, 128 insertions, 120 deletions
diff --git a/src/ui/keypair_details/KeyPairSubkeyTab.cpp b/src/ui/keypair_details/KeyPairSubkeyTab.cpp
index 4cbe9b1a..067ce110 100644
--- a/src/ui/keypair_details/KeyPairSubkeyTab.cpp
+++ b/src/ui/keypair_details/KeyPairSubkeyTab.cpp
@@ -1,4 +1,6 @@
/**
+ * Copyright (C) 2021 Saturneric
+ *
* This file is part of GpgFrontend.
*
* GpgFrontend is free software: you can redistribute it and/or modify
@@ -6,25 +8,27 @@
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
- * Foobar is distributed in the hope that it will be useful,
+ * GpgFrontend is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <https://www.gnu.org/licenses/>.
+ * along with GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
+ *
+ * The initial version of the source code is inherited from
+ * the gpg4usb project, which is under GPL-3.0-or-later.
*
- * The initial version of the source code is inherited from gpg4usb-team.
- * Their source code version also complies with GNU General Public License.
+ * All the source code of GpgFrontend was modified and released by
+ * Saturneric<[email protected]> starting on May 12, 2021.
*
- * The source code version of this software was modified and released
- * by Saturneric<[email protected]> starting on May 12, 2021.
+ * SPDX-License-Identifier: GPL-3.0-or-later
*
*/
#include "ui/keypair_details/KeyPairSubkeyTab.h"
-#include "gpg/function/GpgKeyGetter.h"
+#include "core/function/gpg/GpgKeyGetter.h"
#include "ui/SignalStation.h"
namespace GpgFrontend::UI {
@@ -34,11 +38,11 @@ KeyPairSubkeyTab::KeyPairSubkeyTab(const std::string& key_id, QWidget* parent)
LOG(INFO) << key_.GetEmail() << key_.IsPrivateKey() << key_.IsHasMasterKey()
<< key_.GetSubKeys()->front().IsPrivateKey();
- createSubkeyList();
- createSubkeyOperaMenu();
+ create_subkey_list();
+ create_subkey_opera_menu();
- listBox = new QGroupBox(_("Subkey List"));
- detailBox = new QGroupBox(_("Detail of Selected Subkey"));
+ list_box_ = new QGroupBox(_("Subkey List"));
+ detail_box_ = new QGroupBox(_("Detail of Selected Subkey"));
auto uidButtonsLayout = new QGridLayout();
@@ -53,7 +57,7 @@ KeyPairSubkeyTab::KeyPairSubkeyTab(const std::string& key_id, QWidget* parent)
auto* baseLayout = new QVBoxLayout();
auto subkeyListLayout = new QGridLayout();
- subkeyListLayout->addWidget(subkeyList, 0, 0);
+ subkeyListLayout->addWidget(subkey_list_, 0, 0);
subkeyListLayout->addLayout(uidButtonsLayout, 1, 0);
subkeyListLayout->setContentsMargins(0, 10, 0, 0);
@@ -76,120 +80,123 @@ KeyPairSubkeyTab::KeyPairSubkeyTab(const std::string& key_id, QWidget* parent)
subkeyDetailLayout->addWidget(new QLabel(QString(_("Fingerprint")) + ": "), 8,
0);
- keyidVarLabel = new QLabel(this);
- keySizeVarLabel = new QLabel(this);
- expireVarLabel = new QLabel(this);
- algorithmVarLabel = new QLabel(this);
- createdVarLabel = new QLabel(this);
- usageVarLabel = new QLabel(this);
- masterKeyExistVarLabel = new QLabel(this);
- fingerPrintVarLabel = new QLabel(this);
- cardKeyLabel = new QLabel(this);
-
- subkeyDetailLayout->addWidget(keyidVarLabel, 0, 1, 1, 1);
- subkeyDetailLayout->addWidget(keySizeVarLabel, 2, 1, 1, 2);
- subkeyDetailLayout->addWidget(expireVarLabel, 4, 1, 1, 2);
- subkeyDetailLayout->addWidget(algorithmVarLabel, 1, 1, 1, 2);
- subkeyDetailLayout->addWidget(createdVarLabel, 5, 1, 1, 2);
- subkeyDetailLayout->addWidget(usageVarLabel, 3, 1, 1, 2);
- subkeyDetailLayout->addWidget(masterKeyExistVarLabel, 6, 1, 1, 2);
- subkeyDetailLayout->addWidget(cardKeyLabel, 7, 1, 1, 2);
- subkeyDetailLayout->addWidget(fingerPrintVarLabel, 8, 1, 1, 2);
+ key_id_var_label_ = new QLabel(this);
+ key_size_var_label_ = new QLabel(this);
+ expire_var_label_ = new QLabel(this);
+ algorithm_var_label_ = new QLabel(this);
+ created_var_label_ = new QLabel(this);
+ usage_var_label_ = new QLabel(this);
+ master_key_exist_var_label_ = new QLabel(this);
+ 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, [=]() {
- QString fpr = keyidVarLabel->text().trimmed();
+ QString fpr = key_id_var_label_->text().trimmed();
QClipboard* cb = QApplication::clipboard();
cb->setText(fpr);
});
- listBox->setLayout(subkeyListLayout);
- listBox->setContentsMargins(0, 12, 0, 0);
- detailBox->setLayout(subkeyDetailLayout);
+ list_box_->setLayout(subkeyListLayout);
+ list_box_->setContentsMargins(0, 12, 0, 0);
+ detail_box_->setLayout(subkeyDetailLayout);
- baseLayout->addWidget(listBox);
- baseLayout->addWidget(detailBox);
+ baseLayout->addWidget(list_box_);
+ baseLayout->addWidget(detail_box_);
baseLayout->addStretch();
- connect(addSubkeyButton, SIGNAL(clicked(bool)), this, SLOT(slotAddSubkey()));
- connect(subkeyList, SIGNAL(itemSelectionChanged()), this,
- SLOT(slotRefreshSubkeyDetail()));
+ connect(addSubkeyButton, &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(), SIGNAL(KeyDatabaseRefresh()), this,
- SLOT(slotRefreshKeyInfo()));
- connect(SignalStation::GetInstance(), SIGNAL(KeyDatabaseRefresh()), this,
- SLOT(slotRefreshSubkeyList()));
+ connect(SignalStation::GetInstance(),
+ &SignalStation::SignalKeyDatabaseRefresh, this,
+ &KeyPairSubkeyTab::slot_refresh_key_info);
+ connect(SignalStation::GetInstance(),
+ &SignalStation::SignalKeyDatabaseRefresh, this,
+ &KeyPairSubkeyTab::slot_refresh_subkey_list);
baseLayout->setContentsMargins(0, 0, 0, 0);
setLayout(baseLayout);
setAttribute(Qt::WA_DeleteOnClose, true);
- slotRefreshSubkeyList();
+ slot_refresh_subkey_list();
}
-void KeyPairSubkeyTab::createSubkeyList() {
- subkeyList = new QTableWidget(this);
+void KeyPairSubkeyTab::create_subkey_list() {
+ subkey_list_ = new QTableWidget(this);
- subkeyList->setColumnCount(5);
- subkeyList->horizontalHeader()->setSectionResizeMode(
+ subkey_list_->setColumnCount(5);
+ subkey_list_->horizontalHeader()->setSectionResizeMode(
QHeaderView::ResizeToContents);
- subkeyList->verticalHeader()->hide();
- subkeyList->setShowGrid(false);
- subkeyList->setSelectionBehavior(QAbstractItemView::SelectRows);
+ subkey_list_->verticalHeader()->hide();
+ subkey_list_->setShowGrid(false);
+ subkey_list_->setSelectionBehavior(QAbstractItemView::SelectRows);
// tableitems not editable
- subkeyList->setEditTriggers(QAbstractItemView::NoEditTriggers);
+ subkey_list_->setEditTriggers(QAbstractItemView::NoEditTriggers);
// no focus (rectangle around tableitems)
// may be it should focus on whole row
- subkeyList->setFocusPolicy(Qt::NoFocus);
- subkeyList->setAlternatingRowColors(true);
+ subkey_list_->setFocusPolicy(Qt::NoFocus);
+ subkey_list_->setAlternatingRowColors(true);
QStringList labels;
labels << _("Subkey ID") << _("Key Size") << _("Algo")
<< _("Create Date (UTC)") << _("Expire Date (UTC)");
- subkeyList->setHorizontalHeaderLabels(labels);
- subkeyList->horizontalHeader()->setStretchLastSection(false);
+ subkey_list_->setHorizontalHeaderLabels(labels);
+ subkey_list_->horizontalHeader()->setStretchLastSection(false);
}
-void KeyPairSubkeyTab::slotRefreshSubkeyList() {
+void KeyPairSubkeyTab::slot_refresh_subkey_list() {
LOG(INFO) << "Called";
int row = 0;
- subkeyList->setSelectionMode(QAbstractItemView::SingleSelection);
+ subkey_list_->setSelectionMode(QAbstractItemView::SingleSelection);
- this->buffered_subkeys.clear();
+ this->buffered_subkeys_.clear();
auto sub_keys = key_.GetSubKeys();
for (auto& sub_key : *sub_keys) {
if (sub_key.IsDisabled() || sub_key.IsRevoked()) continue;
- this->buffered_subkeys.push_back(std::move(sub_key));
+ this->buffered_subkeys_.push_back(std::move(sub_key));
}
- subkeyList->setRowCount(buffered_subkeys.size());
+ subkey_list_->setRowCount(buffered_subkeys_.size());
- for (const auto& subkeys : buffered_subkeys) {
+ for (const auto& subkeys : buffered_subkeys_) {
auto* tmp0 = new QTableWidgetItem(QString::fromStdString(subkeys.GetID()));
tmp0->setTextAlignment(Qt::AlignCenter);
- subkeyList->setItem(row, 0, tmp0);
+ subkey_list_->setItem(row, 0, tmp0);
auto* tmp1 = new QTableWidgetItem(QString::number(subkeys.GetKeyLength()));
tmp1->setTextAlignment(Qt::AlignCenter);
- subkeyList->setItem(row, 1, tmp1);
+ subkey_list_->setItem(row, 1, tmp1);
auto* tmp2 =
new QTableWidgetItem(QString::fromStdString(subkeys.GetPubkeyAlgo()));
tmp2->setTextAlignment(Qt::AlignCenter);
- subkeyList->setItem(row, 2, tmp2);
+ subkey_list_->setItem(row, 2, tmp2);
auto* tmp3 = new QTableWidgetItem(
QString::fromStdString(to_iso_string(subkeys.GetCreateTime())));
tmp3->setTextAlignment(Qt::AlignCenter);
- subkeyList->setItem(row, 3, tmp3);
+ subkey_list_->setItem(row, 3, tmp3);
auto* tmp4 = new QTableWidgetItem(
boost::posix_time::to_time_t(
@@ -197,53 +204,53 @@ void KeyPairSubkeyTab::slotRefreshSubkeyList() {
? _("Never Expire")
: QString::fromStdString(to_iso_string(subkeys.GetExpireTime())));
tmp4->setTextAlignment(Qt::AlignCenter);
- subkeyList->setItem(row, 4, tmp4);
+ subkey_list_->setItem(row, 4, tmp4);
if (!row) {
- for (auto i = 0; i < subkeyList->columnCount(); i++) {
- subkeyList->item(row, i)->setForeground(QColor(65, 105, 255));
+ for (auto i = 0; i < subkey_list_->columnCount(); i++) {
+ subkey_list_->item(row, i)->setForeground(QColor(65, 105, 255));
}
}
row++;
}
- if (subkeyList->rowCount() > 0) {
- subkeyList->selectRow(0);
+ if (subkey_list_->rowCount() > 0) {
+ subkey_list_->selectRow(0);
}
}
-void KeyPairSubkeyTab::slotAddSubkey() {
+void KeyPairSubkeyTab::slot_add_subkey() {
auto dialog = new SubkeyGenerateDialog(key_.GetId(), this);
dialog->show();
}
-void KeyPairSubkeyTab::slotRefreshSubkeyDetail() {
- auto& subkey = getSelectedSubkey();
+void KeyPairSubkeyTab::slot_refresh_subkey_detail() {
+ auto& subkey = get_selected_subkey();
- keyidVarLabel->setText(QString::fromStdString(subkey.GetID()));
- keySizeVarLabel->setText(QString::number(subkey.GetKeyLength()));
+ key_id_var_label_->setText(QString::fromStdString(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()));
- expireVarLabel->setText(
+ expire_var_label_->setText(
subkey_time_t == 0 ? _("Never Expires")
: QLocale::system().toString(QDateTime::fromTime_t(
to_time_t(subkey.GetExpireTime()))));
if (subkey_time_t != 0 &&
subkey.GetExpireTime() < boost::posix_time::second_clock::local_time()) {
- auto paletteExpired = expireVarLabel->palette();
- paletteExpired.setColor(expireVarLabel->foregroundRole(), Qt::red);
- expireVarLabel->setPalette(paletteExpired);
+ auto paletteExpired = expire_var_label_->palette();
+ paletteExpired.setColor(expire_var_label_->foregroundRole(), Qt::red);
+ expire_var_label_->setPalette(paletteExpired);
} else {
- auto paletteValid = expireVarLabel->palette();
- paletteValid.setColor(expireVarLabel->foregroundRole(), Qt::darkGreen);
- expireVarLabel->setPalette(paletteValid);
+ auto paletteValid = expire_var_label_->palette();
+ paletteValid.setColor(expire_var_label_->foregroundRole(), Qt::darkGreen);
+ expire_var_label_->setPalette(paletteValid);
}
- algorithmVarLabel->setText(QString::fromStdString(subkey.GetPubkeyAlgo()));
- createdVarLabel->setText(QLocale::system().toString(
+ algorithm_var_label_->setText(QString::fromStdString(subkey.GetPubkeyAlgo()));
+ created_var_label_->setText(QLocale::system().toString(
QDateTime::fromTime_t(to_time_t(subkey.GetCreateTime()))));
std::stringstream usage_steam;
@@ -254,76 +261,77 @@ void KeyPairSubkeyTab::slotRefreshSubkeyDetail() {
if (subkey.IsHasSigningCapability()) usage_steam << _("Sign") << " ";
if (subkey.IsHasAuthenticationCapability()) usage_steam << _("Auth") << " ";
- usageVarLabel->setText(usage_steam.str().c_str());
+ usage_var_label_->setText(usage_steam.str().c_str());
// Show the situation that secret key not exists.
- masterKeyExistVarLabel->setText(subkey.IsSecretKey() ? _("Exists")
- : _("Not Exists"));
+ master_key_exist_var_label_->setText(subkey.IsSecretKey() ? _("Exists")
+ : _("Not Exists"));
// Show the situation if key in a smart card.
- cardKeyLabel->setText(subkey.IsCardKey() ? _("Yes") : _("No"));
+ card_key_label_->setText(subkey.IsCardKey() ? _("Yes") : _("No"));
if (!subkey.IsSecretKey()) {
- auto palette_expired = masterKeyExistVarLabel->palette();
- palette_expired.setColor(masterKeyExistVarLabel->foregroundRole(), Qt::red);
- masterKeyExistVarLabel->setPalette(palette_expired);
+ auto palette_expired = master_key_exist_var_label_->palette();
+ palette_expired.setColor(master_key_exist_var_label_->foregroundRole(),
+ Qt::red);
+ master_key_exist_var_label_->setPalette(palette_expired);
} else {
- auto palette_valid = masterKeyExistVarLabel->palette();
- palette_valid.setColor(masterKeyExistVarLabel->foregroundRole(),
+ auto palette_valid = master_key_exist_var_label_->palette();
+ palette_valid.setColor(master_key_exist_var_label_->foregroundRole(),
Qt::darkGreen);
- masterKeyExistVarLabel->setPalette(palette_valid);
+ master_key_exist_var_label_->setPalette(palette_valid);
}
if (!subkey.IsCardKey()) {
- auto palette_expired = cardKeyLabel->palette();
- palette_expired.setColor(cardKeyLabel->foregroundRole(), Qt::red);
- cardKeyLabel->setPalette(palette_expired);
+ auto palette_expired = card_key_label_->palette();
+ palette_expired.setColor(card_key_label_->foregroundRole(), Qt::red);
+ card_key_label_->setPalette(palette_expired);
} else {
- auto palette_valid = cardKeyLabel->palette();
- palette_valid.setColor(cardKeyLabel->foregroundRole(), Qt::darkGreen);
- cardKeyLabel->setPalette(palette_valid);
+ auto palette_valid = card_key_label_->palette();
+ palette_valid.setColor(card_key_label_->foregroundRole(), Qt::darkGreen);
+ card_key_label_->setPalette(palette_valid);
}
- fingerPrintVarLabel->setText(QString::fromStdString(subkey.GetFingerprint()));
+ fingerprint_var_label_->setText(
+ QString::fromStdString(subkey.GetFingerprint()));
}
-void KeyPairSubkeyTab::createSubkeyOperaMenu() {
- subkeyOperaMenu = new QMenu(this);
- // auto *revokeSubkeyAct = new QAction(_("Revoke Subkey"));
+void KeyPairSubkeyTab::create_subkey_opera_menu() {
+ subkey_opera_menu_ = new QMenu(this);
auto* editSubkeyAct = new QAction(_("Edit Expire Date"));
- connect(editSubkeyAct, SIGNAL(triggered(bool)), this, SLOT(slotEditSubkey()));
+ connect(editSubkeyAct, &QAction::triggered, this,
+ &KeyPairSubkeyTab::slot_edit_subkey);
- // subkeyOperaMenu->addAction(revokeSubkeyAct);
- subkeyOperaMenu->addAction(editSubkeyAct);
+ subkey_opera_menu_->addAction(editSubkeyAct);
}
-void KeyPairSubkeyTab::slotEditSubkey() {
- LOG(INFO) << "Fpr" << getSelectedSubkey().GetFingerprint();
+void KeyPairSubkeyTab::slot_edit_subkey() {
+ LOG(INFO) << "Fpr" << get_selected_subkey().GetFingerprint();
auto dialog = new KeySetExpireDateDialog(
- key_.GetId(), getSelectedSubkey().GetFingerprint(), this);
+ key_.GetId(), get_selected_subkey().GetFingerprint(), this);
dialog->show();
}
-void KeyPairSubkeyTab::slotRevokeSubkey() {}
+void KeyPairSubkeyTab::slot_revoke_subkey() {}
void KeyPairSubkeyTab::contextMenuEvent(QContextMenuEvent* event) {
- if (!subkeyList->selectedItems().isEmpty()) {
- subkeyOperaMenu->exec(event->globalPos());
+ if (!subkey_list_->selectedItems().isEmpty()) {
+ subkey_opera_menu_->exec(event->globalPos());
}
}
-const GpgSubKey& KeyPairSubkeyTab::getSelectedSubkey() {
+const GpgSubKey& KeyPairSubkeyTab::get_selected_subkey() {
int row = 0;
- for (int i = 0; i < subkeyList->rowCount(); i++) {
- if (subkeyList->item(row, 0)->isSelected()) break;
+ for (int i = 0; i < subkey_list_->rowCount(); i++) {
+ if (subkey_list_->item(row, 0)->isSelected()) break;
row++;
}
- return buffered_subkeys[row];
+ return buffered_subkeys_[row];
}
-void KeyPairSubkeyTab::slotRefreshKeyInfo() {
+void KeyPairSubkeyTab::slot_refresh_key_info() {
key_ = GpgKeyGetter::GetInstance().GetKey(key_.GetId());
}