- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
#define constuserColor "usercolor"
#define consttagColor "tagcolor"
#define constmsgColor "idcolor"
#define constQcolor "quotecolor"
#define constLcolor "linkcolor"
#define constUbold "userbold"
#define constTbold "tagbold"
#define constMbold "idbold"
#define constQbold "quotebold"
#define constLbold "linkbold"
#define constUitalic "useritalic"
#define constTitalic "tagitalic"
#define constMitalic "iditalic"
#define constQitalic "quoteitalic"
#define constLitalic "linkitalic"
#define constUunderline "userunderline"
#define constTunderline "tagunderline"
#define constMunderline "idunderline"
#define constQunderline "quoteunderline"
#define constLunderline "linkunderline"
#define constIdAsResource "idAsResource"
#define constShowPhoto "showphoto"
#define constShowAvatars "showavatars"
#define constWorkInGroupchat "workingroupchat"
#define constVersion "0.9.9"
class JuickPlugin : public QObject, public PsiPlugin, public EventFilter, public OptionAccessor, public ActiveTabAccessor,
public StanzaFilter, public ApplicationInfoAccessor
{
Q_OBJECT
Q_INTERFACES(PsiPlugin EventFilter OptionAccessor ActiveTabAccessor StanzaFilter ApplicationInfoAccessor)
public:
JuickPlugin();
virtual QString name() const;
virtual QString shortName() const;
virtual QString version() const;
virtual QWidget* options();
virtual bool enable();
virtual bool disable();
virtual void applyOptions();
virtual void restoreOptions();
virtual bool processEvent(int account, QDomElement& e);
virtual bool processMessage(int account, const QString& fromJid, const QString& body, const QString& subject);
// OptionAccessor
virtual void setOptionAccessingHost(OptionAccessingHost* host);
virtual void optionChanged(const QString& option);
//ActiveTabAccessor
virtual void setActiveTabAccessingHost(ActiveTabAccessingHost* host);
//ApplicationInfoAccessor
virtual void setApplicationInfoAccessingHost(ApplicationInfoAccessingHost* host);
virtual bool incomingStanza(int account, const QDomElement& stanza);
void elementFromString(QDomElement& body,QDomDocument e, QString& msg, QString jid, QString resource = "");
void nl2br(QDomElement& body,QDomDocument e, QString msg);
void addPlus(QDomElement& body,QDomDocument e, QString msg, QString jid, QString resource = "");
void addSubscribe(QDomElement& body,QDomDocument e, QString msg, QString jid, QString resource = "");
void addHttpLink(QDomElement& body,QDomDocument e, QString msg);
void addTagLink(QDomElement& body,QDomDocument e, QString tag, QString jid);
void addUserLink(QDomElement& body,QDomDocument e, QString nick, QString altText, QString pattern, QString jid);
void addMessageId(QDomElement& body,QDomDocument e, QString mId, QString altText,QString pattern, QString jid, QString resource = "");
void addUnsubscribe(QDomElement& body,QDomDocument e, QString msg, QString jid, QString resource = "");
void addDelete(QDomElement& body,QDomDocument e, QString msg, QString jid, QString resource = "");
void addFavorite(QDomElement& body,QDomDocument e, QString msg, QString jid, QString resource = "");
Краткость - сестра таланта... Только видимо авторы этого чуда эту пословицу не знают.
Да и количество непонятных макросов нам тоже намекает.
Ну и конечно же необходимость в таком страшном множественном наследовании с возможностью рандомных побочных эффектов тоже намекает нам о говноархитектуре. В общем не зря авторы Psi решили начать писать новый клиент.