From a9997b0a135917abe4113ebb50229afd30945ff0 Mon Sep 17 00:00:00 2001 From: ubbo Date: Sun, 8 Jan 2012 02:44:08 +0000 Subject: add copyFingerprint button to detailsdialog git-svn-id: http://cpunk.de/svn/src/gpg4usb/trunk@733 34ebc366-c3a9-4b3c-9f84-69acf7962910 --- gpg4usb.qrc | 1 + keydetailsdialog.cpp | 23 +++++++++++++++++++++-- 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 @@ release/icons/keymgmt.png release/icons/help.png + release/icons/button_copy.png 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; -- cgit v1.2.3