diff options
Diffstat (limited to 'keymgmt.cpp')
-rwxr-xr-x | keymgmt.cpp | 59 |
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(); } } |