1 /***************************************************************************
2 * Copyright (C) 2005-08 by the Quassel Project *
3 * devel@quassel-irc.org *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) version 3. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19 ***************************************************************************/
24 #include <QDataStream>
27 #include <QStringList>
30 #include "syncableobject.h"
32 class Identity : public SyncableObject {
35 Q_PROPERTY(IdentityId identityId READ id WRITE setId STORED false)
36 Q_PROPERTY(QString identityName READ identityName WRITE setIdentityName STORED false)
37 Q_PROPERTY(QString realName READ realName WRITE setRealName STORED false)
38 Q_PROPERTY(QStringList nicks READ nicks WRITE setNicks STORED false)
39 Q_PROPERTY(QString awayNick READ awayNick WRITE setAwayNick STORED false)
40 Q_PROPERTY(bool awayNickEnabled READ awayNickEnabled WRITE setAwayNickEnabled STORED false)
41 Q_PROPERTY(QString awayReason READ awayReason WRITE setAwayReason STORED false)
42 Q_PROPERTY(bool awayReasonEnabled READ awayReasonEnabled WRITE setAwayReasonEnabled STORED false)
43 Q_PROPERTY(bool autoAwayEnabled READ autoAwayEnabled WRITE setAutoAwayEnabled STORED false)
44 Q_PROPERTY(int autoAwayTime READ autoAwayTime WRITE setAutoAwayTime STORED false)
45 Q_PROPERTY(QString autoAwayReason READ autoAwayReason WRITE setAutoAwayReason STORED false)
46 Q_PROPERTY(bool autoAwayReasonEnabled READ autoAwayReasonEnabled WRITE setAutoAwayReasonEnabled STORED false)
47 Q_PROPERTY(bool detachAwayEnabled READ detachAwayEnabled WRITE setDetachAwayEnabled STORED false)
48 Q_PROPERTY(QString detachAwayReason READ detachAwayReason WRITE setDetachAwayReason STORED false)
49 Q_PROPERTY(bool detachAwayReasonEnabled READ detachAwayReasonEnabled WRITE setDetachAwayReasonEnabled STORED false)
50 Q_PROPERTY(QString ident READ ident WRITE setIdent STORED false)
51 Q_PROPERTY(QString kickReason READ kickReason WRITE setKickReason STORED false)
52 Q_PROPERTY(QString partReason READ partReason WRITE setPartReason STORED false)
53 Q_PROPERTY(QString quitReason READ quitReason WRITE setQuitReason STORED false)
56 Identity(IdentityId id = 0, QObject *parent = 0);
57 Identity(const Identity &other, QObject *parent = 0);
60 bool operator==(const Identity &other);
61 bool operator!=(const Identity &other);
65 IdentityId id() const;
66 QString identityName() const;
67 QString realName() const;
68 QStringList nicks() const;
69 QString awayNick() const;
70 bool awayNickEnabled() const;
71 QString awayReason() const;
72 bool awayReasonEnabled() const;
73 bool autoAwayEnabled() const;
74 int autoAwayTime() const;
75 QString autoAwayReason() const;
76 bool autoAwayReasonEnabled() const;
77 bool detachAwayEnabled() const;
78 QString detachAwayReason() const;
79 bool detachAwayReasonEnabled() const;
80 QString ident() const;
81 QString kickReason() const;
82 QString partReason() const;
83 QString quitReason() const;
86 void setId(IdentityId id);
87 void setIdentityName(const QString &name);
88 void setRealName(const QString &realName);
89 void setNicks(const QStringList &nicks);
90 void setAwayNick(const QString &awayNick);
91 void setAwayNickEnabled(bool enabled);
92 void setAwayReason(const QString &awayReason);
93 void setAwayReasonEnabled(bool enabled);
94 void setAutoAwayEnabled(bool enabled);
95 void setAutoAwayTime(int time);
96 void setAutoAwayReason(const QString &reason);
97 void setAutoAwayReasonEnabled(bool enabled);
98 void setDetachAwayEnabled(bool enabled);
99 void setDetachAwayReason(const QString &reason);
100 void setDetachAwayReasonEnabled(bool enabled);
101 void setIdent(const QString &ident);
102 void setKickReason(const QString &reason);
103 void setPartReason(const QString &reason);
104 void setQuitReason(const QString &reason);
106 void update(const Identity &other);
109 void idSet(IdentityId id);
110 void identityNameSet(const QString &name);
111 void realNameSet(const QString &realName);
112 void nicksSet(const QStringList &nicks);
113 void awayNickSet(const QString &awayNick);
114 void awayNickEnabledSet(bool);
115 void awayReasonSet(const QString &awayReason);
116 void awayReasonEnabledSet(bool);
117 void autoAwayEnabledSet(bool);
118 void autoAwayTimeSet(int);
119 void autoAwayReasonSet(const QString &);
120 void autoAwayReasonEnabledSet(bool);
121 void detachAwayEnabledSet(bool);
122 void detachAwayReasonSet(const QString &);
123 void detachAwayReasonEnabledSet(bool);
124 void identSet(const QString &);
125 void kickReasonSet(const QString &);
126 void partReasonSet(const QString &);
127 void quitReasonSet(const QString &);
130 IdentityId _identityId;
131 QString _identityName, _realName;
134 bool _awayNickEnabled;
136 bool _awayReasonEnabled;
137 bool _autoAwayEnabled;
139 QString _autoAwayReason;
140 bool _autoAwayReasonEnabled;
141 bool _detachAwayEnabled;
142 QString _detachAwayReason;
143 bool _detachAwayReasonEnabled;
144 QString _ident, _kickReason, _partReason, _quitReason;
148 friend QDataStream &operator>>(QDataStream &in, Identity &identity);
151 QDataStream &operator<<(QDataStream &out, Identity identity);
152 QDataStream &operator>>(QDataStream &in, Identity &identity);
154 Q_DECLARE_METATYPE(Identity)