1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
/*
* gnupg.h - plugin main class
*
* Copyright (C) 2013 Ivan Romanov <drizt@land.ru>
*
* This program 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.
*
* This program 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.
*/
#ifndef GNUPG_H
#define GNUPG_H
#include "psiplugin.h"
#include "applicationinfoaccessinghost.h"
#include "plugininfoprovider.h"
#include "stanzafilter.h"
#include "stanzasender.h"
#include "psiaccountcontroller.h"
#include "optionaccessor.h"
#include "toolbariconaccessor.h"
#include "iconfactoryaccessor.h"
#include "activetabaccessor.h"
#include "accountinfoaccessor.h"
class Options;
class QMenu;
class GnuPG : public QObject
, public PsiPlugin
, public PluginInfoProvider
, public StanzaFilter
, public PsiAccountController
, public OptionAccessor
, public ToolbarIconAccessor
, public IconFactoryAccessor
, public StanzaSender
, public ActiveTabAccessor
, public AccountInfoAccessor
{
Q_OBJECT
#ifdef HAVE_QT5
Q_PLUGIN_METADATA(IID "com.psi-plus.GnuPG")
#endif
Q_INTERFACES(PsiPlugin
PluginInfoProvider
StanzaFilter
PsiAccountController
OptionAccessor
ToolbarIconAccessor
IconFactoryAccessor
StanzaSender
ActiveTabAccessor
AccountInfoAccessor)
public:
GnuPG();
~GnuPG();
// from PsiPlugin
QString name() const { return "GnuPG Key Manager"; }
QString shortName() const { return "gnupg"; }
QString version() const { return "0.3.9"; }
QWidget *options();
bool enable();
bool disable();
void applyOptions();
void restoreOptions();
QPixmap icon() const;
// from PluginInfoProvider
QString pluginInfo();
// from StanzaSender
void setStanzaSendingHost(StanzaSendingHost *host) { _stanzaSending = host; }
// from StanzaFilter
bool incomingStanza(int account, const QDomElement &stanza);
bool outgoingStanza(int /*account*/, QDomElement &/*stanza*/) { return false; }
// from PsiAccountController
void setPsiAccountControllingHost(PsiAccountControllingHost *host) { _accountHost = host; }
// from OptionAccessor
void setOptionAccessingHost(OptionAccessingHost *host) { _optionHost = host; }
void optionChanged(const QString &/*option*/) { }
// from ToolbarIconAccessor
QList<QVariantHash> getButtonParam();
QAction* getAction(QObject * /*parent*/, int /*account*/, const QString &/*contact*/) { return 0; }
// from IconFactoryAccessor
void setIconFactoryAccessingHost(IconFactoryAccessingHost *host) { _iconFactory = host; }
// from ActiveTabAccessor
void setActiveTabAccessingHost(ActiveTabAccessingHost* host) { _activeTab = host; }
// from AccountInfoAccessor
void setAccountInfoAccessingHost(AccountInfoAccessingHost* host) { _accountInfo = host; }
private slots:
void actionActivated();
void sendPublicKey();
private:
bool _enabled;
Options *_optionsForm;
PsiAccountControllingHost *_accountHost;
OptionAccessingHost *_optionHost;
IconFactoryAccessingHost *_iconFactory;
QMenu *_menu;
StanzaSendingHost *_stanzaSending;
ActiveTabAccessingHost *_activeTab;
AccountInfoAccessingHost *_accountInfo;
};
#endif // GNUPG_H
|