diff options
author | ubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910> | 2012-08-05 17:28:10 +0000 |
---|---|---|
committer | ubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910> | 2012-08-05 17:28:10 +0000 |
commit | 3c73bad2d2e4bce05f0aff45d42fc9f2359ece4b (patch) | |
tree | d2f0b2d27f6c9681d1d9ead6dc401316c504fc94 | |
parent | generate key (diff) | |
download | gpg4usb-3c73bad2d2e4bce05f0aff45d42fc9f2359ece4b.tar.gz gpg4usb-3c73bad2d2e4bce05f0aff45d42fc9f2359ece4b.zip |
all import functionality should work now, added todo
git-svn-id: http://cpunk.de/svn/src/gpg4usb/branches/0.3.2-mac@941 34ebc366-c3a9-4b3c-9f84-69acf7962910
-rw-r--r-- | TODO.kgpgport | 4 | ||||
-rw-r--r-- | gpg4usb.pro | 4 | ||||
-rwxr-xr-x | keymgmt.cpp | 59 | ||||
-rwxr-xr-x | keymgmt.h | 6 | ||||
-rw-r--r-- | keyserverimportdialog.cpp | 43 | ||||
-rw-r--r-- | keyserverimportdialog.h | 2 | ||||
-rw-r--r-- | kgpg/gpgproc.cpp | 4 | ||||
-rw-r--r-- | kgpg/kprocess.cpp | 2 | ||||
-rw-r--r-- | kgpg/transactions/kgpgtextorfiletransaction.cpp | 26 |
9 files changed, 122 insertions, 28 deletions
diff --git a/TODO.kgpgport b/TODO.kgpgport new file mode 100644 index 0000000..2023571 --- /dev/null +++ b/TODO.kgpgport @@ -0,0 +1,4 @@ +TODO: +- central import, move code duplication from keymgmt, mainwindow and keyserverimport to central place, e.g. keyimportdetaildialog +-reactivate keyimportdetaildialog + diff --git a/gpg4usb.pro b/gpg4usb.pro index 78720fd..39c979a 100644 --- a/gpg4usb.pro +++ b/gpg4usb.pro @@ -13,9 +13,9 @@ INCLUDEPATH += . \ #DEFINES += GPG4USB_NON_PORTABLE -CONFIG += release static +#CONFIG += release static #CONFIG += release -#CONFIG += debug +CONFIG += debug QT += network # Input 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(); } } @@ -29,6 +29,7 @@ #include "keyserverimportdialog.h" #include "keygendialog.h" #include "kgpg/transactions/kgpgdelkey.h" +#include "kgpg/transactions/kgpgimport.h" #include <QtGui> QT_BEGIN_NAMESPACE @@ -45,7 +46,7 @@ class KeyMgmt : public QMainWindow Q_OBJECT public: - KeyMgmt(GpgME::GpgContext* ctx, QWidget *parent = 0); + KeyMgmt(GpgME::GpgContext *ctx, QWidget *parent); QAction *importKeyFromClipboardAct; QAction *importKeyFromFileAct; QAction *importKeyFromKeyServerAct; @@ -54,7 +55,8 @@ public slots: void importKeyFromFile(); void importKeyFromClipboard(); void importKeyFromKeyServer(); - void importKeys(QByteArray inBuffer); + void importKeys(QString text); + void slotImportDone(int result); void exportKeyToFile(); void exportKeyToClipboard(); void deleteSelectedKeys(); diff --git a/keyserverimportdialog.cpp b/keyserverimportdialog.cpp index 7118676..877e5d5 100644 --- a/keyserverimportdialog.cpp +++ b/keyserverimportdialog.cpp @@ -21,6 +21,7 @@ */ #include "keyserverimportdialog.h" +#include "keymgmt.h" KeyServerImportDialog::KeyServerImportDialog(GpgME::GpgContext *ctx, KeyList *keyList, QWidget *parent) : QDialog(parent) @@ -308,6 +309,44 @@ void KeyServerImportDialog::importFinished() void KeyServerImportDialog::importKeys(QByteArray inBuffer) { - GpgImportInformation result = mCtx->importKey(inBuffer); - new KeyImportDetailDialog(mCtx, result, this); + //GpgImportInformation result = mCtx->importKey(inBuffer); + KGpgImport *imp = new KGpgImport(this, QString(inBuffer)); + connect(imp, SIGNAL(done(int)), SLOT(slotImportDone(int))); + imp->start(); + +} + +void KeyServerImportDialog::slotImportDone(int result) +{ + 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(); } diff --git a/keyserverimportdialog.h b/keyserverimportdialog.h index 5f98d8f..801a7df 100644 --- a/keyserverimportdialog.h +++ b/keyserverimportdialog.h @@ -58,7 +58,7 @@ public: private slots: void import(); - + void slotImportDone(int result); void searchFinished(); void importFinished(); void search(); diff --git a/kgpg/gpgproc.cpp b/kgpg/gpgproc.cpp index 075fc91..10f2845 100644 --- a/kgpg/gpgproc.cpp +++ b/kgpg/gpgproc.cpp @@ -159,7 +159,7 @@ GPGProc::resetProcess(const QString &binary) GnupgBinary *bin = lastBinary(); QString executable; - qDebug() << "bin:" << binary; + //qDebug() << "bin:" << binary; if (binary.isEmpty()) { //executable = KGpgSettings::gpgBinaryPath(); @@ -180,7 +180,7 @@ GPGProc::resetProcess(const QString &binary) if (bin->binary() != executable) bin->setBinary(executable); - qDebug() << "ex: " << executable; + //qDebug() << "ex: " << executable; setProgram(executable, bin->standardArguments()); setOutputChannelMode(OnlyStdoutChannel); diff --git a/kgpg/kprocess.cpp b/kgpg/kprocess.cpp index ba71ebd..907c75c 100644 --- a/kgpg/kprocess.cpp +++ b/kgpg/kprocess.cpp @@ -341,7 +341,7 @@ QStringList KProcess::program() const void KProcess::start() { Q_D(KProcess); - //qDebug() << "prog: " << d->prog << " | args: " << d->args; + qDebug() << "prog: " << d->prog << " | args: " << d->args; QProcess::start(d->prog, d->args, d->openMode); } diff --git a/kgpg/transactions/kgpgtextorfiletransaction.cpp b/kgpg/transactions/kgpgtextorfiletransaction.cpp index 8b1482d..e2e74dd 100644 --- a/kgpg/transactions/kgpgtextorfiletransaction.cpp +++ b/kgpg/transactions/kgpgtextorfiletransaction.cpp @@ -17,6 +17,7 @@ //#include <KIO/NetAccess> //#include <KLocale> +#include <QDebug> KGpgTextOrFileTransaction::KGpgTextOrFileTransaction(QObject *parent, const QString &text, const bool allowChaining) : KGpgTransaction(parent, allowChaining), @@ -47,6 +48,10 @@ KGpgTextOrFileTransaction::setUrls(const QList<QUrl> &files) { m_text.clear(); m_inpfiles = files; + qDebug() << "files set:"; + foreach(QUrl file, m_inpfiles) { + qDebug() << file.toString(); + } } bool @@ -54,12 +59,16 @@ KGpgTextOrFileTransaction::preStart() { QStringList locfiles; - /* foreach (const QUrl &url, m_inpfiles) { + foreach (const QUrl &url, m_inpfiles) { // qt 4.8 ! todo mac + qDebug() << "what the loc:" << url.isLocalFile(); + if (url.isLocalFile()) { locfiles.append(url.toLocalFile()); - } else { - QString tmpfile; + qDebug() << "iffed"; + } else { + qDebug() << "not iffed"; + /* QString tmpfile; //TODO: QIODevice ...? if (KIO::NetAccess::download(url, tmpfile, 0)) { m_tempfiles.append(tmpfile); @@ -68,9 +77,14 @@ KGpgTextOrFileTransaction::preStart() cleanUrls(); setSuccess(TS_KIO_FAILED); return false; - } - } - }*/ + }*/ + } + } + + qDebug() << "prestart locf list:"; + foreach(QString l, locfiles) { + qDebug() << l; + } if (locfiles.isEmpty() && m_tempfiles.isEmpty() && m_text.isEmpty() && !hasInputTransaction()) { setSuccess(TS_MSG_SEQUENCE); |