+ QModelIndex currentIndex = Client::bufferModel()->currentIndex();
+ if(!currentIndex.data(NetworkModel::BufferIdRole).isValid())
+ return;
+
+ NetworkId networkId = currentIndex.data(NetworkModel::NetworkIdRole).value<NetworkId>();
+ QString channelName = currentIndex.sibling(currentIndex.row(), 0).data().toString();
+
+ Network *network = Client::network(networkId);
+ if(!network)
+ return;
+
+ IrcChannel *channel = network->ircChannel(channelName);
+ if(!channel)
+ return;
+
+ disconnect(this, SLOT(ircUserJoinedOrParted(IrcUser *)));
+ connect(channel, SIGNAL(ircUserJoined(IrcUser *)),
+ this, SLOT(ircUserJoinedOrParted(IrcUser *)));
+ connect(channel, SIGNAL(ircUserParted(IrcUser *)),
+ this, SLOT(ircUserJoinedOrParted(IrcUser *)));
+
+ completionList.clear();
+ QString tabAbbrev = inputLine->text().left(inputLine->cursorPosition()).section(' ',-1,-1);