diff options
-rw-r--r-- | gpg4usb.qrc | 1 | ||||
-rw-r--r-- | keydetailsdialog.cpp | 23 | ||||
-rw-r--r-- | keydetailsdialog.h | 1 |
3 files changed, 23 insertions, 2 deletions
diff --git a/gpg4usb.qrc b/gpg4usb.qrc index 8a7e794..0885c28 100644 --- a/gpg4usb.qrc +++ b/gpg4usb.qrc @@ -2,5 +2,6 @@ <qresource prefix="/"> <file alias="tray.png">release/icons/keymgmt.png</file> <file alias="help.png">release/icons/help.png</file> + <file alias="button_copy.png">release/icons/button_copy.png</file> </qresource> </RCC> diff --git a/keydetailsdialog.cpp b/keydetailsdialog.cpp index 0e97da9..a4ede02 100644 --- a/keydetailsdialog.cpp +++ b/keydetailsdialog.cpp @@ -116,8 +116,21 @@ KeyDetailsDialog::KeyDetailsDialog(GpgME::GpgContext* ctx, gpgme_key_t key, QWid vboxFP = new QVBoxLayout(); fingerPrintVarLabel = new QLabel(beautifyFingerprint(key->subkeys->fpr)); fingerPrintVarLabel->setTextInteractionFlags(Qt::TextSelectableByMouse); - vboxFP->addWidget(fingerPrintVarLabel); - fingerprintBox->setLayout(vboxFP); + fingerPrintVarLabel->setStyleSheet("margin-left: 20; margin-right: 20;"); + QHBoxLayout *hboxFP = new QHBoxLayout(); + + hboxFP->addWidget(fingerPrintVarLabel); + QIcon ico(":/button_copy.png"); + + QPushButton copyFingerprintButton(QIcon(ico.pixmap(12, 12)), ""); + //copyFingerprintButton.setStyleSheet("QPushButton {border: 0px; } QPushButton:Pressed {} "); + copyFingerprintButton.setFlat(true); + copyFingerprintButton.setToolTip(tr("copy fingerprint to clipboard")); + connect(©FingerprintButton, SIGNAL(clicked()), this, SLOT(copyFingerprint())); + + hboxFP->addWidget(©FingerprintButton); + + fingerprintBox->setLayout(hboxFP); mvbox->addWidget(fingerprintBox); // If key has more than primary uid, also show the other uids @@ -211,3 +224,9 @@ QString KeyDetailsDialog::beautifyFingerprint(QString fingerprint) fingerprint.insert(5 * n + 4, ' '); return fingerprint; } + +void KeyDetailsDialog::copyFingerprint() { + QString fpr = fingerPrintVarLabel->text().trimmed().replace(" ", ""); + QClipboard *cb = QApplication::clipboard(); + cb->setText(fpr); +} diff --git a/keydetailsdialog.h b/keydetailsdialog.h index fb515a2..15e4946 100644 --- a/keydetailsdialog.h +++ b/keydetailsdialog.h @@ -47,6 +47,7 @@ public: private slots: void exportPrivateKey(); + void copyFingerprint(); private: QString *keyid; |