#include "util.h" // get rid of this (needed for isChannelName)
-
/*****************************************
* Fancy Buffer Items
*****************************************/
: 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)
return qobject_cast<NetworkItem *>(parent())->isActive();
}
-bool BufferItem::setActivityLevel(Buffer::ActivityLevel level) {
- _activity = level;
- emit dataChanged();
- return true;
+void BufferItem::setActivityLevel(Buffer::ActivityLevel level) {
+ if(_activity != level) {
+ _activity = level;
+ emit dataChanged();
+ }
}
void BufferItem::updateActivityLevel(Buffer::ActivityLevel level) {
bool BufferItem::setData(int column, const QVariant &value, int role) {
switch(role) {
case NetworkModel::BufferActivityRole:
- return setActivityLevel((Buffer::ActivityLevel)value.toInt());
+ setActivityLevel((Buffer::ActivityLevel)value.toInt());
+ return true;
default:
return PropertyMapItem::setData(column, value, role);
}
}
void BufferItem::ircChannelDestroyed() {
+ Q_CHECK_PTR(_ircChannel);
+ disconnect(_ircChannel, 0, this, 0);
+ _ircChannel = 0;
emit dataChanged();
removeAllChilds();
}
this, SLOT(attachIrcChannel(QString)));
connect(network, SIGNAL(connectedSet(bool)),
this, SIGNAL(dataChanged()));
-
+ connect(network, SIGNAL(destroyed()),
+ this, SIGNAL(dataChanged()));
+
emit dataChanged();
}
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()) {