aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2012-08-05 17:28:10 +0000
committerubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2012-08-05 17:28:10 +0000
commit3c73bad2d2e4bce05f0aff45d42fc9f2359ece4b (patch)
treed2f0b2d27f6c9681d1d9ead6dc401316c504fc94
parentgenerate key (diff)
downloadgpg4usb-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.kgpgport4
-rw-r--r--gpg4usb.pro4
-rwxr-xr-xkeymgmt.cpp59
-rwxr-xr-xkeymgmt.h6
-rw-r--r--keyserverimportdialog.cpp43
-rw-r--r--keyserverimportdialog.h2
-rw-r--r--kgpg/gpgproc.cpp4
-rw-r--r--kgpg/kprocess.cpp2
-rw-r--r--kgpg/transactions/kgpgtextorfiletransaction.cpp26
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();
}
}
diff --git a/keymgmt.h b/keymgmt.h
index cb58dbd..723fd9b 100755
--- a/keymgmt.h
+++ b/keymgmt.h
@@ -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);