aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornils <nils@34ebc366-c3a9-4b3c-9f84-69acf7962910>2011-10-17 20:59:26 +0000
committernils <nils@34ebc366-c3a9-4b3c-9f84-69acf7962910>2011-10-17 20:59:26 +0000
commit88e8f0dfc2a14458d4ede27b1c011d059a342f26 (patch)
treed33f20d9e060987c460fd6e28526ef04ae341801
parentupdated german translation (diff)
downloadgpg4usb-88e8f0dfc2a14458d4ede27b1c011d059a342f26.tar.gz
gpg4usb-88e8f0dfc2a14458d4ede27b1c011d059a342f26.zip
also export public key on private key export, but error handling still needs to be made
git-svn-id: http://cpunk.de/svn/src/gpg4usb/trunk@555 34ebc366-c3a9-4b3c-9f84-69acf7962910
-rw-r--r--TODO4
-rw-r--r--context.cpp8
-rw-r--r--gpgwin.cpp14
-rw-r--r--keyserverimportdialog.cpp31
4 files changed, 36 insertions, 21 deletions
diff --git a/TODO b/TODO
index 0615ec9..6167d9e 100644
--- a/TODO
+++ b/TODO
@@ -18,8 +18,8 @@ Release 0.3.1
- dont hide verifynotification [DONE]
- refresh verify after import of keys [DONE]
- show, if message is partially verified(how)? [DONE]
-- replace hardcoded urls in keyserverimport (setting default keyserverlist still missing, set default in importfromkeyserverdialog)
-- export public key on export of private key too
+- replace hardcoded urls in keyserverimport (setting default keyserverlist still missing, set default in importfromkeyserverdialog) [DONE]
+- export public key on export of private key too [DONE]
- beautify icons for verify and sign
- set gpgme error language to chosen language (context.cpp:49)
- stealth mode for windows (http://www.portablefreeware.com/forums/viewtopic.php?f=4&t=3713)
diff --git a/context.cpp b/context.cpp
index 812c529..e3ee119 100644
--- a/context.cpp
+++ b/context.cpp
@@ -472,10 +472,18 @@ int Context::checkErr(gpgme_error_t err) const
void Context::exportSecretKey(QString uid, QByteArray *outBuffer)
{
+ // export private key to outBuffer
QStringList arguments;
arguments << "--armor" << "--export-secret-key" << uid;
QByteArray *err = new QByteArray();
executeGpgCommand(arguments, outBuffer, err);
+
+ // append public key to outBuffer
+ QByteArray *pubKey = new QByteArray();
+ QStringList keyList;
+ keyList.append(uid);
+ exportKeys(&keyList,pubKey);
+ outBuffer->append(*pubKey);
}
/** return type should be gpgme_error_t*/
diff --git a/gpgwin.cpp b/gpgwin.cpp
index 95a73a4..d7bfd37 100644
--- a/gpgwin.cpp
+++ b/gpgwin.cpp
@@ -93,6 +93,20 @@ void GpgWin::restoreSettings()
QSize iconSize = settings.value("toolbar/iconsize", QSize(32, 32)).toSize();
this->setIconSize(iconSize);
+ // set list of keyserver if not defined
+ QStringList *keyServerDefaultList;
+ keyServerDefaultList = new QStringList("http://gpg-keyserver.de");
+ keyServerDefaultList->append("http://pgp.mit.edu");
+ keyServerDefaultList->append("http://pool.sks-keyservers.net");
+ keyServerDefaultList->append("http://subkeys.pgp.net");
+
+ QStringList keyServerList = settings.value("keyserver/keyServerList", *keyServerDefaultList).toStringList();
+ settings.setValue("keyserver/keyServerList", keyServerList);
+
+ // set default keyserver, if it's not set
+ QString defaultKeyServer = settings.value("keyserver/defaultKeyServer", QString("http://pgp.mit.edu")).toString();
+ settings.setValue("keyserver/defaultKeyServer", defaultKeyServer);
+
// Iconstyle
Qt::ToolButtonStyle buttonStyle = static_cast<Qt::ToolButtonStyle>(settings.value("toolbar/iconstyle", Qt::ToolButtonTextUnderIcon).toUInt());
this->setToolButtonStyle(buttonStyle);
diff --git a/keyserverimportdialog.cpp b/keyserverimportdialog.cpp
index af416e0..61a16cd 100644
--- a/keyserverimportdialog.cpp
+++ b/keyserverimportdialog.cpp
@@ -57,7 +57,6 @@ KeyServerImportDialog::KeyServerImportDialog(GpgME::Context *ctx, QWidget *paren
buttonsLayout->addWidget(importButton);
buttonsLayout->addWidget(closeButton);
- //
QGridLayout *mainLayout = new QGridLayout;
mainLayout->addWidget(searchLabel, 1, 0);
mainLayout->addWidget(searchLineEdit, 1, 1);
@@ -67,11 +66,11 @@ KeyServerImportDialog::KeyServerImportDialog(GpgME::Context *ctx, QWidget *paren
mainLayout->addWidget(keysTable, 3, 0, 1, 3);
mainLayout->addLayout(messageLayout, 4, 0, 1, 3);
mainLayout->addLayout(buttonsLayout, 5, 0, 1, 3);
- setLayout(mainLayout);
- setWindowTitle(tr("Import Keys from Keyserver"));
- resize(700, 300);
- setModal(true);
+ this->setLayout(mainLayout);
+ this->setWindowTitle(tr("Import Keys from Keyserver"));
+ this->resize(700, 300);
+ this->setModal(true);
}
QPushButton *KeyServerImportDialog::createButton(const QString &text, const char *member)
@@ -84,19 +83,17 @@ QPushButton *KeyServerImportDialog::createButton(const QString &text, const char
QComboBox *KeyServerImportDialog::createComboBox()
{
QComboBox *comboBox = new QComboBox;
- comboBox->setEditable(true);
comboBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
// Read keylist from ini-file and fill it into combobox
QSettings settings;
comboBox->addItems(settings.value("keyserver/keyServerList").toStringList());
- return comboBox;
-}
-static void updateComboBox(QComboBox *comboBox)
-{
- if (comboBox->findText(comboBox->currentText()) == -1)
- comboBox->addItem(comboBox->currentText());
+ // set default keyserver in combobox
+ QString keyserver = settings.value("keyserver/defaultKeyServer").toString();
+ comboBox->setCurrentIndex(comboBox->findText(keyserver));
+
+ return comboBox;
}
void KeyServerImportDialog::createKeysTable()
@@ -207,13 +204,8 @@ void KeyServerImportDialog::searchFinished()
void KeyServerImportDialog::import()
{
if ( keysTable->currentRow() > -1 ) {
-
- //TODO: just updateCombobox, when import is successful
- updateComboBox(keyServerComboBox);
QString keyid = keysTable->item(keysTable->currentRow(),2)->text();
- // TODO: use string from combobox
- //QUrl url = keyServerComboBox->currentText()+":11371/pks/lookup?op=get&search=0x"+keyid+"&options=mr";
QUrl url = keyServerComboBox->currentText();
import(QStringList(keyid), url);
}
@@ -221,8 +213,9 @@ void KeyServerImportDialog::import()
void KeyServerImportDialog::import(QStringList keyIds)
{
- // TODO: read default keyserver from settings
- QUrl url("http://pgp.mit.edu");
+ QSettings settings;
+ QString keyserver=settings.value("keyserver/defaultKeyServer").toString();
+ QUrl url(keyserver);
import(keyIds, url);
}