diff options
Diffstat (limited to '')
-rw-r--r-- | src/MainWindow.cpp | 15 | ||||
-rw-r--r-- | src/ui/KeyImportDetailDialog.cpp | 16 | ||||
-rwxr-xr-x | src/ui/KeyMgmt.cpp | 12 | ||||
-rw-r--r-- | src/ui/KeyServerImportDialog.cpp | 209 | ||||
-rw-r--r-- | src/ui/widgets/InfoBoardWidget.cpp | 2 | ||||
-rw-r--r-- | src/ui/widgets/KeyList.cpp | 94 | ||||
-rw-r--r-- | src/ui/widgets/VerifyKeyDetailBox.cpp | 2 |
7 files changed, 254 insertions, 96 deletions
diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index e2e610a2..42b04c76 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -133,7 +133,7 @@ void MainWindow::restoreSettings() { settings.setValue("keyserver/keyServerList", keyServerList); // set default keyserver, if it's not set - QString defaultKeyServer = settings.value("keyserver/defaultKeyServer", QString("http://keys.gnupg.net")).toString(); + QString defaultKeyServer = settings.value("keyserver/defaultKeyServer", QString("https://keyserver.ubuntu.com")).toString(); settings.setValue("keyserver/defaultKeyServer", defaultKeyServer); // Iconstyle @@ -376,16 +376,16 @@ void MainWindow::createActions() { connect(copyMailAddressToClipboardAct, SIGNAL(triggered()), this, SLOT(slotCopyMailAddressToClipboard())); // TODO: find central place for shared actions, to avoid code-duplication with keymgmt.cpp - showKeyDetailsAct = new QAction(tr("Show Keydetails"), this); + showKeyDetailsAct = new QAction(tr("Show Key Details"), this); showKeyDetailsAct->setToolTip(tr("Show Details for this Key")); connect(showKeyDetailsAct, SIGNAL(triggered()), this, SLOT(slotShowKeyDetails())); - refreshKeysFromKeyserverAct = new QAction(tr("Refresh key from keyserver"), this); - refreshKeysFromKeyserverAct->setToolTip(tr("Refresh key from default keyserver")); + refreshKeysFromKeyserverAct = new QAction(tr("Refresh Key From Key Server"), this); + refreshKeysFromKeyserverAct->setToolTip(tr("Refresh key from default key server")); connect(refreshKeysFromKeyserverAct, SIGNAL(triggered()), this, SLOT(refreshKeysFromKeyserver())); - uploadKeyToServerAct = new QAction(tr("Upload Key(s) To Server"), this); - uploadKeyToServerAct->setToolTip(tr("Upload The Selected Keys To Server")); + uploadKeyToServerAct = new QAction(tr("Upload Public Key(s) To Server"), this); + uploadKeyToServerAct->setToolTip(tr("Upload The Selected Public Keys To Server")); connect(uploadKeyToServerAct, SIGNAL(triggered()), this, SLOT(uploadKeyToServer())); /* Key-Shortcuts for Tab-Switchung-Action */ @@ -922,7 +922,8 @@ void MainWindow::refreshKeysFromKeyserver() { return; } - auto *ksid = new KeyServerImportDialog(mCtx, mKeyList, this); + auto *ksid = new KeyServerImportDialog(mCtx, mKeyList, true, this); + ksid->show(); ksid->slotImport(*mKeyList->getSelected()); } diff --git a/src/ui/KeyImportDetailDialog.cpp b/src/ui/KeyImportDetailDialog.cpp index 4c60ad0f..3d8d1cdc 100644 --- a/src/ui/KeyImportDetailDialog.cpp +++ b/src/ui/KeyImportDetailDialog.cpp @@ -24,13 +24,17 @@ #include <ui/KeyImportDetailDialog.h> -KeyImportDetailDialog::KeyImportDetailDialog(GpgME::GpgContext *ctx, GpgImportInformation result, QWidget *parent) +KeyImportDetailDialog::KeyImportDetailDialog(GpgME::GpgContext *ctx, GpgImportInformation result, bool automatic, + QWidget *parent) : QDialog(parent) { mCtx = ctx; mResult = std::move(result); // If no key for import found, just show a message if (mResult.considered == 0) { - QMessageBox::information(nullptr, tr("Key import details"), tr("No keys found to import")); + if(automatic) + QMessageBox::information(nullptr, tr("Key Update Details"), tr("No keys found")); + else + QMessageBox::information(nullptr, tr("Key Import Details"), tr("No keys found to import")); return; } @@ -46,7 +50,11 @@ KeyImportDetailDialog::KeyImportDetailDialog(GpgME::GpgContext *ctx, GpgImportIn mvbox->addWidget(buttonBox); this->setLayout(mvbox); - this->setWindowTitle(tr("Key import details")); + if(automatic) + this->setWindowTitle(tr("Key Update Details")); + else + this->setWindowTitle(tr("Key Import Details")); + this->resize(QSize(600, 300)); this->setModal(true); this->exec(); @@ -54,7 +62,7 @@ KeyImportDetailDialog::KeyImportDetailDialog(GpgME::GpgContext *ctx, GpgImportIn void KeyImportDetailDialog::createGeneralInfoBox() { // GridBox for general import information - generalInfoBox = new QGroupBox(tr("Genral key import info")); + generalInfoBox = new QGroupBox(tr("General key info")); auto *generalInfoBoxLayout = new QGridLayout(generalInfoBox); generalInfoBoxLayout->addWidget(new QLabel(tr("Considered:")), 1, 0); diff --git a/src/ui/KeyMgmt.cpp b/src/ui/KeyMgmt.cpp index 326c20b2..6f9c64a2 100755 --- a/src/ui/KeyMgmt.cpp +++ b/src/ui/KeyMgmt.cpp @@ -142,7 +142,7 @@ void KeyMgmt::createActions() deleteCheckedKeysAct->setIcon(QIcon(":button_delete.png")); connect(deleteCheckedKeysAct, SIGNAL(triggered()), this, SLOT(slotDeleteCheckedKeys())); - showKeyDetailsAct = new QAction(tr("Show Keydetails"), this); + showKeyDetailsAct = new QAction(tr("Show Key Details"), this); showKeyDetailsAct->setToolTip(tr("Show Details for this Key")); connect(showKeyDetailsAct, SIGNAL(triggered()), this, SLOT(slotShowKeyDetails())); } @@ -204,7 +204,7 @@ void KeyMgmt::createToolBars() void KeyMgmt::slotImportKeys(QByteArray inBuffer) { GpgImportInformation result = mCtx->importKey(std::move(inBuffer)); - new KeyImportDetailDialog(mCtx, result, this); + new KeyImportDetailDialog(mCtx, result, false, this); } @@ -226,7 +226,7 @@ void KeyMgmt::slotImportKeyFromFile() void KeyMgmt::slotImportKeyFromKeyServer() { - importDialog = new KeyServerImportDialog(mCtx, mKeyList, this); + importDialog = new KeyServerImportDialog(mCtx, mKeyList, false, this); importDialog->show(); } @@ -328,12 +328,6 @@ void KeyMgmt::slotGenerateKeyDialog() void KeyMgmt::closeEvent(QCloseEvent *event) { - QSettings settings; - //settings.setValue("geometry", saveGeometry()); - settings.setValue("keymgmt/windowState", saveState()); - settings.setValue("keymgmt/pos", pos()); - settings.setValue("keymgmt/size", size()); - QMainWindow::closeEvent(event); } diff --git a/src/ui/KeyServerImportDialog.cpp b/src/ui/KeyServerImportDialog.cpp index 88ec1c11..00ff4165 100644 --- a/src/ui/KeyServerImportDialog.cpp +++ b/src/ui/KeyServerImportDialog.cpp @@ -26,52 +26,101 @@ #include <utility> -KeyServerImportDialog::KeyServerImportDialog(GpgME::GpgContext *ctx, KeyList *keyList, QWidget *parent) +KeyServerImportDialog::KeyServerImportDialog(GpgME::GpgContext *ctx, KeyList *keyList, bool automatic, + QWidget *parent) : QDialog(parent), appPath(qApp->applicationDirPath()), - settings(appPath + "/conf/gpgfrontend.ini", QSettings::IniFormat), mCtx(ctx), mKeyList(keyList) { + settings(appPath + "/conf/gpgfrontend.ini", QSettings::IniFormat), + mCtx(ctx), mKeyList(keyList), mAutomatic(automatic) { + + if(automatic) { + setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint); + } + // Buttons closeButton = createButton(tr("&Close"), SLOT(close())); - importButton = createButton(tr("&Import"), SLOT(slotImport())); + importButton = createButton(tr("&Import ALL"), SLOT(slotImport())); searchButton = createButton(tr("&Search"), SLOT(slotSearch())); // Line edit for search string - searchLabel = new QLabel(tr("Search string:")); + searchLabel = new QLabel(tr("Search String:")); searchLineEdit = new QLineEdit(); // combobox for keyserverlist - keyServerLabel = new QLabel(tr("Keyserver:")); + keyServerLabel = new QLabel(tr("Key Server:")); keyServerComboBox = createComboBox(); // table containing the keys found createKeysTable(); message = new QLabel; + message->setFixedHeight(24); icon = new QLabel; + icon->setFixedHeight(24); + + // Network Waiting + waitingBar = new QProgressBar(); + waitingBar->setVisible(false); + waitingBar->setRange(0, 0); + waitingBar->setFixedHeight(24); + waitingBar->setFixedWidth(260); // Layout for messagebox auto *messageLayout = new QHBoxLayout; messageLayout->addWidget(icon); messageLayout->addWidget(message); + messageLayout->addWidget(waitingBar); messageLayout->addStretch(); // Layout for import and close button auto *buttonsLayout = new QHBoxLayout; buttonsLayout->addStretch(); - buttonsLayout->addWidget(importButton); + if(!automatic) + buttonsLayout->addWidget(importButton); buttonsLayout->addWidget(closeButton); auto *mainLayout = new QGridLayout; - mainLayout->addWidget(searchLabel, 1, 0); - mainLayout->addWidget(searchLineEdit, 1, 1); - mainLayout->addWidget(searchButton, 1, 2); - mainLayout->addWidget(keyServerLabel, 2, 0); - mainLayout->addWidget(keyServerComboBox, 2, 1); - mainLayout->addWidget(keysTable, 3, 0, 1, 3); - mainLayout->addLayout(messageLayout, 4, 0, 1, 3); - mainLayout->addLayout(buttonsLayout, 5, 0, 1, 3); + + // 自动化调用界面布局 + if(automatic) { + mainLayout->addLayout(messageLayout, 0, 0, 1, 3); + mainLayout->addLayout(buttonsLayout, 1, 0, 1, 3); + } else { + mainLayout->addWidget(searchLabel, 1, 0); + mainLayout->addWidget(searchLineEdit, 1, 1); + mainLayout->addWidget(searchButton, 1, 2); + mainLayout->addWidget(keyServerLabel, 2, 0); + mainLayout->addWidget(keyServerComboBox, 2, 1); + mainLayout->addWidget(keysTable, 3, 0, 1, 3); + mainLayout->addLayout(messageLayout, 4, 0, 1, 3); + mainLayout->addLayout(buttonsLayout, 6, 0, 1, 3); + } this->setLayout(mainLayout); this->setWindowTitle(tr("Import Keys from Keyserver")); - this->resize(700, 300); + + if(automatic) { + this->setMinimumHeight(80); + } else { + // Restore window size & location + if (this->settings.value("ImportKeyFromServer/setWindowSize").toBool()) { + QPoint pos = settings.value("ImportKeyFromServer/pos", QPoint(150, 150)).toPoint(); + QSize size = settings.value("ImportKeyFromServer/size", QSize(500, 300)).toSize(); + qDebug() << "Settings size" << size << "pos" << pos; + this->setMinimumSize(size); + this->move(pos); + } else { + qDebug() << "Use default min windows size and pos"; + QPoint defaultPoint(150, 150); + QSize defaultMinSize(500, 300); + this->setMinimumSize(defaultMinSize); + this->move(defaultPoint); + this->settings.setValue("ImportKeyFromServer/pos", defaultPoint); + this->settings.setValue("ImportKeyFromServer/size", defaultMinSize); + this->settings.setValue("ImportKeyFromServer/setWindowSize", true); + } + } + + + this->setModal(true); } @@ -119,23 +168,35 @@ void KeyServerImportDialog::createKeysTable() { void KeyServerImportDialog::setMessage(const QString &text, bool error) { message->setText(text); if (error) { - QIcon undoicon = QIcon::fromTheme("dialog-error"); - QPixmap pixmap = undoicon.pixmap(QSize(32, 32), QIcon::Normal, QIcon::On); - icon->setPixmap(pixmap); + icon->setPixmap(QPixmap(":error.png").scaled(QSize(24, 24), Qt::KeepAspectRatio)); } else { - QIcon undoicon = QIcon::fromTheme("dialog-information"); - QPixmap pixmap = undoicon.pixmap(QSize(32, 32), QIcon::Normal, QIcon::On); - icon->setPixmap(pixmap); + icon->setPixmap(QPixmap(":info.png").scaled(QSize(24, 24), Qt::KeepAspectRatio)); } } void KeyServerImportDialog::slotSearch() { + + if (searchLineEdit->text().isEmpty()) { + setMessage(tr("<h4>Text is empty.</h4>"), false); + return; + } + QUrl urlFromRemote = keyServerComboBox->currentText() + "/pks/lookup?search=" + searchLineEdit->text() + "&op=index&options=mr"; qnam = new QNetworkAccessManager(this); QNetworkReply *reply = qnam->get(QNetworkRequest(urlFromRemote)); + connect(reply, SIGNAL(finished()), this, SLOT(slotSearchFinished())); + + setLoading(true); + + while (reply->isRunning()) { + QApplication::processEvents(); + } + + setLoading(false); + } void KeyServerImportDialog::slotSearchFinished() { @@ -147,29 +208,34 @@ void KeyServerImportDialog::slotSearchFinished() { QVariant redirectionTarget = reply->attribute(QNetworkRequest::RedirectionTargetAttribute); if (reply->error()) { - setMessage(tr("Couldn't contact keyserver!"), true); - //setMessage(reply->error()); + setMessage(tr("<h4>Couldn't contact keyserver!</h4>"), true); qDebug() << reply->error(); + return; } if (firstLine.contains("Error")) { QString text = QString(reply->readLine(1024)); if (text.contains("Too many responses")) { - setMessage(tr("Too many responses from keyserver!"), true); + setMessage(tr("<h4>CToo many responses from keyserver!</h4>"), true); + return; } else if (text.contains("No keys found")) { // if string looks like hex string, search again with 0x prepended QRegExp rx("[0-9A-Fa-f]*"); QString query = searchLineEdit->text(); if (rx.exactMatch(query)) { - setMessage(tr("No keys found, input may be kexId, retrying search with 0x."), true); + setMessage(tr("<h4>No keys found, input may be kexId, retrying search with 0x.</h4>"), true); searchLineEdit->setText(query.prepend("0x")); this->slotSearch(); + return; } else { - setMessage(tr("No keys found containing the search string!"), true); + setMessage(tr("<h4>No keys found containing the search string!</h4>"), true); + return; } } else if (text.contains("Insufficiently specific words")) { - setMessage(tr("Insufficiently specific search string!"), true); + setMessage(tr("<h4>Insufficiently specific search string!</h4>"), true); + return; } else { setMessage(text, true); + return; } } else { int row = 0; @@ -236,7 +302,7 @@ void KeyServerImportDialog::slotSearchFinished() { } } } - setMessage(tr("%1 keys found. Doubleclick a key to import it.").arg(row), false); + setMessage(tr("<h4>%1 keys found. Double click a key to import it.</h4>").arg(row), false); } keysTable->resizeColumnsToContents(); } @@ -250,23 +316,34 @@ void KeyServerImportDialog::slotImport() { } } -void KeyServerImportDialog::slotImport(QStringList keyIds) { - QString keyserver = settings.value("keyserver/defaultKeyServer").toString();; - slotImport(std::move(keyIds), QUrl(keyserver)); +void KeyServerImportDialog::slotImport(const QStringList& keyIds) { + QString keyserver = settings.value("keyserver/defaultKeyServer").toString(); + qDebug() << "Select Key Server" << keyserver; + slotImport(keyIds, QUrl(keyserver)); } -void KeyServerImportDialog::slotImport(QStringList keyIds, const QUrl &keyServerUrl) { - foreach(QString keyId, keyIds) { - QUrl reqUrl( - keyServerUrl.scheme() + "://" + keyServerUrl.host() + ":11371/pks/lookup?op=get&search=0x" + keyId + - "&options=mr"); - //qDebug() << "req to " << reqUrl; - qnam = new QNetworkAccessManager(this); - QNetworkReply *reply = qnam->get(QNetworkRequest(reqUrl)); - connect(reply, SIGNAL(finished()), - this, SLOT(slotImportFinished())); +void KeyServerImportDialog::slotImport(const QStringList& keyIds, const QUrl &keyServerUrl) { + for (const auto &keyId : keyIds) { + QUrl reqUrl( + keyServerUrl.scheme() + "://" + keyServerUrl.host() + "/pks/lookup?op=get&search=0x" + keyId + + "&options=mr"); + qDebug() << "slotImport reqUrl" << reqUrl; + qnam = new QNetworkAccessManager(this); + + QNetworkReply *reply = qnam->get(QNetworkRequest(reqUrl)); + + connect(reply, SIGNAL(finished()), + this, SLOT(slotImportFinished())); + + setLoading(true); + + while(reply->isRunning()) { + QApplication::processEvents(); } + + setLoading(false); + } } void KeyServerImportDialog::slotImportFinished() { @@ -275,12 +352,25 @@ void KeyServerImportDialog::slotImportFinished() { QByteArray key = reply->readAll(); QVariant redirectionTarget = reply->attribute(QNetworkRequest::RedirectionTargetAttribute); - if (reply->error()) { - setMessage(tr("Error while contacting keyserver!"), true); + + auto error = reply->error(); + if (error != QNetworkReply::NoError) { + qDebug() << "Error From Reply" << reply->errorString(); + switch (error) { + case QNetworkReply::ContentNotFoundError : + setMessage(tr("Key Not Found"), true); + break; + case QNetworkReply::TimeoutError : + setMessage(tr("Timeout"), true); + break; + case QNetworkReply::HostNotFoundError : + setMessage(tr("Key Server Not Found"), true); + break; + default: + setMessage(tr("Connection Error"), true); + } return; } - this->importKeys(key.constData()); - setMessage(tr("Key imported"), false); // Add keyserver to list in config-file, if it isn't contained QStringList keyServerList = settings.value("keyserver/keyServerList").toStringList(); @@ -289,10 +379,35 @@ void KeyServerImportDialog::slotImportFinished() { settings.setValue("keyserver/keyServerList", keyServerList); } reply->deleteLater(); - reply = nullptr; + + this->importKeys(key.constData()); + if(mAutomatic) { + setMessage(tr("<h4>Key Updated</h4>"), false); + } else { + setMessage(tr("<h4>Key Imported</h4>"), false); + } + + } void KeyServerImportDialog::importKeys(QByteArray inBuffer) { GpgImportInformation result = mCtx->importKey(std::move(inBuffer)); - new KeyImportDetailDialog(mCtx, result, this); + if(mAutomatic) { + new KeyImportDetailDialog(mCtx, result, false, nullptr); + this->accept(); + } else { + new KeyImportDetailDialog(mCtx, result, false, this); + } +} + +void KeyServerImportDialog::setLoading(bool status) { + if (status) { + waitingBar->setVisible(true); + icon->setVisible(false); + message->setVisible(false); + } else { + waitingBar->setVisible(false); + icon->setVisible(true); + message->setVisible(true); + } } diff --git a/src/ui/widgets/InfoBoardWidget.cpp b/src/ui/widgets/InfoBoardWidget.cpp index bfd0c643..76f82505 100644 --- a/src/ui/widgets/InfoBoardWidget.cpp +++ b/src/ui/widgets/InfoBoardWidget.cpp @@ -60,7 +60,7 @@ InfoBoardWidget::InfoBoardWidget(QWidget *parent, GpgME::GpgContext *ctx, KeyLis } void InfoBoardWidget::slotImportFromKeyserver() { - auto *importDialog = new KeyServerImportDialog(mCtx, mKeyList, this); + auto *importDialog = new KeyServerImportDialog(mCtx, mKeyList, false, this); importDialog->slotImport(*keysNotInList); } diff --git a/src/ui/widgets/KeyList.cpp b/src/ui/widgets/KeyList.cpp index dccf1a56..4f0fe1c3 100644 --- a/src/ui/widgets/KeyList.cpp +++ b/src/ui/widgets/KeyList.cpp @@ -30,7 +30,8 @@ KeyList::KeyList(GpgME::GpgContext *ctx, KeyListRow::KeyType selectType, KeyListColumn::InfoType infoType, QWidget *parent) - : QWidget(parent), mSelectType(selectType), mInfoType(infoType) + : QWidget(parent), mSelectType(selectType), mInfoType(infoType), appPath(qApp->applicationDirPath()), + settings(appPath + "/conf/gpgfrontend.ini", QSettings::IniFormat) { mCtx = ctx; @@ -380,55 +381,94 @@ void KeyList::dragEnterEvent(QDragEnterEvent *event) void KeyList::importKeys(QByteArray inBuffer) { GpgImportInformation result = mCtx->importKey(std::move(inBuffer)); - new KeyImportDetailDialog(mCtx, result, this); + new KeyImportDetailDialog(mCtx, result, false, this); } -void KeyList::uploadKeyToServer(QByteArray *keys) -{ - QUrl reqUrl("http://localhost:11371/pks/add"); +void KeyList::uploadKeyToServer(QByteArray *keys) { + + // set default keyserver + QString keyserver = settings.value("keyserver/defaultKeyServer").toString(); + + QUrl reqUrl(keyserver + "/pks/add"); qnam = new QNetworkAccessManager(this); - QUrl params; - keys->replace("\n", "%0D%0A") + // Building Post Data + QByteArray postData; + + keys->replace("\n", "%0A") + .replace("\r", "%0D") .replace("(", "%28") .replace(")", "%29") .replace("/", "%2F") .replace(":", "%3A") - .replace("+","%2B") + .replace("+", "%2B") + .replace('=', "%3D") .replace(' ', '+'); - QUrlQuery q; + QNetworkRequest request(reqUrl); + request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); - q.addQueryItem("keytext", *keys); + postData.append("keytext").append("=").append(*keys); - params = q.query(QUrl::FullyEncoded).toUtf8(); + // Send Post Data + QNetworkReply *reply = qnam->post(request, postData); + connect(reply, SIGNAL(finished()), + this, SLOT(uploadFinished())); - QNetworkRequest req(reqUrl); - req.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded"); + // A Waiting Dialog + auto *dialog = new QDialog(this, Qt::CustomizeWindowHint | Qt::WindowTitleHint); + dialog->setModal(true); + dialog->setWindowTitle(tr("Uploading Public Key...")); - QNetworkReply *reply = qnam->post(req,params.toEncoded()); - connect(reply, SIGNAL(finished()), - this, SLOT(uploadFinished())); - qDebug() << "REQURL: " << reqUrl; - qDebug() << "PARAMS.ENCODED: " << params.toEncoded(); -} + auto *pb = new QProgressBar(); + pb->setRange(0, 0); + pb->setFixedSize(260, 24); -void KeyList::uploadFinished() -{ + auto *layout = new QVBoxLayout(dialog); + layout->addWidget(pb); + dialog->setLayout(layout); + + dialog->show(); + + // Keep Waiting + while(reply->isRunning()) { + QApplication::processEvents(); + } + + // Done + dialog->hide(); + dialog->close(); +} +void KeyList::uploadFinished() { auto *reply = qobject_cast<QNetworkReply *>(sender()); QByteArray response = reply->readAll(); - qDebug() << "RESPNOSE: " << response.data(); - //reply->readAll(); - qDebug() << "ERROR: " << reply->error(); - if (reply->error()) { - qDebug() << "Error while contacting keyserver!"; + qDebug() << "Response: " << response.data(); + + auto error = reply->error(); + if (error != QNetworkReply::NoError) { + qDebug() << "Error From Reply" << reply->errorString(); + QString message; + switch (error) { + case QNetworkReply::ContentNotFoundError : + message = tr("Key Not Found"); + break; + case QNetworkReply::TimeoutError : + message = tr("Timeout"); + break; + case QNetworkReply::HostNotFoundError : + message = tr("Key Server Not Found"); + break; + default: + message = tr("Connection Error"); + } + QMessageBox::critical(nullptr, "Upload Failed", message); return; } else { + QMessageBox::information(nullptr, "Upload Success", "Upload Public Key Successfully"); qDebug() << "Success while contacting keyserver!"; } - reply->deleteLater(); } diff --git a/src/ui/widgets/VerifyKeyDetailBox.cpp b/src/ui/widgets/VerifyKeyDetailBox.cpp index 3091d672..3a0695b8 100644 --- a/src/ui/widgets/VerifyKeyDetailBox.cpp +++ b/src/ui/widgets/VerifyKeyDetailBox.cpp @@ -141,7 +141,7 @@ VerifyKeyDetailBox::VerifyKeyDetailBox(QWidget *parent, GpgME::GpgContext *ctx, } void VerifyKeyDetailBox::slotImportFormKeyserver() { - auto *importDialog = new KeyServerImportDialog(mCtx, mKeyList, this); + auto *importDialog = new KeyServerImportDialog(mCtx, mKeyList, false, this); importDialog->slotImport(QStringList(fpr)); } |