aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--include/gpg/GpgKey.h2
-rw-r--r--include/gpg/GpgSubKey.h1
-rw-r--r--include/ui/keypair_details/KeyPairDetailTab.h1
-rw-r--r--include/ui/keypair_details/KeyPairSubkeyTab.h9
-rw-r--r--include/ui/keypair_details/KeySetExpireDateDialog.h26
-rw-r--r--src/gpg/GpgContext.cpp4
-rw-r--r--src/gpg/GpgKey.cpp8
-rw-r--r--src/gpg/GpgSubKey.cpp5
-rw-r--r--src/ui/keypair_details/KeyPairDetailTab.cpp32
-rw-r--r--src/ui/keypair_details/KeyPairSubkeyTab.cpp69
-rw-r--r--src/ui/keypair_details/KeyPairUIDTab.cpp2
-rw-r--r--src/ui/keypair_details/KeySetExpireDateDialog.cpp28
-rw-r--r--src/ui/keypair_details/KeyUIDSignDialog.cpp2
-rw-r--r--src/ui/widgets/KeyList.cpp34
14 files changed, 183 insertions, 40 deletions
diff --git a/include/gpg/GpgKey.h b/include/gpg/GpgKey.h
index ec796780..f83a2a1e 100644
--- a/include/gpg/GpgKey.h
+++ b/include/gpg/GpgKey.h
@@ -56,6 +56,8 @@ public:
bool revoked{};
bool disabled{};
+ bool has_master_key{};
+
bool good = false;
QVector<GpgSubKey> subKeys;
diff --git a/include/gpg/GpgSubKey.h b/include/gpg/GpgSubKey.h
index 229e04c9..f2da9e9e 100644
--- a/include/gpg/GpgSubKey.h
+++ b/include/gpg/GpgSubKey.h
@@ -45,6 +45,7 @@ struct GpgSubKey {
bool expired{};
bool revoked{};
bool disabled{};
+ bool secret{};
bool is_cardkey{};
QDateTime timestamp;
diff --git a/include/ui/keypair_details/KeyPairDetailTab.h b/include/ui/keypair_details/KeyPairDetailTab.h
index 6b3bc2f0..d081ac46 100644
--- a/include/ui/keypair_details/KeyPairDetailTab.h
+++ b/include/ui/keypair_details/KeyPairDetailTab.h
@@ -77,6 +77,7 @@ private:
QLabel *keyidVarLabel; /** Label containng the keys keyid */
QLabel *fingerPrintVarLabel; /** Label containng the keys fingerprint */
QLabel *usageVarLabel;
+ QLabel *masterKeyExistVarLabel;
public:
explicit KeyPairDetailTab(GpgME::GpgContext *ctx, const GpgKey& mKey, QWidget *parent = nullptr);
diff --git a/include/ui/keypair_details/KeyPairSubkeyTab.h b/include/ui/keypair_details/KeyPairSubkeyTab.h
index ae954968..41bb0648 100644
--- a/include/ui/keypair_details/KeyPairSubkeyTab.h
+++ b/include/ui/keypair_details/KeyPairSubkeyTab.h
@@ -29,6 +29,7 @@
#include "gpg/GpgContext.h"
#include "ui/keygen/SubkeyGenerateDialog.h"
+#include "KeySetExpireDateDialog.h"
class KeyPairSubkeyTab : public QWidget {
Q_OBJECT
@@ -43,6 +44,8 @@ private:
void createSubkeyOperaMenu();
+ const GpgSubKey *getSelectedSubkey();
+
GpgME::GpgContext *mCtx;
const GpgKey &mKey;
QTableWidget *subkeyList;
@@ -61,6 +64,7 @@ private:
QLabel *keyidVarLabel; /** Label containng the keys keyid */
QLabel *fingerPrintVarLabel; /** Label containng the keys fingerprint */
QLabel *usageVarLabel;
+ QLabel *masterKeyExistVarLabel;
private slots:
@@ -75,6 +79,11 @@ private slots:
void slotRevokeSubkey();
+protected:
+
+ void contextMenuEvent(QContextMenuEvent *event) override;
+
+
};
diff --git a/include/ui/keypair_details/KeySetExpireDateDialog.h b/include/ui/keypair_details/KeySetExpireDateDialog.h
index d0206402..118bc5ed 100644
--- a/include/ui/keypair_details/KeySetExpireDateDialog.h
+++ b/include/ui/keypair_details/KeySetExpireDateDialog.h
@@ -1,6 +1,26 @@
-//
-// Created by eric on 2021/6/3.
-//
+/**
+ * This file is part of GPGFrontend.
+ *
+ * GPGFrontend is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * 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,
+ * 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/>.
+ *
+ * The initial version of the source code is inherited from gpg4usb-team.
+ * Their source code version also complies with GNU General Public License.
+ *
+ * The source code version of this software was modified and released
+ * by Saturneric<[email protected]> starting on May 12, 2021.
+ *
+ */
#ifndef GPGFRONTEND_KEYSETEXPIREDATEDIALOG_H
#define GPGFRONTEND_KEYSETEXPIREDATEDIALOG_H
diff --git a/src/gpg/GpgContext.cpp b/src/gpg/GpgContext.cpp
index d6211616..07e0c8fa 100644
--- a/src/gpg/GpgContext.cpp
+++ b/src/gpg/GpgContext.cpp
@@ -607,7 +607,7 @@ namespace GpgME {
void GpgContext::checkErr(gpgme_error_t gpgmeError) {
//if (gpgmeError != GPG_ERR_NO_ERROR && gpgmeError != GPG_ERR_CANCELED) {
- if (gpgmeError != GPG_ERR_NO_ERROR) {
+ if (gpg_err_code(gpgmeError) != GPG_ERR_NO_ERROR) {
qDebug() << "[Error " << gpg_err_code(gpgmeError)
<< "] Source: " << gpgme_strsource(gpgmeError) << " Description: " << gpgErrString(gpgmeError);
}
@@ -992,7 +992,7 @@ namespace GpgME {
auto gpgmeError = gpgme_op_revsig(mCtx, key.key_refer,
signing_key.key_refer,
signature.uid.toUtf8().constData(), 0);
- if(gpgmeError == GPG_ERR_NO_ERROR) {
+ if(gpg_err_code(gpgmeError) == GPG_ERR_NO_ERROR) {
emit signalKeyUpdated(key.id);
return true;
}
diff --git a/src/gpg/GpgKey.cpp b/src/gpg/GpgKey.cpp
index bcacc8c3..df4b05ca 100644
--- a/src/gpg/GpgKey.cpp
+++ b/src/gpg/GpgKey.cpp
@@ -96,6 +96,7 @@ void GpgKey::parse(gpgme_key_t key) {
pubkey_algo = subKeys.first().pubkey_algo;
create_time = subKeys.first().timestamp;
length = subKeys.first().length;
+ has_master_key = subKeys.first().secret;
} else {
id = "";
}
@@ -129,6 +130,7 @@ GpgKey::GpgKey(GpgKey &&k) noexcept {
expired = k.expired;
revoked = k.revoked;
disabled = k.disabled;
+ k.has_master_key = k.has_master_key;
good = k.good;
k.good = false;
@@ -167,6 +169,8 @@ GpgKey &GpgKey::operator=(const GpgKey &k) {
revoked = k.revoked;
disabled = k.disabled;
+ has_master_key = k.has_master_key;
+
good = k.good;
subKeys = k.subKeys;
@@ -196,6 +200,8 @@ GpgKey::GpgKey(const GpgKey &k) :
revoked = k.revoked;
disabled = k.disabled;
+ has_master_key = k.has_master_key;
+
good = k.good;
subKeys = k.subKeys;
@@ -234,6 +240,8 @@ GpgKey &GpgKey::operator=(GpgKey &&k) noexcept {
revoked = k.revoked;
disabled = k.disabled;
+ has_master_key = k.has_master_key;
+
good = k.good;
k.good = false;
diff --git a/src/gpg/GpgSubKey.cpp b/src/gpg/GpgSubKey.cpp
index 0f8e279f..4adda132 100644
--- a/src/gpg/GpgSubKey.cpp
+++ b/src/gpg/GpgSubKey.cpp
@@ -31,8 +31,9 @@ GpgSubKey::GpgSubKey(gpgme_subkey_t key) {
pubkey_algo = gpgme_pubkey_algo_name(key->pubkey_algo);
fpr = key->fpr;
- expired = (key->expired != 0u);
- revoked = (key->revoked != 0u);
+ expired = key->expired;
+ revoked = key->revoked;
+ secret = key->secret;
disabled = key->disabled;
diff --git a/src/ui/keypair_details/KeyPairDetailTab.cpp b/src/ui/keypair_details/KeyPairDetailTab.cpp
index 15dfb661..5ba8d1e9 100644
--- a/src/ui/keypair_details/KeyPairDetailTab.cpp
+++ b/src/ui/keypair_details/KeyPairDetailTab.cpp
@@ -63,11 +63,12 @@ KeyPairDetailTab::KeyPairDetailTab(GpgME::GpgContext *ctx, const GpgKey &mKey, Q
keySizeVal = QString::number(mKey.length);
if (mKey.expires.toTime_t() == 0) {
- keyExpireVal = tr("Never Expired");
+ keyExpireVal = tr("Never Expires");
} else {
keyExpireVal = mKey.expires.toString();
}
+
keyAlgoVal = mKey.pubkey_algo;
keyCreateTimeVal = mKey.create_time.toString();
@@ -76,6 +77,28 @@ KeyPairDetailTab::KeyPairDetailTab(GpgME::GpgContext *ctx, const GpgKey &mKey, Q
createdVarLabel = new QLabel(keyCreateTimeVal);
algorithmVarLabel = new QLabel(keyAlgoVal);
+ // Show the situation that master key not exists.
+ masterKeyExistVarLabel = new QLabel(mKey.has_master_key ? "Exists" : "Not Exists");
+ if(!mKey.has_master_key){
+ auto paletteExpired = masterKeyExistVarLabel->palette();
+ paletteExpired.setColor(masterKeyExistVarLabel->foregroundRole(), Qt::red);
+ masterKeyExistVarLabel->setPalette(paletteExpired);
+ } else {
+ auto paletteValid = masterKeyExistVarLabel->palette();
+ paletteValid.setColor(masterKeyExistVarLabel->foregroundRole(), Qt::darkGreen);
+ masterKeyExistVarLabel->setPalette(paletteValid);
+ }
+
+ if(mKey.expired){
+ auto paletteExpired = expireVarLabel->palette();
+ paletteExpired.setColor(expireVarLabel->foregroundRole(), Qt::red);
+ expireVarLabel->setPalette(paletteExpired);
+ } else {
+ auto paletteValid = expireVarLabel->palette();
+ paletteValid.setColor(expireVarLabel->foregroundRole(), Qt::darkGreen);
+ expireVarLabel->setPalette(paletteValid);
+ }
+
auto *mvbox = new QVBoxLayout();
auto *vboxKD = new QGridLayout();
auto *vboxOD = new QGridLayout();
@@ -93,6 +116,7 @@ KeyPairDetailTab::KeyPairDetailTab(GpgME::GpgContext *ctx, const GpgKey &mKey, Q
vboxKD->addWidget(new QLabel(tr("Usage: ")), 3, 0);
vboxKD->addWidget(new QLabel(tr("Expires on: ")), 4, 0);
vboxKD->addWidget(new QLabel(tr("Last Update: ")), 5, 0);
+ vboxKD->addWidget(new QLabel(tr("Existence: ")), 6, 0);
vboxKD->addWidget(keySizeVarLabel, 2, 1);
@@ -101,6 +125,7 @@ KeyPairDetailTab::KeyPairDetailTab(GpgME::GpgContext *ctx, const GpgKey &mKey, Q
vboxKD->addWidget(createdVarLabel, 5, 1);
vboxKD->addWidget(keyidVarLabel, 0, 1);
vboxKD->addWidget(usageVarLabel, 3, 1);
+ vboxKD->addWidget(masterKeyExistVarLabel, 6, 1);
ownerBox->setLayout(vboxOD);
mvbox->addWidget(ownerBox);
@@ -151,16 +176,17 @@ KeyPairDetailTab::KeyPairDetailTab(GpgME::GpgContext *ctx, const GpgKey &mKey, Q
auto *expLabel = new QLabel();
auto *iconLabel = new QLabel();
if (mKey.expired) {
- expLabel->setText(tr("Warning: Key expired"));
+ expLabel->setText(tr("Warning: The master key of the key pair has expired."));
}
if (mKey.revoked) {
- expLabel->setText(tr("Warning: Key revoked"));
+ expLabel->setText(tr("Warning: The master key of the key pair has been revoked"));
}
iconLabel->setPixmap(pixmap);
QFont font = expLabel->font();
font.setBold(true);
expLabel->setFont(font);
+ expLabel->setAlignment(Qt::AlignCenter);
expBox->addWidget(iconLabel);
expBox->addWidget(expLabel);
mvbox->addLayout(expBox);
diff --git a/src/ui/keypair_details/KeyPairSubkeyTab.cpp b/src/ui/keypair_details/KeyPairSubkeyTab.cpp
index 75bd50f5..b47013ed 100644
--- a/src/ui/keypair_details/KeyPairSubkeyTab.cpp
+++ b/src/ui/keypair_details/KeyPairSubkeyTab.cpp
@@ -27,6 +27,7 @@
KeyPairSubkeyTab::KeyPairSubkeyTab(GpgME::GpgContext *ctx, const GpgKey &key, QWidget *parent) : mCtx(ctx), mKey(key), QWidget(parent) {
createSubkeyList();
+ createSubkeyOperaMenu();
listBox = new QGroupBox("Subkey List");
detailBox = new QGroupBox("Detail of Selected Subkey");
@@ -55,6 +56,7 @@ KeyPairSubkeyTab::KeyPairSubkeyTab(GpgME::GpgContext *ctx, const GpgKey &key, QW
subkeyDetailLayout->addWidget(new QLabel(tr("Usage: ")), 3, 0);
subkeyDetailLayout->addWidget(new QLabel(tr("Expires on: ")), 4, 0);
subkeyDetailLayout->addWidget(new QLabel(tr("Last Update: ")), 5, 0);
+ subkeyDetailLayout->addWidget(new QLabel(tr("Existence: ")), 6, 0);
keyidVarLabel = new QLabel();
keySizeVarLabel = new QLabel();
@@ -62,6 +64,7 @@ KeyPairSubkeyTab::KeyPairSubkeyTab(GpgME::GpgContext *ctx, const GpgKey &key, QW
algorithmVarLabel = new QLabel();
createdVarLabel = new QLabel();
usageVarLabel = new QLabel();
+ masterKeyExistVarLabel = new QLabel();
subkeyDetailLayout->addWidget(keyidVarLabel, 0, 1);
subkeyDetailLayout->addWidget(keySizeVarLabel, 2, 1);
@@ -69,6 +72,7 @@ KeyPairSubkeyTab::KeyPairSubkeyTab(GpgME::GpgContext *ctx, const GpgKey &key, QW
subkeyDetailLayout->addWidget(algorithmVarLabel, 1, 1);
subkeyDetailLayout->addWidget(createdVarLabel, 5, 1);
subkeyDetailLayout->addWidget(usageVarLabel, 3, 1);
+ subkeyDetailLayout->addWidget(masterKeyExistVarLabel, 6, 1);
listBox->setLayout(subkeyListLayout);
detailBox->setLayout(subkeyDetailLayout);
@@ -165,18 +169,22 @@ void KeyPairSubkeyTab::slotAddSubkey() {
void KeyPairSubkeyTab::slotRefreshSubkeyDetail() {
- int row = 0;
-
- for(int i = 0 ; i < subkeyList->rowCount(); i++) {
- if(subkeyList->item(row, 0)->isSelected()) break;
- row++;
- }
-
- auto key = buffered_subkeys[row];
+ auto key = getSelectedSubkey();
keyidVarLabel->setText(key->id);
keySizeVarLabel->setText(QString::number(key->length));
- expireVarLabel->setText(key->expires.toTime_t() == 0 ? tr("Never Expire") : key->expires.toString());
+
+ expireVarLabel->setText(key->expires.toTime_t() == 0 ? tr("Never Expires") : key->expires.toString());
+ if(key->expires.toTime_t() != 0 && key->expires < QDateTime::currentDateTime()) {
+ auto paletteExpired = expireVarLabel->palette();
+ paletteExpired.setColor(expireVarLabel->foregroundRole(), Qt::red);
+ expireVarLabel->setPalette(paletteExpired);
+ } else {
+ auto paletteValid = expireVarLabel->palette();
+ paletteValid.setColor(expireVarLabel->foregroundRole(), Qt::darkGreen);
+ expireVarLabel->setPalette(paletteValid);
+ }
+
algorithmVarLabel->setText(key->pubkey_algo);
createdVarLabel->setText(key->timestamp.toString());
@@ -193,21 +201,56 @@ void KeyPairSubkeyTab::slotRefreshSubkeyDetail() {
usage_steam << "Auth ";
usageVarLabel->setText(usage);
+
+ // Show the situation that master key not exists.
+ masterKeyExistVarLabel->setText(key->secret ? "Exists" : "Not Exists");
+ if(!key->secret){
+ auto paletteExpired = masterKeyExistVarLabel->palette();
+ paletteExpired.setColor(masterKeyExistVarLabel->foregroundRole(), Qt::red);
+ masterKeyExistVarLabel->setPalette(paletteExpired);
+ } else {
+ auto paletteValid = masterKeyExistVarLabel->palette();
+ paletteValid.setColor(masterKeyExistVarLabel->foregroundRole(), Qt::darkGreen);
+ masterKeyExistVarLabel->setPalette(paletteValid);
+ }
}
void KeyPairSubkeyTab::createSubkeyOperaMenu() {
subkeyOperaMenu = new QMenu();
- auto *revokeSubkeyAct = new QAction(tr("Revoke Subkey"));
- auto *editSubkeyAct = new QAction(tr("Edit Subkey"));
+ // auto *revokeSubkeyAct = new QAction(tr("Revoke Subkey"));
+ auto *editSubkeyAct = new QAction(tr("Edit Expire Date"));
+ connect(editSubkeyAct, SIGNAL(triggered(bool)), this, SLOT(slotEditSubkey()));
- subkeyOperaMenu->addAction(revokeSubkeyAct);
+ // subkeyOperaMenu->addAction(revokeSubkeyAct);
subkeyOperaMenu->addAction(editSubkeyAct);
}
void KeyPairSubkeyTab::slotEditSubkey() {
-
+ auto *subkey = getSelectedSubkey();
+ if(subkey == buffered_subkeys[0]) {
+ subkey = nullptr;
+ }
+ auto dialog = new KeySetExpireDateDialog(mCtx, mKey, subkey, this);
+ dialog->show();
}
void KeyPairSubkeyTab::slotRevokeSubkey() {
}
+
+void KeyPairSubkeyTab::contextMenuEvent(QContextMenuEvent *event) {
+ if (subkeyList->selectedItems().length() > 0) {
+ subkeyOperaMenu->exec(event->globalPos());
+ }
+}
+
+const GpgSubKey *KeyPairSubkeyTab::getSelectedSubkey() {
+ int row = 0;
+
+ for(int i = 0 ; i < subkeyList->rowCount(); i++) {
+ if(subkeyList->item(row, 0)->isSelected()) break;
+ row++;
+ }
+
+ return buffered_subkeys[row];
+}
diff --git a/src/ui/keypair_details/KeyPairUIDTab.cpp b/src/ui/keypair_details/KeyPairUIDTab.cpp
index 1fe57916..729fb1d2 100644
--- a/src/ui/keypair_details/KeyPairUIDTab.cpp
+++ b/src/ui/keypair_details/KeyPairUIDTab.cpp
@@ -209,7 +209,7 @@ void KeyPairUIDTab::slotRefreshSigList() {
auto *tmp4 = new QTableWidgetItem(sig->create_time.toString());
sigList->setItem(sigRow, 3, tmp4);
- auto *tmp5 = new QTableWidgetItem(sig->expire_time.toTime_t() == 0 ? tr("Never Expire") : sig->expire_time.toString());
+ auto *tmp5 = new QTableWidgetItem(sig->expire_time.toTime_t() == 0 ? tr("Never Expires") : sig->expire_time.toString());
tmp5->setTextAlignment(Qt::AlignCenter);
sigList->setItem(sigRow, 4, tmp5);
diff --git a/src/ui/keypair_details/KeySetExpireDateDialog.cpp b/src/ui/keypair_details/KeySetExpireDateDialog.cpp
index f9b05dea..67238685 100644
--- a/src/ui/keypair_details/KeySetExpireDateDialog.cpp
+++ b/src/ui/keypair_details/KeySetExpireDateDialog.cpp
@@ -1,6 +1,26 @@
-//
-// Created by eric on 2021/6/3.
-//
+/**
+ * This file is part of GPGFrontend.
+ *
+ * GPGFrontend is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * 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,
+ * 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/>.
+ *
+ * The initial version of the source code is inherited from gpg4usb-team.
+ * Their source code version also complies with GNU General Public License.
+ *
+ * The source code version of this software was modified and released
+ * by Saturneric<[email protected]> starting on May 12, 2021.
+ *
+ */
#include "ui/keypair_details/KeySetExpireDateDialog.h"
@@ -9,7 +29,7 @@ QDialog(parent), mKey(key), mSubkey(subkey), mCtx(ctx) {
QDateTime maxDateTime = QDateTime::currentDateTime().addYears(2);
dateTimeEdit = new QDateTimeEdit(maxDateTime);
- dateTimeEdit->setMinimumDateTime(QDateTime::currentDateTime());
+ dateTimeEdit->setMinimumDateTime(QDateTime::currentDateTime().addSecs(1));
dateTimeEdit->setMaximumDateTime(maxDateTime);
nonExpiredCheck = new QCheckBox();
nonExpiredCheck->setTristate(false);
diff --git a/src/ui/keypair_details/KeyUIDSignDialog.cpp b/src/ui/keypair_details/KeyUIDSignDialog.cpp
index 2fe03e26..4ccf51a1 100644
--- a/src/ui/keypair_details/KeyUIDSignDialog.cpp
+++ b/src/ui/keypair_details/KeyUIDSignDialog.cpp
@@ -33,7 +33,7 @@ KeyUIDSignDialog::KeyUIDSignDialog(GpgME::GpgContext *ctx, const GpgKey &key, co
this);
mKeyList->setFilter([](const GpgKey &key) -> bool {
- if(key.disabled || !key.can_sign) return false;
+ if(key.disabled || !key.can_certify || !key.has_master_key || key.expired || key.revoked) return false;
else return true;
});
mKeyList->setExcludeKeys({key.id});
diff --git a/src/ui/widgets/KeyList.cpp b/src/ui/widgets/KeyList.cpp
index 0868890f..b6596402 100644
--- a/src/ui/widgets/KeyList.cpp
+++ b/src/ui/widgets/KeyList.cpp
@@ -152,26 +152,25 @@ void KeyList::slotRefresh()
tmp0->setCheckState(Qt::Unchecked);
mKeyList->setItem(row_index, 0, tmp0);
+ QString type_str;
+ QTextStream type_steam(&type_str);
if (it->is_private_key) {
- auto *tmp1 = new QTableWidgetItem("pub/sec");
- mKeyList->setItem(row_index, 1, tmp1);
+ type_steam << "pub/sec";
} else {
- auto *tmp1 = new QTableWidgetItem("pub");
- mKeyList->setItem(row_index, 1, tmp1);
+ type_steam << "pub";
}
+ if(it->is_private_key && !it->has_master_key) {
+ type_steam << "#";
+ }
+ auto* tmp1 = new QTableWidgetItem(type_str);
+ mKeyList->setItem(row_index, 1, tmp1);
+
auto *tmp2 = new QTableWidgetItem(it->name);
tmp2->setToolTip(it->name);
mKeyList->setItem(row_index, 2, tmp2);
auto *tmp3 = new QTableWidgetItem(it->email);
tmp3->setToolTip(it->email);
- // strike out expired keys
- if(it->expired || it->revoked) {
- QFont strike = tmp2->font();
- strike.setStrikeOut(true);
- tmp2->setFont(strike);
- tmp3->setFont(strike);
- }
mKeyList->setItem(row_index, 3, tmp3);
QString usage;
@@ -198,6 +197,19 @@ void KeyList::slotRefresh()
temp_fpr->setTextAlignment(Qt::AlignCenter);
mKeyList->setItem(row_index, 6, temp_fpr);
+ // strike out expired keys
+ if(it->expired || it->revoked) {
+ QFont strike = tmp2->font();
+ strike.setStrikeOut(true);
+ tmp0->setFont(strike);
+ temp_usage->setFont(strike);
+ temp_fpr->setFont(strike);
+ temp_validity->setFont(strike);
+ tmp1->setFont(strike);
+ tmp2->setFont(strike);
+ tmp3->setFont(strike);
+ }
+
it++;
++row_index;
}