aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2012-09-30 12:10:45 +0000
committerubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2012-09-30 12:10:45 +0000
commit67be1f739566ab33e5d1d30fe6e95357c136cfb3 (patch)
tree34b8ab1eaf9b2298bde3d14e3639f5f936dec372
parentrefactored slots in verify* and wizard.* (diff)
downloadgpg4usb-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.cpp62
-rw-r--r--keygendialog.h3
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__