removing some debug messages
[quassel.git] / src / common / networkinfo.cpp
index 8791fff..74cb8b9 100644 (file)
@@ -45,13 +45,13 @@ NetworkInfo::NetworkInfo(const uint &networkid, QObject *parent)
 }
 
 // I think this is unnecessary since IrcUsers have us as their daddy :)
-// NetworkInfo::~NetworkInfo() {
+//NetworkInfo::~NetworkInfo() {
 //   QHashIterator<QString, IrcUser *> ircuser(_ircUsers);
 //   while (ircuser.hasNext()) {
 //     ircuser.next();
 //     delete ircuser.value();
 //   }
-// }
+//}
 
 uint NetworkInfo::networkId() const {
   return _networkId;
@@ -169,7 +169,10 @@ IrcUser *NetworkInfo::newIrcUser(const QString &hostmask) {
     // mark IrcUser as already initialized to keep the SignalProxy from requesting initData
     if(initialized())
       ircuser->setInitialized();
-    _proxy->synchronize(ircuser);
+    if(proxy())
+      proxy()->synchronize(ircuser);
+    else
+      qWarning() << "unable to synchronize new IrcUser" << hostmask << "forgot to call NetworkInfo::setProxy(SignalProxy *)?";
     
     connect(ircuser, SIGNAL(nickSet(QString)), this, SLOT(ircUserNickChanged(QString)));
     connect(ircuser, SIGNAL(initDone()), this, SIGNAL(ircUserInitDone()));
@@ -180,6 +183,22 @@ IrcUser *NetworkInfo::newIrcUser(const QString &hostmask) {
   return  _ircUsers[nick];
 }
 
+void NetworkInfo::removeIrcUser(IrcUser *ircuser) {
+  QString nick = _ircUsers.key(ircuser);
+  if(nick.isNull())
+    return;
+
+  _ircUsers.remove(nick);
+  ircuser->deleteLater();
+  emit ircUserRemoved(nick);
+}
+
+void NetworkInfo::removeIrcUser(QString nick) {
+  IrcUser *ircuser;
+  if((ircuser = ircUser(nick)) != 0)
+    removeIrcUser(ircuser);
+}
+
 IrcUser *NetworkInfo::ircUser(const QString &nickname) const {
   if(_ircUsers.contains(nickname))
     return _ircUsers[nickname];
@@ -197,7 +216,11 @@ IrcChannel *NetworkInfo::newIrcChannel(const QString &channelname) {
     // mark IrcUser as already initialized to keep the SignalProxy from requesting initData
     if(initialized())
       channel->setInitialized();
-    _proxy->synchronize(channel);
+
+    if(proxy())
+      proxy()->synchronize(channel);
+    else
+      qWarning() << "unable to synchronize new IrcChannel" << channelname << "forgot to call NetworkInfo::setProxy(SignalProxy *)?";
 
     connect(channel, SIGNAL(initDone()), this, SIGNAL(ircChannelInitDone()));
     connect(channel, SIGNAL(destroyed()), this, SLOT(channelDestroyed()));
@@ -324,7 +347,7 @@ void NetworkInfo::ircUserNickChanged(QString newnick) {
 void NetworkInfo::ircUserDestroyed() {
   IrcUser *ircuser = static_cast<IrcUser *>(sender());
   Q_ASSERT(ircuser);
-  _ircUsers.remove(_ircUsers.key(ircuser));
+  removeIrcUser(ircuser);
 }
 
 void NetworkInfo::channelDestroyed() {
@@ -349,8 +372,8 @@ void NetworkInfo::determinePrefixes() {
     _prefixes = PREFIX.section(")", 1);
     _prefixModes = PREFIX.mid(1).section(")", 0, 0);
   } else {
-    QString defaultPrefixes("@%+");
-    QString defaultPrefixModes("ohv");
+    QString defaultPrefixes("~&@%+");
+    QString defaultPrefixModes("qaohv");
 
     // we just assume that in PREFIX are only prefix chars stored
     for(int i = 0; i < defaultPrefixes.size(); i++) {