X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fnetworkmodel.cpp;h=bec3edf1496bcf1e434b675572c22ceb16f54599;hp=63ebf9af7edf7b1e20b1fbf5cdbacdbf7ff20408;hb=600a5683c1a8e679b7b63a00d5b1211b5b9771c7;hpb=9850247cc7533d35d71d202e32d9734197bb6f08 diff --git a/src/client/networkmodel.cpp b/src/client/networkmodel.cpp index 63ebf9af..bec3edf1 100644 --- a/src/client/networkmodel.cpp +++ b/src/client/networkmodel.cpp @@ -41,7 +41,8 @@ BufferItem::BufferItem(BufferInfo bufferInfo, AbstractTreeItem *parent) : PropertyMapItem(QStringList() << "bufferName" << "topic" << "nickCount", parent), _bufferInfo(bufferInfo), _bufferName(bufferInfo.bufferName()), - _activity(Buffer::NoActivity) + _activity(Buffer::NoActivity), + _ircChannel(0) { Qt::ItemFlags flags = Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled; if(bufferType() == BufferInfo::QueryBuffer) @@ -144,6 +145,9 @@ void BufferItem::attachIrcChannel(IrcChannel *ircChannel) { } void BufferItem::ircChannelDestroyed() { + Q_CHECK_PTR(_ircChannel); + disconnect(_ircChannel, 0, this, 0); + _ircChannel = 0; emit dataChanged(); removeAllChilds(); } @@ -414,7 +418,9 @@ void NetworkItem::attachNetwork(Network *network) { this, SLOT(attachIrcChannel(QString))); connect(network, SIGNAL(connectedSet(bool)), this, SIGNAL(dataChanged())); - + connect(network, SIGNAL(destroyed()), + this, SIGNAL(dataChanged())); + emit dataChanged(); } @@ -462,10 +468,6 @@ QString NetworkItem::toolTip(int column) const { *****************************************/ // we hardcode this even though we have PREFIX in network... but that wouldn't help with mapping modes to // category strings anyway. -// TODO make this translateable depending on the number of users in a category -// -> we can't set the real string here, because tr() needs to get the actual number as second param -// -> tr("%n User(s)", n) needs to be used somewhere where we do know the user number n - const QList UserCategoryItem::categories = QList() << 'q' << 'a' << 'o' << 'h' << 'v'; UserCategoryItem::UserCategoryItem(int category, AbstractTreeItem *parent) @@ -530,7 +532,7 @@ QVariant UserCategoryItem::data(int column, int role) const { } } - + /***************************************** * Irc User Items *****************************************/ @@ -594,7 +596,10 @@ QString IrcUserItem::toolTip(int column) const { if(_ircUser->isAway()) toolTip[0].append(" is away"); if(!_ircUser->awayMessage().isEmpty()) toolTip[0].append(QString(" (%1)").arg(_ircUser->awayMessage())); if(!_ircUser->realName().isEmpty()) toolTip.append(_ircUser->realName()); - if(!_ircUser->ircOperator().isEmpty()) toolTip.append(_ircUser->ircOperator()); + if(!_ircUser->ircOperator().isEmpty()) toolTip.append(QString("%1 %2").arg(nickName()).arg(_ircUser->ircOperator())); + if(!_ircUser->suserHost().isEmpty()) toolTip.append(_ircUser->suserHost()); + if(!_ircUser->whoisServiceReply().isEmpty()) toolTip.append(_ircUser->whoisServiceReply()); + toolTip.append(_ircUser->hostmask().remove(0, _ircUser->hostmask().indexOf("!")+1)); if(_ircUser->idleTime().isValid()) {