Merge branch 'network-sync'
[quassel.git] / src / client / networkmodel.cpp
index 1892ecc..6b155a0 100644 (file)
@@ -325,10 +325,8 @@ void ChannelBufferItem::attachIrcChannel(IrcChannel *ircChannel) {
   connect(ircChannel, SIGNAL(ircUserModeRemoved(IrcUser *, QString)),
          this, SLOT(userModeChanged(IrcUser *)));
 
-  if(!ircChannel->ircUsers().isEmpty()) {
-    qWarning() << "Channel" << ircChannel->name() << "has already users which is quite surprising :)";
+  if(!ircChannel->ircUsers().isEmpty())
     join(ircChannel->ircUsers());
-  }
   
   emit dataChanged();
 }
@@ -426,8 +424,13 @@ void ChannelBufferItem::userModeChanged(IrcUser *ircUser) {
   int categoryId = UserCategoryItem::categoryFromModes(_ircChannel->userModes(ircUser));
   UserCategoryItem *categoryItem = qobject_cast<UserCategoryItem *>(childById(qHash(categoryId)));
     
-  if(categoryItem && categoryItem->childById(qHash(ircUser)))
-    return; // already in the right category;
+  if(categoryItem) {
+    if(categoryItem->childById(qHash(ircUser)))
+      return; // already in the right category;
+  } else {
+    categoryItem = new UserCategoryItem(categoryId, this);
+    newChild(categoryItem);
+  }
 
   // find the item that needs reparenting
   IrcUserItem *ircUserItem = 0;