diff options
author | ubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910> | 2012-09-30 12:10:45 +0000 |
---|---|---|
committer | ubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910> | 2012-09-30 12:10:45 +0000 |
commit | 67be1f739566ab33e5d1d30fe6e95357c136cfb3 (patch) | |
tree | 34b8ab1eaf9b2298bde3d14e3639f5f936dec372 | |
parent | refactored slots in verify* and wizard.* (diff) | |
download | gpg4usb-67be1f739566ab33e5d1d30fe6e95357c136cfb3.tar.gz gpg4usb-67be1f739566ab33e5d1d30fe6e95357c136cfb3.zip |
close progressdialog when keygeneration finished
git-svn-id: http://cpunk.de/svn/src/gpg4usb/trunk@987 34ebc366-c3a9-4b3c-9f84-69acf7962910
-rw-r--r-- | keygendialog.cpp | 62 | ||||
-rw-r--r-- | keygendialog.h | 3 |
2 files changed, 51 insertions, 14 deletions
diff --git a/keygendialog.cpp b/keygendialog.cpp index 86a0b20..36040e2 100644 --- a/keygendialog.cpp +++ b/keygendialog.cpp @@ -170,33 +170,30 @@ void KeyGenDialog::slotKeyGenAccept() 'd', passwordEdit->text()); + // m_genkey = new KGpgTransactionJob(genkey); + + //connect(m_genkey, SIGNAL(result(KJob*)), SLOT(slotGenerateKeyDone(KJob*))); + + connect(genkey, SIGNAL(done(int)), SLOT(slotGenkeyDone(int))); genkey->start(); this->accept(); - QDialog *dialog = new QDialog(this, Qt::CustomizeWindowHint | Qt::WindowTitleHint); - dialog->setModal(true); - dialog->setWindowTitle(tr("Generating Key...")); + m_dialog = new QDialog(this, Qt::CustomizeWindowHint | Qt::WindowTitleHint); + m_dialog->setModal(true); + m_dialog->setWindowTitle(tr("Generating Key...")); QLabel *waitMessage = new QLabel(tr("Collecting random data for key generation.\n This may take a while.\n To speed up the process use your computer\n (e.g. browse the net, listen to music,...)")); QProgressBar *pb = new QProgressBar(); pb->setRange(0, 0); - QVBoxLayout *layout = new QVBoxLayout(dialog); + QVBoxLayout *layout = new QVBoxLayout(m_dialog); layout->addWidget(waitMessage); layout->addWidget(pb); - dialog->setLayout(layout); - - dialog->show(); + m_dialog->setLayout(layout); - //genkey->thread()->isRunning() + m_dialog->show(); - while (genkey->thread()->isRunning()) { - QCoreApplication::processEvents(); - } - - dialog->close(); - QMessageBox::information(0,tr("Success"),tr("New key created")); } else { /** * create error message @@ -211,6 +208,43 @@ void KeyGenDialog::slotKeyGenAccept() } } +void KeyGenDialog::slotGenkeyDone(int result) { + + qDebug() << "genkey done"; + + KGpgGenerateKey *genkey = qobject_cast<KGpgGenerateKey *>(sender()); + Q_ASSERT(genkey != NULL); + + const QString infomessage(tr("Generating new key pair")); + + // TODO: + switch (result) { + case KGpgTransaction::TS_BAD_PASSPHRASE: + QMessageBox::warning(this, infomessage, tr("Bad passphrase. Cannot generate a new key pair.")); + break; + case KGpgTransaction::TS_USER_ABORTED: + QMessageBox::warning(this, infomessage, tr("Aborted by the user. Cannot generate a new key pair.")); + break; + case KGpgTransaction::TS_INVALID_EMAIL: + QMessageBox::warning(this, infomessage, tr("The email address is not valid. Cannot generate a new key pair.")); + break; + case KGpgGenerateKey::TS_INVALID_NAME: + QMessageBox::warning(this, infomessage, tr("The name is not accepted by gpg. Cannot generate a new key pair.")); + break; + case KGpgTransaction::TS_OK: + mCtx->emitKeyDBChanged(); + m_dialog->close(); + // TODO: could be much more info, have a look at keysmanager::slotGenerateKeyDone from kgpg + QMessageBox::information(this,tr("Success"),tr("New key created: ").arg(genkey->getName())); + break; + default: + QMessageBox::warning(this, infomessage, tr("gpg process did not finish. Cannot generate a new key pair.").arg(genkey->gpgErrorMessage())); + } + + + +} + void KeyGenDialog::slotExpireBoxChanged() { if (expireCheckBox->checkState()) { diff --git a/keygendialog.h b/keygendialog.h index 08f9c4c..38c8222 100644 --- a/keygendialog.h +++ b/keygendialog.h @@ -65,6 +65,7 @@ private: QCheckBox *expireCheckBox; /** Checkbox, if key should expire */ QSlider *pwStrengthSlider; /** Slider showing the password strength */ int lastKeySize; /** integer to remember to last selected keysize (only display warning first tim above 2048)*/ + QDialog *m_dialog; private slots: /** @@ -92,5 +93,7 @@ private slots: */ void slotKeyGenAccept(); + void slotGenkeyDone(int result); + }; #endif // __KEYGENDIALOG_H__ |