diff options
-rw-r--r-- | keyserverimportdialog.cpp | 56 | ||||
-rw-r--r-- | keyserverimportdialog.h | 5 | ||||
-rw-r--r-- | verifykeydetailbox.cpp | 2 | ||||
-rw-r--r-- | verifynotification.cpp | 5 |
4 files changed, 35 insertions, 33 deletions
diff --git a/keyserverimportdialog.cpp b/keyserverimportdialog.cpp index 49ba6e7..edc642c 100644 --- a/keyserverimportdialog.cpp +++ b/keyserverimportdialog.cpp @@ -136,24 +136,26 @@ void KeyServerImportDialog::setMessage(const QString &text, bool error) void KeyServerImportDialog::search() { QUrl url = keyServerComboBox->currentText()+":11371/pks/lookup?search="+searchLineEdit->text()+"&op=index&options=mr"; - searchreply = qnam.get(QNetworkRequest(url)); - connect(searchreply, SIGNAL(finished()), + QNetworkReply* reply = qnam.get(QNetworkRequest(url)); + connect(reply, SIGNAL(finished()), this, SLOT(searchFinished())); } void KeyServerImportDialog::searchFinished() { + QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender()); + keysTable->clearContents(); keysTable->setRowCount(0); - QString firstLine = QString(searchreply->readLine(1024)); + QString firstLine = QString(reply->readLine(1024)); - QVariant redirectionTarget = searchreply->attribute(QNetworkRequest::RedirectionTargetAttribute); - if (searchreply->error()) { + QVariant redirectionTarget = reply->attribute(QNetworkRequest::RedirectionTargetAttribute); + if (reply->error()) { setMessage(tr("Couldn't contact keyserver!"),true); } if (firstLine.contains("Error")) { - QString text= QString(searchreply->readLine(1024)); + QString text= QString(reply->readLine(1024)); if (text.contains("Too many responses")) { setMessage(tr("Too many responses from keyserver!"),true); } @@ -167,12 +169,12 @@ void KeyServerImportDialog::searchFinished() int row = 0; char buff[1024]; QList <QTreeWidgetItem*> items; - while (searchreply->readLine(buff,sizeof(buff)) !=-1) { + while (reply->readLine(buff,sizeof(buff)) !=-1) { QStringList line= QString(buff).split(":"); //TODO: have a look at two following pub lines if (line[0] == "pub") { keysTable->setRowCount(row+1); - QStringList line2 = QString(searchreply->readLine()).split(":"); + QStringList line2 = QString(reply->readLine()).split(":"); if (line2.size() > 1) { QTableWidgetItem *uid = new QTableWidgetItem(line2[1]); keysTable->setItem(row, 0, uid); @@ -198,8 +200,8 @@ void KeyServerImportDialog::searchFinished() //keysTree->insertTopLevelItems(0,items); keysTable->resizeColumnsToContents(); } - searchreply->deleteLater(); - searchreply = 0; + reply->deleteLater(); + reply = 0; } void KeyServerImportDialog::import() @@ -210,33 +212,33 @@ void KeyServerImportDialog::import() updateComboBox(keyServerComboBox); QString keyid = keysTable->item(keysTable->currentRow(),2)->text(); - QUrl url = keyServerComboBox->currentText()+":11371/pks/lookup?op=get&search=0x"+keyid+"&options=mr"; - importreply = qnam.get(QNetworkRequest(url)); - connect(importreply, SIGNAL(finished()), - this, SLOT(importFinished())); + import(QStringList(keyid)); } } -void KeyServerImportDialog::import(QString keyId) +void KeyServerImportDialog::import(QStringList keyIds) { - QUrl url = "http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x"+keyId+"&options=mr"; - qDebug() << "keyid in import: " << keyId; - importreply = qnam.get(QNetworkRequest(url)); - connect(importreply, SIGNAL(finished()), - this, SLOT(importFinished())); + + foreach(QString keyId, keyIds) { + QUrl url = "http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x"+keyId+"&options=mr"; + QNetworkReply *reply = qnam.get(QNetworkRequest(url)); + connect(reply, SIGNAL(finished()), + this, SLOT(importFinished())); + } } void KeyServerImportDialog::importFinished() { - QByteArray *key = new QByteArray(); - key->append(importreply->readAll()); + QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender()); + + QByteArray key = reply->readAll(); - QVariant redirectionTarget = importreply->attribute(QNetworkRequest::RedirectionTargetAttribute); - if (importreply->error()) { + QVariant redirectionTarget = reply->attribute(QNetworkRequest::RedirectionTargetAttribute); + if (reply->error()) { setMessage(tr("Error while contacting keyserver!"),true); return; } - mCtx->importKey(*key); + mCtx->importKey(key.constData()); setMessage("Key imported",false); // Add keyserver to list in config-file, if it isn't contained @@ -247,6 +249,6 @@ void KeyServerImportDialog::importFinished() keyServerList.append(keyServerComboBox->currentText()); settings.setValue("keyserver/keyServerList", keyServerList); } - importreply->deleteLater(); - importreply = 0; + reply->deleteLater(); + reply = 0; } diff --git a/keyserverimportdialog.h b/keyserverimportdialog.h index c1e33ed..be9f681 100644 --- a/keyserverimportdialog.h +++ b/keyserverimportdialog.h @@ -51,7 +51,7 @@ class KeyServerImportDialog : public QDialog public: KeyServerImportDialog(GpgME::Context *ctx, QWidget *parent = 0); - void import(QString keyId); + void import(QStringList keyIds); private slots: void import(); @@ -80,7 +80,6 @@ private: QTableWidget *keysTable; QUrl url; QNetworkAccessManager qnam; - QNetworkReply *searchreply; - QNetworkReply *importreply; + }; #endif // __KEYSERVERIMPORTDIALOG_H__ diff --git a/verifykeydetailbox.cpp b/verifykeydetailbox.cpp index 8f82d9a..192c642 100644 --- a/verifykeydetailbox.cpp +++ b/verifykeydetailbox.cpp @@ -76,7 +76,7 @@ VerifyKeyDetailBox::VerifyKeyDetailBox(QWidget *parent, GpgME::Context* ctx, Key void VerifyKeyDetailBox::importFormKeyserver() { KeyServerImportDialog *importDialog =new KeyServerImportDialog(mCtx,this); - importDialog->import(fpr); + importDialog->import(QStringList(fpr)); } QString VerifyKeyDetailBox::beautifyFingerprint(QString fingerprint) diff --git a/verifynotification.cpp b/verifynotification.cpp index c0614bb..1c4b55d 100644 --- a/verifynotification.cpp +++ b/verifynotification.cpp @@ -55,9 +55,10 @@ VerifyNotification::VerifyNotification(QWidget *parent, GpgME::Context *ctx, Key void VerifyNotification::importFromKeyserver() { KeyServerImportDialog *importDialog =new KeyServerImportDialog(mCtx,this); - foreach (QString keyid, *keysNotInList) { + /*foreach (QString keyid, *keysNotInList) { importDialog->import(keyid); - } + }*/ + importDialog->import(*keysNotInList); } void VerifyNotification::setVerifyLabel(QString text, verify_label_status verifyLabelStatus) |