/***************************************************************************
- * Copyright (C) 2005-07 by the Quassel IRC Team *
+ * Copyright (C) 2005-08 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include <QStringList>
#include <QVariantMap>
+#include "syncableobject.h"
+
class SignalProxy;
-class NetworkInfo;
+class Network;
class IrcChannel;
-class IrcUser : public QObject {
+class IrcUser : public SyncableObject {
Q_OBJECT
Q_PROPERTY(QString user READ user WRITE setUser 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);
+ IrcUser(const QString &hostmask, Network *network);
virtual ~IrcUser();
- bool initialized() const;
-
QString user() const;
QString host() const;
QString nick() const;
QString hostmask() const;
+ Network *network() 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;
+
public slots:
void setUser(const QString &user);
void setHost(const QString &host);
void setUserModes(const QString &modes);
- void joinChannel(const QString &channel);
- void partChannel(const QString &channel);
+ void joinChannel(IrcChannel *channel);
+ void joinChannel(const QString &channelname);
+ void partChannel(IrcChannel *channel);
+ void partChannel(const QString &channelname);
void addUserMode(const QString &mode);
void removeUserMode(const QString &mode);
// init seters
void initSetChannels(const QStringList channels);
- void setInitialized();
-
signals:
void userSet(QString user);
void hostSet(QString host);
void nickSet(QString newnick);
void hostmaskUpdated(QString mask);
-
- void channelsSet(QStringList channels);
+
void userModesSet(QString modes);
-
+
void channelJoined(QString channel);
void channelParted(QString channel);
void userModeRemoved(QString mode);
void renameObject(QString oldname, QString newname);
-
+
// void setUsermodes(const QSet<QString> &usermodes);
// QSet<QString> usermodes() const;
- void initDone();
-
private slots:
void updateObjectName();
-
+ void channelDestroyed();
+
private:
inline bool operator==(const IrcUser &ircuser2) {
return (_nick.toLower() == ircuser2.nick().toLower());
QString _user;
QString _host;
- QSet<QString> _channels;
+ // QSet<QString> _channels;
+ QSet<IrcChannel *> _channels;
QString _userModes;
-
- NetworkInfo *networkInfo;
+
+ Network *_network;
+
+ QTextCodec *_codecForEncoding;
+ QTextCodec *_codecForDecoding;
};
#endif