X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fnetworkmodel.cpp;h=0ffd9c0aff65d538dc58908e8203d5b8c609ac68;hp=bf4f5bfcbd4528ff72935e49d837b81da978e18e;hb=99934fe47293f61e1e62ecc0f0d49f958a992c32;hpb=fa4d0a5606f0c9ed49e196278611fce6b017fb0b diff --git a/src/client/networkmodel.cpp b/src/client/networkmodel.cpp index bf4f5bfc..0ffd9c0a 100644 --- a/src/client/networkmodel.cpp +++ b/src/client/networkmodel.cpp @@ -22,7 +22,6 @@ #include -#include "bufferinfo.h" #include "buffermodel.h" #include "client.h" #include "signalproxy.h" @@ -40,11 +39,16 @@ NetworkItem::NetworkItem(const NetworkId &netid, AbstractTreeItem *parent) : PropertyMapItem(QList() << "networkName" << "currentServer" << "nickCount", parent), _networkId(netid) { - setFlags(Qt::ItemIsEnabled); + setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); } QVariant NetworkItem::data(int column, int role) const { switch(role) { + case NetworkModel::BufferIdRole: + if(childCount()) + return child(0)->data(column, role); + else + return QVariant(); case NetworkModel::NetworkIdRole: return qVariantFromValue(_networkId); case NetworkModel::ItemTypeRole: @@ -158,11 +162,11 @@ QString NetworkItem::toolTip(int column) const { Q_UNUSED(column); QStringList toolTip(QString("%1").arg(networkName())); - toolTip.append(QString(tr("Server: %1")).arg(currentServer())); - toolTip.append(QString(tr("Users: %1")).arg(nickCount())); + toolTip.append(tr("Server: %1").arg(currentServer())); + toolTip.append(tr("Users: %1").arg(nickCount())); if(_network) { - toolTip.append(QString(tr("Lag: %1 msecs")).arg(_network->latency())); + toolTip.append(tr("Lag: %1 msecs").arg(_network->latency())); } return QString("

%1

").arg(toolTip.join("
")); @@ -174,19 +178,18 @@ QString NetworkItem::toolTip(int column) const { BufferItem::BufferItem(const BufferInfo &bufferInfo, AbstractTreeItem *parent) : PropertyMapItem(QStringList() << "bufferName" << "topic" << "nickCount", parent), _bufferInfo(bufferInfo), - _activity(Buffer::NoActivity) + _activity(BufferInfo::NoActivity) { setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled); } -void BufferItem::setActivityLevel(Buffer::ActivityLevel level) { +void BufferItem::setActivityLevel(BufferInfo::ActivityLevel level) { if(_activity != level) { _activity = level; emit dataChanged(); } } -//void BufferItem::updateActivityLevel(Buffer::ActivityLevel level) { void BufferItem::updateActivityLevel(const Message &msg) { if(isCurrentBuffer()) return; @@ -197,14 +200,14 @@ void BufferItem::updateActivityLevel(const Message &msg) { if(lastSeenMsgId() >= msg.msgId()) return; - Buffer::ActivityLevel oldLevel = activityLevel(); + BufferInfo::ActivityLevel oldLevel = activityLevel(); - _activity |= Buffer::OtherActivity; + _activity |= BufferInfo::OtherActivity; if(msg.type() & (Message::Plain | Message::Notice | Message::Action)) - _activity |= Buffer::NewMessage; + _activity |= BufferInfo::NewMessage; if(msg.flags() & Message::Highlight) - _activity |= Buffer::Highlight; + _activity |= BufferInfo::Highlight; if(oldLevel != _activity) emit dataChanged(); @@ -235,7 +238,7 @@ bool BufferItem::setData(int column, const QVariant &value, int role) { qDebug() << "BufferItem::setData(int column, const QVariant &value, int role):" << this << column << value << role; switch(role) { case NetworkModel::BufferActivityRole: - setActivityLevel((Buffer::ActivityLevel)value.toInt()); + setActivityLevel((BufferInfo::ActivityLevel)value.toInt()); return true; default: return PropertyMapItem::setData(column, value, role); @@ -248,6 +251,11 @@ void BufferItem::setBufferName(const QString &name) { emit dataChanged(0); } +void BufferItem::setLastSeenMsgId(const MsgId &msgId) { + _lastSeenMsgId = msgId; + setActivityLevel(BufferInfo::NoActivity); +} + bool BufferItem::isCurrentBuffer() const { return _bufferInfo.bufferId() == Client::bufferModel()->currentIndex().data(NetworkModel::BufferIdRole).value(); } @@ -921,7 +929,7 @@ void NetworkModel::updateBufferActivity(const Message &msg) { bufferItem(msg.bufferInfo())->updateActivityLevel(msg); } -void NetworkModel::setBufferActivity(const BufferId &bufferId, Buffer::ActivityLevel level) { +void NetworkModel::setBufferActivity(const BufferId &bufferId, BufferInfo::ActivityLevel level) { BufferItem *bufferItem = findBufferItem(bufferId); if(!bufferItem) { qDebug() << "NetworkModel::setBufferActivity(): buffer is unknown:" << bufferId;