aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/keypair_details/KeyPairDetailTab.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/keypair_details/KeyPairDetailTab.cpp')
-rw-r--r--src/ui/keypair_details/KeyPairDetailTab.cpp97
1 files changed, 77 insertions, 20 deletions
diff --git a/src/ui/keypair_details/KeyPairDetailTab.cpp b/src/ui/keypair_details/KeyPairDetailTab.cpp
index 66d01dfc..15dfb661 100644
--- a/src/ui/keypair_details/KeyPairDetailTab.cpp
+++ b/src/ui/keypair_details/KeyPairDetailTab.cpp
@@ -24,52 +24,52 @@
#include "ui/keypair_details/KeyPairDetailTab.h"
-KeyPairDetailTab::KeyPairDetailTab(GpgME::GpgContext *ctx, const GpgKey &key, QWidget *parent) : QWidget(parent) {
+KeyPairDetailTab::KeyPairDetailTab(GpgME::GpgContext *ctx, const GpgKey &mKey, QWidget *parent) : mKey(mKey), QWidget(parent) {
mCtx = ctx;
- keyid = new QString(key.id);
+ keyid = new QString(mKey.id);
ownerBox = new QGroupBox(tr("Owner details"));
keyBox = new QGroupBox(tr("Key details"));
fingerprintBox = new QGroupBox(tr("Fingerprint"));
additionalUidBox = new QGroupBox(tr("Additional Uids"));
- nameVarLabel = new QLabel(key.name);
+ nameVarLabel = new QLabel(mKey.name);
nameVarLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
- emailVarLabel = new QLabel(key.email);
+ emailVarLabel = new QLabel(mKey.email);
emailVarLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
- commentVarLabel = new QLabel(key.comment);
+ commentVarLabel = new QLabel(mKey.comment);
commentVarLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
- keyidVarLabel = new QLabel(key.id);
+ keyidVarLabel = new QLabel(mKey.id);
keyidVarLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
QString usage;
QTextStream usage_steam(&usage);
- if(key.can_certify)
+ if(mKey.can_certify)
usage_steam << "Cert ";
- if(key.can_encrypt)
+ if(mKey.can_encrypt)
usage_steam << "Encr ";
- if(key.can_sign)
+ if(mKey.can_sign)
usage_steam << "Sign ";
- if(key.can_authenticate)
+ if(mKey.can_authenticate)
usage_steam << "Auth ";
usageVarLabel = new QLabel(usage);
QString keySizeVal, keyExpireVal, keyCreateTimeVal, keyAlgoVal;
- keySizeVal = QString::number(key.length);
+ keySizeVal = QString::number(mKey.length);
- if (key.expires.toTime_t() == 0) {
+ if (mKey.expires.toTime_t() == 0) {
keyExpireVal = tr("Never Expired");
} else {
- keyExpireVal = key.expires.toString();
+ keyExpireVal = mKey.expires.toString();
}
- keyAlgoVal = key.pubkey_algo;
- keyCreateTimeVal = key.create_time.toString();
+ keyAlgoVal = mKey.pubkey_algo;
+ keyCreateTimeVal = mKey.create_time.toString();
keySizeVarLabel = new QLabel(keySizeVal);
expireVarLabel = new QLabel(keyExpireVal);
@@ -107,7 +107,7 @@ KeyPairDetailTab::KeyPairDetailTab(GpgME::GpgContext *ctx, const GpgKey &key, QW
keyBox->setLayout(vboxKD);
mvbox->addWidget(keyBox);
- fingerPrintVarLabel = new QLabel(beautifyFingerprint(key.fpr));
+ fingerPrintVarLabel = new QLabel(beautifyFingerprint(mKey.fpr));
fingerPrintVarLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
fingerPrintVarLabel->setStyleSheet("margin-left: 0; margin-right: 5;");
auto *hboxFP = new QHBoxLayout();
@@ -125,7 +125,7 @@ KeyPairDetailTab::KeyPairDetailTab(GpgME::GpgContext *ctx, const GpgKey &key, QW
mvbox->addWidget(fingerprintBox);
mvbox->addStretch();
- if (key.is_private_key) {
+ if (mKey.is_private_key) {
auto *privKeyBox = new QGroupBox(tr("Operations"));
auto *vboxPK = new QVBoxLayout();
@@ -133,21 +133,27 @@ KeyPairDetailTab::KeyPairDetailTab(GpgME::GpgContext *ctx, const GpgKey &key, QW
vboxPK->addWidget(exportButton);
connect(exportButton, SIGNAL(clicked()), this, SLOT(slotExportPrivateKey()));
+ auto *editExpiresButton = new QPushButton(tr("Modify Expiration Datetime"));
+ vboxPK->addWidget(editExpiresButton);
+ connect(editExpiresButton, SIGNAL(clicked()), this, SLOT(slotModifyEditDatetime()));
+
privKeyBox->setLayout(vboxPK);
mvbox->addWidget(privKeyBox);
+
+
}
- if ((key.expired) || (key.revoked)) {
+ if ((mKey.expired) || (mKey.revoked)) {
auto *expBox = new QHBoxLayout();
QIcon icon = QIcon::fromTheme("dialog-warning");
QPixmap pixmap = icon.pixmap(QSize(32, 32), QIcon::Normal, QIcon::On);
auto *expLabel = new QLabel();
auto *iconLabel = new QLabel();
- if (key.expired) {
+ if (mKey.expired) {
expLabel->setText(tr("Warning: Key expired"));
}
- if (key.revoked) {
+ if (mKey.revoked) {
expLabel->setText(tr("Warning: Key revoked"));
}
@@ -160,6 +166,8 @@ KeyPairDetailTab::KeyPairDetailTab(GpgME::GpgContext *ctx, const GpgKey &key, QW
mvbox->addLayout(expBox);
}
+ connect(mCtx, SIGNAL(signalKeyInfoChanged()), this, SLOT(slotRefreshKeyInfo()));
+
setAttribute(Qt::WA_DeleteOnClose, true);
setLayout(mvbox);
}
@@ -208,3 +216,52 @@ void KeyPairDetailTab::slotCopyFingerprint() {
cb->setText(fpr);
}
+void KeyPairDetailTab::slotModifyEditDatetime() {
+ auto dialog = new KeySetExpireDateDialog(mCtx, mKey, nullptr, this);
+ dialog->show();
+}
+
+void KeyPairDetailTab::slotRefreshKeyInfo() {
+
+ nameVarLabel->setText(mKey.name);
+ emailVarLabel->setText(mKey.email);
+
+ commentVarLabel->setText(mKey.comment);
+ keyidVarLabel->setText(mKey.id);
+
+ QString usage;
+ QTextStream usage_steam(&usage);
+
+ if(mKey.can_certify)
+ usage_steam << "Cert ";
+ if(mKey.can_encrypt)
+ usage_steam << "Encr ";
+ if(mKey.can_sign)
+ usage_steam << "Sign ";
+ if(mKey.can_authenticate)
+ usage_steam << "Auth ";
+
+ usageVarLabel->setText(usage);
+
+ QString keySizeVal, keyExpireVal, keyCreateTimeVal, keyAlgoVal;
+
+ keySizeVal = QString::number(mKey.length);
+
+ if (mKey.expires.toTime_t() == 0) {
+ keyExpireVal = tr("Never Expired");
+ } else {
+ keyExpireVal = mKey.expires.toString();
+ }
+
+ keyAlgoVal = mKey.pubkey_algo;
+ keyCreateTimeVal = mKey.create_time.toString();
+
+ keySizeVarLabel->setText(keySizeVal);
+ expireVarLabel->setText(keyExpireVal);
+ createdVarLabel->setText(keyCreateTimeVal);
+ algorithmVarLabel->setText(keyAlgoVal);
+
+ fingerPrintVarLabel->setText(beautifyFingerprint(mKey.fpr));
+
+}
+