diff options
Diffstat (limited to 'keydetailsdialog.cpp')
-rw-r--r-- | keydetailsdialog.cpp | 121 |
1 files changed, 62 insertions, 59 deletions
diff --git a/keydetailsdialog.cpp b/keydetailsdialog.cpp index 0712143..51c472d 100644 --- a/keydetailsdialog.cpp +++ b/keydetailsdialog.cpp @@ -18,21 +18,22 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ - + #include "keydetailsdialog.h" //#include "QDebug" -KeyDetailsDialog::KeyDetailsDialog(GpgME::Context* ctx, gpgme_key_t key) { - +KeyDetailsDialog::KeyDetailsDialog(GpgME::Context* ctx, gpgme_key_t key) +{ + mCtx = ctx; keyid = new QString(key->subkeys->keyid); - - ownerBox = new QGroupBox(tr("Owner details")); - keyBox = new QGroupBox(tr("Key details")); - fingerprintBox = new QGroupBox(tr("Fingerprint")); - buttonBox = new QDialogButtonBox(QDialogButtonBox::Close); - connect(buttonBox, SIGNAL(rejected()), this, SLOT(close())); - + + ownerBox = new QGroupBox(tr("Owner details")); + keyBox = new QGroupBox(tr("Key details")); + fingerprintBox = new QGroupBox(tr("Fingerprint")); + buttonBox = new QDialogButtonBox(QDialogButtonBox::Close); + connect(buttonBox, SIGNAL(rejected()), this, SLOT(close())); + nameLabel = new QLabel(tr("Name:")); emailLabel = new QLabel(tr("E-Mailaddress:")); commentLabel = new QLabel(tr("Comment:")); @@ -46,20 +47,20 @@ KeyDetailsDialog::KeyDetailsDialog(GpgME::Context* ctx, gpgme_key_t key) { commentVarLabel = new QLabel(key->uids->comment); //keySizeVarLabel = new QLabel(); QString keySizeVal, keyExpireVal, keyCreatedVal, keyAlgoVal; - - if ( key->subkeys->expires == 0 ) { + + if (key->subkeys->expires == 0) { keyExpireVal = tr("Never"); } else { keyExpireVal = QDateTime::fromTime_t(key->subkeys->expires).toString("dd. MMM. yyyy"); } - + keyAlgoVal = gpgme_pubkey_algo_name(key->subkeys->pubkey_algo); keyCreatedVal = QDateTime::fromTime_t(key->subkeys->timestamp).toString("dd. MMM. yyyy"); - + // have el-gamal key? - if(key->subkeys->next) { - keySizeVal.sprintf("%d / %d", int(key->subkeys->length), int(key->subkeys->next->length) ); - if ( key->subkeys->next->expires == 0 ) { + if (key->subkeys->next) { + keySizeVal.sprintf("%d / %d", int(key->subkeys->length), int(key->subkeys->next->length)); + if (key->subkeys->next->expires == 0) { keyExpireVal += tr(" / Never"); } else { keyExpireVal += " / " + QDateTime::fromTime_t(key->subkeys->next->expires).toString("dd. MMM. yyyy"); @@ -67,19 +68,19 @@ KeyDetailsDialog::KeyDetailsDialog(GpgME::Context* ctx, gpgme_key_t key) { keyAlgoVal.append(" / ").append(gpgme_pubkey_algo_name(key->subkeys->next->pubkey_algo)); keyCreatedVal += " / " + QDateTime::fromTime_t(key->subkeys->next->timestamp).toString("dd. MMM. yyyy"); } else { - keySizeVal.setNum( int(key->subkeys->length)); + keySizeVal.setNum(int(key->subkeys->length)); } - + keySizeVarLabel = new QLabel(keySizeVal); expireVarLabel = new QLabel(keyExpireVal); - createdVarLabel = new QLabel(keyCreatedVal); + createdVarLabel = new QLabel(keyCreatedVal); algorithmVarLabel = new QLabel(keyAlgoVal); - + mvbox = new QVBoxLayout(); vboxKD = new QGridLayout(); - vboxOD = new QGridLayout(); - + vboxOD = new QGridLayout(); + vboxOD->addWidget(nameLabel, 0, 0); vboxOD->addWidget(emailLabel, 1, 0); vboxOD->addWidget(commentLabel, 2, 0); @@ -96,54 +97,55 @@ KeyDetailsDialog::KeyDetailsDialog(GpgME::Context* ctx, gpgme_key_t key) { vboxKD->addWidget(expireVarLabel, 1, 1); vboxKD->addWidget(algorithmVarLabel, 3, 1); vboxKD->addWidget(createdVarLabel, 4, 1); - - ownerBox->setLayout(vboxOD); - mvbox->addWidget(ownerBox); - - keyBox->setLayout(vboxKD); - mvbox->addWidget(keyBox); - - vboxFP = new QVBoxLayout(); + + ownerBox->setLayout(vboxOD); + mvbox->addWidget(ownerBox); + + keyBox->setLayout(vboxKD); + mvbox->addWidget(keyBox); + + vboxFP = new QVBoxLayout(); fingerPrintLabel = new QLabel(beautifyFingerprint(key->subkeys->fpr)); fingerPrintLabel->setTextInteractionFlags(Qt::TextSelectableByMouse); - vboxFP->addWidget(fingerPrintLabel); - fingerprintBox->setLayout(vboxFP); - mvbox->addWidget(fingerprintBox); + vboxFP->addWidget(fingerPrintLabel); + fingerprintBox->setLayout(vboxFP); + mvbox->addWidget(fingerprintBox); - if(key->secret) { + if (key->secret) { QGroupBox *privKeyBox = new QGroupBox(tr("Private Key")); QVBoxLayout *vboxPK = new QVBoxLayout(); - + QPushButton *exportButton = new QPushButton(tr("Export Private Key")); vboxPK->addWidget(exportButton); connect(exportButton, SIGNAL(clicked()), this, SLOT(exportPrivateKey())); - + privKeyBox->setLayout(vboxPK); mvbox->addWidget(privKeyBox); } - mvbox->addWidget(buttonBox); - - this->setLayout(mvbox); + mvbox->addWidget(buttonBox); + + this->setLayout(mvbox); this->setWindowTitle(tr("Keydetails")); - this->show(); + this->show(); - exec(); + exec(); } -void KeyDetailsDialog::exportPrivateKey() { - +void KeyDetailsDialog::exportPrivateKey() +{ + int ret = QMessageBox::information(this, tr("Exporting private Key"), - tr("You are about to export your private key.\n" - "This is NOT your public key, so don't give it away.\n" - "Make sure you keep it save."), - QMessageBox::Cancel | QMessageBox::Ok); - - if(ret==QMessageBox::Ok) { - + tr("You are about to export your private key.\n" + "This is NOT your public key, so don't give it away.\n" + "Make sure you keep it save."), + QMessageBox::Cancel | QMessageBox::Ok); + + if (ret == QMessageBox::Ok) { + QByteArray *keyArray = new QByteArray(); mCtx->exportSecretKey(*keyid, keyArray); - + QString fileName = QFileDialog::getSaveFileName(this, tr("Export Key To File"), "", tr("Key Files ") + " (*.asc *.txt);;All Files (*)"); QFile file(fileName); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) @@ -153,13 +155,14 @@ void KeyDetailsDialog::exportPrivateKey() { file.close(); delete keyArray; } - + } -QString KeyDetailsDialog::beautifyFingerprint(QString fingerprint) { - uint len = fingerprint.length(); - if((len>0) && (len%4 == 0)) - for (uint n = 0; 4 * (n + 1) < len; ++n) - fingerprint.insert(5 * n + 4, ' '); - return fingerprint; +QString KeyDetailsDialog::beautifyFingerprint(QString fingerprint) +{ + uint len = fingerprint.length(); + if ((len > 0) && (len % 4 == 0)) + for (uint n = 0; 4 *(n + 1) < len; ++n) + fingerprint.insert(5 * n + 4, ' '); + return fingerprint; } |