fixed a bug in IrcChannel. Upgrade is strongly advised! Distclean as usual.
[quassel.git] / src / common / ircuser.cpp
index e8ccc37..99f2ae3 100644 (file)
@@ -40,6 +40,7 @@ IrcUser::IrcUser(const QString &hostmask, Network *network)
     _server(),
     _idleTime(QDateTime::currentDateTime()),
     _ircOperator(),
+    _lastAwayMessage(0),
     _network(network),
     _codecForEncoding(0),
     _codecForDecoding(0)
@@ -48,7 +49,10 @@ IrcUser::IrcUser(const QString &hostmask, Network *network)
 }
 
 IrcUser::~IrcUser() {
-  //qDebug() << nick() << "destroyed.";
+  QList<IrcChannel *> channels = _channels.toList();
+  foreach(IrcChannel *channel, channels) {
+    partChannel(channel);
+  }
 }
 
 // ====================
@@ -95,6 +99,10 @@ QString IrcUser::ircOperator() const {
   return _ircOperator;
 }
 
+int IrcUser::lastAwayMessage() const {
+  return _lastAwayMessage;
+}
+
 QString IrcUser::userModes() const {
   return _userModes;
 }
@@ -200,6 +208,13 @@ void IrcUser::setIrcOperator(const QString &ircOperator) {
   }
 }
 
+void IrcUser::setLastAwayMessage(const int &lastAwayMessage) {
+  if(lastAwayMessage > _lastAwayMessage) {
+    _lastAwayMessage = lastAwayMessage;
+    emit lastAwayMessageSet(lastAwayMessage);
+  }
+}
+
 void IrcUser::setHost(const QString &host) {
   if(!host.isEmpty() && _host != host) {
     _host = host;