Fixed the missing network name in the chat monitor
[quassel.git] / src / client / client.cpp
index b3e55c7..c73e496 100644 (file)
@@ -356,11 +356,16 @@ void Client::bufferDestroyed() {
 }
 
 void Client::networkDestroyed() {
-  // FIXME this is not gonna work, net is a QObject here already!
   Network *net = static_cast<Network *>(sender());
-  NetworkId networkId = net->networkId();
-  if(_networks.contains(networkId))
-    _networks.remove(networkId);
+  QHash<NetworkId, Network *>::iterator netIter = _networks.begin();
+  while(netIter != _networks.end()) {
+    if(*netIter == net) {
+      netIter = _networks.erase(netIter);
+      break;
+    } else {
+      netIter++;
+    }
+  }
 }
 
 void Client::recvMessage(const Message &msg) {
@@ -369,8 +374,11 @@ void Client::recvMessage(const Message &msg) {
   networkModel()->updateBufferActivity(msg);
 
   if(msg.type() == Message::Plain || msg.type() == Message::Notice || msg.type() == Message::Action) {
-    // FIXME: fetch networkName();
-    QString sender = ":" + msg.bufferInfo().bufferName() + ":" + msg.sender();
+    const Network *net = network(msg.bufferInfo().networkId());
+    QString networkName = net != 0
+      ? net->networkName() + ":"
+      : QString();
+    QString sender = networkName + msg.bufferInfo().bufferName() + ":" + msg.sender();
     Message mmsg = Message(msg.timestamp(), msg.bufferInfo(), msg.type(), msg.text(), sender, msg.flags());
     monitorBuffer()->appendMsg(mmsg);
   }