aboutsummaryrefslogtreecommitdiffstats
path: root/keymgmt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'keymgmt.cpp')
-rwxr-xr-xkeymgmt.cpp59
1 files changed, 47 insertions, 12 deletions
diff --git a/keymgmt.cpp b/keymgmt.cpp
index 30dc0be..484126a 100755
--- a/keymgmt.cpp
+++ b/keymgmt.cpp
@@ -155,26 +155,61 @@ void KeyMgmt::createToolBars()
}
-void KeyMgmt::importKeys(QByteArray inBuffer)
+
+// import for text based keys
+void KeyMgmt::importKeys(QString text)
+{
+ KGpgImport *imp = new KGpgImport(this, text);
+ connect(imp, SIGNAL(done(int)), SLOT(slotImportDone(int)));
+ imp->start();
+}
+
+void KeyMgmt::slotImportDone(int result)
{
- GpgImportInformation result = mCtx->importKey(inBuffer);
- new KeyImportDetailDialog(mCtx, result, this);
+ KGpgImport *import = qobject_cast<KGpgImport *>(sender());
+
+ Q_ASSERT(import != NULL);
+ const QStringList rawmsgs(import->getMessages());
+
+ if (result != 0) {
+ /*KMessageBox::detailedSorry(this, i18n("Key importing failed. Please see the detailed log for more information."),
+ rawmsgs.join( QLatin1String( "\n")) , i18n("Key Import" ));*/
+ qDebug() << "Key importing failed. Please see the detailed log for more information." << rawmsgs.join( QLatin1String( "\n"));
+ }
+ QStringList keys(import->getImportedIds(0x1f));
+ const bool needsRefresh = !keys.isEmpty();
+ keys << import->getImportedIds(0);
+/*
+ if (!keys.isEmpty()) {
+ const QString msg(import->getImportMessage());
+ const QStringList keynames(import->getImportedKeys());
+
+ new KgpgDetailedInfo(this, msg, rawmsgs.join( QLatin1String( "\n") ), keynames, i18n("Key Import" ));
+ if (needsRefresh)
+ imodel->refreshKeys(keys);
+ else
+ changeMessage(i18nc("Application ready for user input", "Ready"));
+ } else{
+ changeMessage(i18nc("Application ready for user input", "Ready"));
+ }
+*/
+ //changeMessage(tr("Application ready for user input", "Ready"));
+ mCtx->emitKeyDBChanged();
+ import->deleteLater();
}
void KeyMgmt::importKeyFromFile()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Open Key"), "", tr("Key Files") + " (*.asc *.txt);;"+tr("Keyring files")+" (*.gpg);;All Files (*)");
if (! fileName.isNull()) {
- QFile file;
- file.setFileName(fileName);
- if (!file.open(QIODevice::ReadOnly)) {
- qDebug() << tr("Couldn't Open File: ") + fileName;
- return;
- }
- QByteArray inBuffer = file.readAll();
- importKeys(inBuffer);
- file.close();
+
+ QList<QUrl> urlList;
+ urlList << QUrl::fromLocalFile(fileName);
+
+ KGpgImport *imp = new KGpgImport(this, urlList);
+ connect(imp, SIGNAL(done(int)), SLOT(slotImportDone(int)));
+ imp->start();
}
}