blob: 2ce051d93b5ffab10ba0ed880a81ccfede8d731d (
plain)
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
|
/***************************************************************************
otrplugin.h - description
-------------------
begin : 11 03 2007
copyright : (C) 2007-2007 by Michael Zanetti
email : [email protected]
***************************************************************************/
/***************************************************************************
* *
* 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. *
* *
***************************************************************************/
#ifndef OTRPLUGIN_H
#define OTRPLUGIN_H
#include "kdebug.h"
#include <kopeteplugin.h>
#include <kopetemessagehandler.h>
#include "otrlchatinterface.h"
/**
* @author Michael Zanetti
*/
class OTRPlugin;
class KSelectAction;
class OtrMessageHandler : public Kopete::MessageHandler
{
private:
OTRPlugin *plugin;
public:
OtrMessageHandler( OTRPlugin *plugin ) : plugin(plugin) {
kdDebug() << "MessageHandler created" << endl;
}
~OtrMessageHandler(){
kdDebug() << "MessageHandler destroyed" << endl;
}
void handleMessage( Kopete::MessageEvent *event );
};
class OtrMessageHandlerFactory : public Kopete::MessageHandlerFactory
{
private:
OTRPlugin *plugin;
OtrMessageHandler *messageHandler;
public:
OtrMessageHandlerFactory( OTRPlugin *plugin ) : plugin(plugin) {}
Kopete::MessageHandler *create( Kopete::ChatSession *, Kopete::Message::MessageDirection direction )
{
return new OtrMessageHandler(plugin);
}
int filterPosition( Kopete::ChatSession *, Kopete::Message::MessageDirection )
{
return Kopete::MessageHandlerFactory::InStageToSent+1;
}
};
class OTRPlugin : public Kopete::Plugin
{
Q_OBJECT
public:
static OTRPlugin *plugin();
OTRPlugin( QObject *parent, const char *name, const QStringList &args );
~OTRPlugin();
void emitGoneSecure( Kopete::ChatSession *session, int status );
QMap<QString, QString> getMessageCache();
public slots:
void slotOutgoingMessage( Kopete::Message& msg );
void slotEnableOtr( Kopete::ChatSession *session, bool enable );
void slotSettingsChanged();
void slotVerifyFingerprint( Kopete::ChatSession *session );
private slots:
void slotNewChatSessionWindow(Kopete::ChatSession * );
void slotSelectionChanged( bool single );
void slotSetPolicy();
void accountReady( Kopete::Account *account );
private:
static OTRPlugin* pluginStatic_;
OtrMessageHandlerFactory *m_inboundHandler;
OtrlChatInterface *otrlChatInterface;
QMap<QString, QString> messageCache;
KSelectAction* otrPolicyMenu;
/* KActionMenu *otrPolicyMenuBar;
KActionMenu *otrPolicyPopup;
KAction *otrPolicyDefault;
KAction *otrPolicyAlways;
KAction *otrPolicyOpportunistic;
KAction *otrPolicyManual;
KAction *otrPolicyNever;
// SessionManager manager
*/
signals:
void goneSecure( Kopete::ChatSession *session, int state );
};
#endif
|