diff --git a/NEWS b/NEWS index c0ae27fa..0fca77aa 100644 --- a/NEWS +++ b/NEWS @@ -11,6 +11,7 @@ Noteworthy changes in version 1.8.1 (unreleased) cpp: Context::startAddUid(const Key&, const char*) NEW. cpp: Key::UserID::revoke() NEW. cpp: Key::addUid() NEW. + qt: CryptoConfig::stringValueList() NEW. Noteworthy changes in version 1.8.0 (2016-11-16) diff --git a/lang/qt/src/Makefile.am b/lang/qt/src/Makefile.am index 55af1cfb..c81461ee 100644 --- a/lang/qt/src/Makefile.am +++ b/lang/qt/src/Makefile.am @@ -37,7 +37,7 @@ qgpgme_sources = \ qgpgmekeyformailboxjob.cpp gpgme_backend_debug.cpp \ qgpgmetofupolicyjob.cpp \ defaultkeygenerationjob.cpp qgpgmewkspublishjob.cpp \ - dn.cpp + dn.cpp cryptoconfig.cpp # If you add one here make sure that you also add one in camelcase qgpgme_headers= \ diff --git a/lang/qt/src/cryptoconfig.cpp b/lang/qt/src/cryptoconfig.cpp new file mode 100644 index 00000000..be265d87 --- /dev/null +++ b/lang/qt/src/cryptoconfig.cpp @@ -0,0 +1,44 @@ +/* + cryptoconfig.cpp + + This file is part of qgpgme, the Qt API binding for gpgme + Copyright (c) 2017 Intevation GmbH + + QGpgME is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + QGpgME is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + In addition, as a special exception, the copyright holders give + permission to link the code of this program with any edition of + the Qt library by Trolltech AS, Norway (or with modified versions + of Qt that use the same license as Qt), and distribute linked + combinations including the two. You must obey the GNU General + Public License in all respects for all of the code used other than + Qt. If you modify this file, you may extend this exception to + your version of the file, but you are not obligated to do so. If + you do not wish to do so, delete this exception statement from + your version. +*/ +#include "cryptoconfig.h" +#include "qgpgmenewcryptoconfig.h" + +using namespace QGpgME; + +QStringList CryptoConfigEntry::stringValueList() const +{ + const QGpgMENewCryptoConfigEntry *entry = dynamic_cast (this); + if (!entry) { + return QStringList(); + } + return entry->stringValueList(); +} diff --git a/lang/qt/src/cryptoconfig.h b/lang/qt/src/cryptoconfig.h index 452bfbb1..c4de22dc 100644 --- a/lang/qt/src/cryptoconfig.h +++ b/lang/qt/src/cryptoconfig.h @@ -248,6 +248,15 @@ public: * @return true if the value was changed */ virtual bool isDirty() const = 0; + + // Design change from here on we are closely bound to one implementation + // of cryptoconfig. To avoid ABI breaks with every new function we + // add real functions from now on. + + /** + * @return a stringValueList. + */ + QStringList stringValueList() const; }; /** diff --git a/lang/qt/src/qgpgmenewcryptoconfig.cpp b/lang/qt/src/qgpgmenewcryptoconfig.cpp index 49b27caa..4738a03b 100644 --- a/lang/qt/src/qgpgmenewcryptoconfig.cpp +++ b/lang/qt/src/qgpgmenewcryptoconfig.cpp @@ -546,6 +546,18 @@ std::vector QGpgMENewCryptoConfigEntry::uintValueList() const return m_option.currentValue().uintValues(); } +QStringList QGpgMENewCryptoConfigEntry::stringValueList() const +{ + Q_ASSERT(isList()); + const Argument arg = m_option.currentValue(); + const std::vector values = arg.stringValues(); + QStringList ret; + for(const char *value: values) { + ret << QString::fromUtf8(value); + } + return ret; +} + QList QGpgMENewCryptoConfigEntry::urlValueList() const { const Type type = m_option.type(); diff --git a/lang/qt/src/qgpgmenewcryptoconfig.h b/lang/qt/src/qgpgmenewcryptoconfig.h index 81b4cb44..7100e70b 100644 --- a/lang/qt/src/qgpgmenewcryptoconfig.h +++ b/lang/qt/src/qgpgmenewcryptoconfig.h @@ -93,6 +93,8 @@ public: void setURLValueList(const QList &) Q_DECL_OVERRIDE; bool isDirty() const Q_DECL_OVERRIDE; + QStringList stringValueList() const; + #if 0 void setDirty(bool b); QString outputString() const;