+QString IrcUser::nick() const {
+ return _nick;
+}
+
+QString IrcUser::hostmask() const {
+ return QString("%1!%2@%3").arg(nick()).arg(user()).arg(host());
+}
+
+QString IrcUser::userModes() const {
+ return _userModes;
+}
+
+QStringList IrcUser::channels() const {
+ QStringList chanList;
+ IrcChannel *channel;
+ foreach(channel, _channels) {
+ chanList << channel->name();
+ }
+ return chanList;
+}
+
+QTextCodec *IrcUser::codecForEncoding() const {
+ return _codecForEncoding;
+}
+
+void IrcUser::setCodecForEncoding(const QString &name) {
+ setCodecForEncoding(QTextCodec::codecForName(name.toAscii()));
+}
+
+void IrcUser::setCodecForEncoding(QTextCodec *codec) {
+ _codecForEncoding = codec;
+}
+
+QTextCodec *IrcUser::codecForDecoding() const {
+ return _codecForDecoding;
+}
+
+void IrcUser::setCodecForDecoding(const QString &name) {
+ setCodecForDecoding(QTextCodec::codecForName(name.toAscii()));
+}
+
+void IrcUser::setCodecForDecoding(QTextCodec *codec) {
+ _codecForDecoding = codec;
+}
+
+QString IrcUser::decodeString(const QByteArray &text) const {
+ if(!codecForDecoding()) return networkInfo->decodeString(text);
+ return ::decodeString(text, codecForDecoding());
+}
+
+QByteArray IrcUser::encodeString(const QString string) const {
+ if(codecForEncoding()) {
+ return codecForEncoding()->fromUnicode(string);
+ }
+ return networkInfo->encodeString(string);
+}
+
+// ====================
+// PUBLIC SLOTS:
+// ====================
+void IrcUser::setUser(const QString &user) {
+ if(!user.isEmpty() && _user != user) {
+ _user = user;
+ emit userSet(user);
+ }
+}
+
+void IrcUser::setHost(const QString &host) {
+ if(!host.isEmpty() && _host != host) {
+ _host = host;
+ emit hostSet(host);
+ }