-class IrcUser : public SyncableObject {
- Q_OBJECT
-
- Q_PROPERTY(QString user READ user WRITE setUser STORED false)
- Q_PROPERTY(QString host READ host WRITE setHost STORED false)
- Q_PROPERTY(QString nick READ nick WRITE setNick STORED false)
-
- Q_PROPERTY(QStringList channels READ channels STORED false)
- // Q_PROPERTY(QStringList usermodes READ usermodes WRITE setUsermodes)
-
-public:
- IrcUser(const QString &hostmask, NetworkInfo *networkInfo);
- virtual ~IrcUser();
-
- bool initialized() const;
-
- QString user() const;
- QString host() const;
- QString nick() const;
- QString hostmask() const;
-
- QString userModes() const;
-
- QStringList channels() const;
-
- // user-specific encodings
- QTextCodec *codecForEncoding() const;
- QTextCodec *codecForDecoding() const;
- void setCodecForEncoding(const QString &codecName);
- void setCodecForEncoding(QTextCodec *codec);
- void setCodecForDecoding(const QString &codecName);
- void setCodecForDecoding(QTextCodec *codec);
-
- QString decodeString(const QByteArray &text) const;
- QByteArray encodeString(const QString string) const;
+class IrcUser : public SyncableObject
+{
+ SYNCABLE_OBJECT
+ Q_OBJECT
+
+ Q_PROPERTY(QString user READ user WRITE setUser STORED false)
+ Q_PROPERTY(QString host READ host WRITE setHost STORED false)
+ Q_PROPERTY(QString nick READ nick WRITE setNick STORED false)
+ Q_PROPERTY(QString realName READ realName WRITE setRealName STORED false)
+ Q_PROPERTY(bool away READ isAway WRITE setAway STORED false)
+ Q_PROPERTY(QString awayMessage READ awayMessage WRITE setAwayMessage STORED false)
+ Q_PROPERTY(QDateTime idleTime READ idleTime WRITE setIdleTime STORED false)
+ Q_PROPERTY(QDateTime loginTime READ loginTime WRITE setLoginTime STORED false)
+ Q_PROPERTY(QString server READ server WRITE setServer STORED false)
+ Q_PROPERTY(QString ircOperator READ ircOperator WRITE setIrcOperator STORED false)
+ Q_PROPERTY(int lastAwayMessage READ lastAwayMessage WRITE setLastAwayMessage STORED false)
+ Q_PROPERTY(QString whoisServiceReply READ whoisServiceReply WRITE setWhoisServiceReply STORED false)
+ Q_PROPERTY(QString suserHost READ suserHost WRITE setSuserHost STORED false)
+
+ Q_PROPERTY(QStringList channels READ channels STORED false)
+ Q_PROPERTY(QString userModes READ userModes WRITE setUserModes)
+
+public :
+ IrcUser(const QString &hostmask, Network *network);
+ virtual ~IrcUser();
+
+ inline QString user() const { return _user; }
+ inline QString host() const { return _host; }
+ inline QString nick() const { return _nick; }
+ inline QString realName() const { return _realName; }
+ QString hostmask() const;
+ inline bool isAway() const { return _away; }
+ inline QString awayMessage() const { return _awayMessage; }
+ QDateTime idleTime();
+ inline QDateTime loginTime() const { return _loginTime; }
+ inline QString server() const { return _server; }
+ inline QString ircOperator() const { return _ircOperator; }
+ inline int lastAwayMessage() const { return _lastAwayMessage; }
+ inline QString whoisServiceReply() const { return _whoisServiceReply; }
+ inline QString suserHost() const { return _suserHost; }
+ inline Network *network() const { return _network; }
+
+ inline QString userModes() const { return _userModes; }
+
+ QStringList channels() const;
+
+ // user-specific encodings
+ inline QTextCodec *codecForEncoding() const { return _codecForEncoding; }
+ inline QTextCodec *codecForDecoding() const { return _codecForDecoding; }
+ void setCodecForEncoding(const QString &codecName);
+ void setCodecForEncoding(QTextCodec *codec);
+ void setCodecForDecoding(const QString &codecName);
+ void setCodecForDecoding(QTextCodec *codec);
+
+ QString decodeString(const QByteArray &text) const;
+ QByteArray encodeString(const QString &string) const;
+
+ // only valid on client side, these are not synced!
+ inline QDateTime lastChannelActivity(BufferId id) const { return _lastActivity.value(id); }
+ void setLastChannelActivity(BufferId id, const QDateTime &time);
+ inline QDateTime lastSpokenTo(BufferId id) const { return _lastSpokenTo.value(id); }
+ void setLastSpokenTo(BufferId id, const QDateTime &time);