diff options
Diffstat (limited to 'lang/qt/src/qgpgmecryptoconfig.h')
-rw-r--r-- | lang/qt/src/qgpgmecryptoconfig.h | 245 |
1 files changed, 0 insertions, 245 deletions
diff --git a/lang/qt/src/qgpgmecryptoconfig.h b/lang/qt/src/qgpgmecryptoconfig.h deleted file mode 100644 index b4af1e6c..00000000 --- a/lang/qt/src/qgpgmecryptoconfig.h +++ /dev/null @@ -1,245 +0,0 @@ -/* - qgpgmecryptoconfig.h - - This file is part of qgpgme, the Qt API binding for gpgme - Copyright (c) 2004 Klarälvdalens Datakonsult AB - Copyright (c) 2016 Intevation GmbH - - Libkleopatra 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. - - Libkleopatra 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. -*/ - -#ifndef QGPGME_QGPGMECRYPTOCONFIG_H -#define QGPGME_QGPGMECRYPTOCONFIG_H - -#include "qgpgme_export.h" -#include "cryptoconfig.h" - -#include <QHash> -#include <QStringList> -#include <QObject> -#include <QVariant> -#include <QPointer> - -#include <vector> -#include <utility> - -class QGpgMECryptoConfigComponent; -class QGpgMECryptoConfigEntry; -/** - * CryptoConfig implementation around the gpgconf command-line tool - * For method docu, see kleo/cryptoconfig.h - */ -class QGPGME_EXPORT QGpgMECryptoConfig : public QObject, public QGpgME::CryptoConfig -{ - - Q_OBJECT -public: - - static QString gpgConfPath(); - /** - * Constructor - */ - QGpgMECryptoConfig(); - virtual ~QGpgMECryptoConfig(); - - QStringList componentList() const Q_DECL_OVERRIDE; - - QGpgME::CryptoConfigComponent *component(const QString &name) const Q_DECL_OVERRIDE; - - void clear() Q_DECL_OVERRIDE; - void sync(bool runtime) Q_DECL_OVERRIDE; - -private Q_SLOTS: - void slotCollectStdOut(); -private: - /// @param showErrors if true, a messagebox will be shown if e.g. gpgconf wasn't found - void runGpgConf(bool showErrors); - -private: - std::vector<std::pair<QString, QGpgMECryptoConfigComponent *> > mComponentsNaturalOrder; - QHash<QString, QGpgMECryptoConfigComponent *> mComponentsByName; - bool mParsed; -}; - -class QGpgMECryptoConfigGroup; - -/// For docu, see kleo/cryptoconfig.h -class QGpgMECryptoConfigComponent : public QObject, public QGpgME::CryptoConfigComponent -{ - - Q_OBJECT -public: - QGpgMECryptoConfigComponent(QGpgMECryptoConfig *, const QString &name, const QString &description); - ~QGpgMECryptoConfigComponent(); - - QString name() const Q_DECL_OVERRIDE - { - return mName; - } - QString iconName() const Q_DECL_OVERRIDE - { - return mName; - } - QString description() const Q_DECL_OVERRIDE - { - return mDescription; - } - QStringList groupList() const Q_DECL_OVERRIDE; - QGpgME::CryptoConfigGroup *group(const QString &name) const Q_DECL_OVERRIDE; - - void sync(bool runtime); - -private Q_SLOTS: - void slotCollectStdOut(); -private: - void runGpgConf(); - -private: - std::vector< std::pair<QString, QGpgMECryptoConfigGroup *> > mGroupsNaturalOrder; - QHash<QString, QGpgMECryptoConfigGroup *> mGroupsByName; - QString mName; - QString mDescription; - QGpgMECryptoConfigGroup *mCurrentGroup; // during parsing - QString mCurrentGroupName; // during parsing -}; - -class QGpgMECryptoConfigGroup : public QGpgME::CryptoConfigGroup -{ - -public: - QGpgMECryptoConfigGroup(QGpgMECryptoConfigComponent *comp, const QString &name, const QString &description, int level); - ~QGpgMECryptoConfigGroup(); - - QString name() const Q_DECL_OVERRIDE - { - return mName; - } - QString iconName() const Q_DECL_OVERRIDE - { - return QString(); - } - QString description() const Q_DECL_OVERRIDE - { - return mDescription; - } - QString path() const Q_DECL_OVERRIDE - { - return mComponent->name() + QLatin1Char('/') + mName; - } - QGpgME::CryptoConfigEntry::Level level() const Q_DECL_OVERRIDE - { - return mLevel; - } - QStringList entryList() const Q_DECL_OVERRIDE; - QGpgME::CryptoConfigEntry *entry(const QString &name) const Q_DECL_OVERRIDE; - -private: - friend class QGpgMECryptoConfigComponent; // it adds the entries - QPointer<QGpgMECryptoConfigComponent> mComponent; - std::vector< std::pair<QString, QGpgMECryptoConfigEntry *> > mEntriesNaturalOrder; - QHash<QString, QGpgMECryptoConfigEntry *> mEntriesByName; - QString mName; - QString mDescription; - QGpgME::CryptoConfigEntry::Level mLevel; -}; - -class QGpgMECryptoConfigEntry : public QGpgME::CryptoConfigEntry -{ -public: - QGpgMECryptoConfigEntry(QGpgMECryptoConfigGroup *group, const QStringList &parsedLine); - ~QGpgMECryptoConfigEntry(); - - QString name() const Q_DECL_OVERRIDE - { - return mName; - } - QString description() const Q_DECL_OVERRIDE - { - return mDescription; - } - QString path() const Q_DECL_OVERRIDE - { - return mGroup->path() + QLatin1Char('/') + mName; - } - bool isOptional() const Q_DECL_OVERRIDE; - bool isReadOnly() const Q_DECL_OVERRIDE; - bool isList() const Q_DECL_OVERRIDE; - bool isRuntime() const Q_DECL_OVERRIDE; - Level level() const Q_DECL_OVERRIDE - { - return static_cast<Level>(mLevel); - } - ArgType argType() const Q_DECL_OVERRIDE - { - return static_cast<ArgType>(mArgType); - } - bool isSet() const Q_DECL_OVERRIDE; - bool boolValue() const Q_DECL_OVERRIDE; - QString stringValue() const Q_DECL_OVERRIDE; - int intValue() const Q_DECL_OVERRIDE; - unsigned int uintValue() const Q_DECL_OVERRIDE; - QUrl urlValue() const Q_DECL_OVERRIDE; - unsigned int numberOfTimesSet() const Q_DECL_OVERRIDE; - std::vector<int> intValueList() const Q_DECL_OVERRIDE; - std::vector<unsigned int> uintValueList() const Q_DECL_OVERRIDE; - QList<QUrl> urlValueList() const Q_DECL_OVERRIDE; - void resetToDefault() Q_DECL_OVERRIDE; - void setBoolValue(bool) Q_DECL_OVERRIDE; - void setStringValue(const QString &) Q_DECL_OVERRIDE; - void setIntValue(int) Q_DECL_OVERRIDE; - void setUIntValue(unsigned int) Q_DECL_OVERRIDE; - void setURLValue(const QUrl &) Q_DECL_OVERRIDE; - void setNumberOfTimesSet(unsigned int) Q_DECL_OVERRIDE; - void setIntValueList(const std::vector<int> &) Q_DECL_OVERRIDE; - void setUIntValueList(const std::vector<unsigned int> &) Q_DECL_OVERRIDE; - void setURLValueList(const QList<QUrl> &) Q_DECL_OVERRIDE; - bool isDirty() const Q_DECL_OVERRIDE - { - return mDirty; - } - - void setDirty(bool b); - QString outputString() const; - -protected: - bool isStringType() const; - QVariant stringToValue(const QString &value, bool unescape) const; - QString toString(bool escape) const; -private: - QGpgMECryptoConfigGroup *mGroup; - QString mName; - QString mDescription; - QVariant mDefaultValue; - QVariant mValue; - uint mFlags : 8; // bitfield with 8 bits - uint mLevel : 3; // max is 4 (2, in fact) -> 3 bits - uint mRealArgType : 6; // max is 33 -> 6 bits - uint mArgType : 3; // max is 6 (ArgType enum) -> 3 bits; - uint mDirty : 1; - uint mSet : 1; -}; - -#endif /* QGPGME_QGPGMECRYPTOCONFIG_H */ |