use default prefix if the server doesn't send a valid RPL_ISUPPORT
[quassel.git] / src / common / network.cpp
index ead100d..c813ebb 100644 (file)
@@ -208,7 +208,6 @@ void Network::ircUserDestroyed() {
   QHash<QString, IrcUser *>::iterator ircUserIter = _ircUsers.begin();
   while(ircUserIter != _ircUsers.end()) {
     if(ircUser == *ircUserIter) {
-      emit deletedIrcUserRemoved(ircUserIter.key());
       ircUserIter = _ircUsers.erase(ircUserIter);
       break;
     }
@@ -216,30 +215,6 @@ void Network::ircUserDestroyed() {
   }
 }
 
-void Network::removeDeletedIrcUser(const QString &username) {
-  // DO NOT CALL THIS SLOT EVER!!!
-  
-  // this slots purpose is only to remove deleted users that haven't been synced yet.
-  // Reason:
-  // as a user parting a channel results in it's deletion if it is no longer in any known channel
-  // this action can only be communicated if the slaves are allready in sync.
-  // so if such a deleted user isn't synced in slave mode, we kill and remove it.
-
-  Q_ASSERT(proxy());
-
-  if(!_ircUsers.contains(username))
-    return;
-
-  IrcUser *ircUser = _ircUsers[username];
-
-  if(ircUser->isInitialized())
-    return;
-
-  _ircUsers.remove(username);
-  emit ircUserRemoved(username);
-  emit ircUserRemoved(ircUser);
-}
-
 void Network::removeIrcUser(IrcUser *ircuser) {
   QString nick = _ircUsers.key(ircuser);
   if(nick.isNull())
@@ -710,6 +685,12 @@ void Network::determinePrefixes() {
     QString defaultPrefixes("~&@%+");
     QString defaultPrefixModes("qaohv");
 
+    if(PREFIX.isEmpty()) {
+      _prefixes = defaultPrefixes;
+      _prefixModes = defaultPrefixModes;
+      return;
+    }
+
     // we just assume that in PREFIX are only prefix chars stored
     for(int i = 0; i < defaultPrefixes.size(); i++) {
       if(PREFIX.contains(defaultPrefixes[i])) {