#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();
}
toolTip.append(tr("<b>Topic:</b> %1").arg(_topic));
}
}
+ if(_ircChannel) {
+ QString channelMode = _ircChannel->channelModeString(); // channelModeString is compiled on the fly -> thus cache the result
+ if(!channelMode.isEmpty())
+ toolTip.append(tr("<b>Mode:</b> %1").arg(channelMode));
+ }
} else {
toolTip.append(tr("Not active <br /> Double-click to join"));
}