+ const Network *network = Client::network(Client::networkModel()->networkId(id));
+
+ QString newtopic;
+ if(Client::networkModel()->bufferType(id) == BufferInfo::StatusBuffer) {
+ newtopic = QString("%1 (%2) | %3 | %4")
+ .arg(Qt::escape(network->networkName()))
+ .arg(Qt::escape(network->currentServer()))
+ .arg(tr("Users: %1").arg(network->ircUsers().count()))
+ .arg(tr("Lag: %1 msecs").arg(network->latency()));
+ _readonly = true;
+ } else if(Client::networkModel()->bufferType(id) == BufferInfo::QueryBuffer) {
+ newtopic = QString("%1").arg(index.sibling(index.row(), 0).data().toString());
+ const IrcUser *user = network->ircUser(QString(index.sibling(index.row(), 0).data().toString()));
+ if (user) {
+ if(!user->userModes().isEmpty())
+ newtopic.append(QString(" (+%1)").arg(user->userModes()));
+ if(!user->realName().isEmpty())
+ newtopic.append(QString(" | %1").arg(user->realName()));
+ newtopic.append(QString(" | %1").arg(user->hostmask().remove(0, user->hostmask().indexOf("!")+1)));
+ }
+ _readonly = true;
+ } else if(Client::networkModel()->bufferType(id) == BufferInfo::ChannelBuffer) {
+ newtopic = index.sibling(index.row(), 1).data().toString();
+ _readonly = false;
+ }
+ else {
+ newtopic = "";
+ _readonly = true;
+ }
+
+ ui.topicEditButton->setVisible(!_readonly);
+