X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Fnetworkmodel.cpp;h=0907deeac1e4561cf656e08f66eed654ccf56ef9;hb=6bfa260800588318e5a7b17e3b9dbfaa67bba635;hp=77aeccc73f1586362af5f7579ec0cc3e9b936bd6;hpb=68878dc8366f2f4a0afe132847aad9a51a80cdbf;p=quassel.git diff --git a/src/client/networkmodel.cpp b/src/client/networkmodel.cpp index 77aeccc7..0907deea 100644 --- a/src/client/networkmodel.cpp +++ b/src/client/networkmodel.cpp @@ -40,7 +40,7 @@ * Network Items *****************************************/ NetworkItem::NetworkItem(const NetworkId &netid, AbstractTreeItem *parent) - : PropertyMapItem(QList() << "networkName" << "currentServer" << "nickCount", parent), + : PropertyMapItem(parent), _networkId(netid), _statusBufferItem(0) { @@ -53,6 +53,13 @@ NetworkItem::NetworkItem(const NetworkId &netid, AbstractTreeItem *parent) } +QStringList NetworkItem::propertyOrder() const +{ + static QStringList order{"networkName", "currentServer", "nickCount"}; + return order; +} + + QVariant NetworkItem::data(int column, int role) const { switch (role) { @@ -147,8 +154,12 @@ BufferItem *NetworkItem::bufferItem(const BufferInfo &bufferInfo) } BufferSyncer *bufferSyncer = Client::bufferSyncer(); - if (bufferSyncer) - bufferItem->addActivity(bufferSyncer->activity(bufferItem->bufferId()), false); + if (bufferSyncer) { + bufferItem->addActivity( + bufferSyncer->activity(bufferItem->bufferId()), + bufferSyncer->highlightCount(bufferItem->bufferId()) > 0 + ); + } return bufferItem; } @@ -279,7 +290,7 @@ void NetworkItem::onNetworkDestroyed() * Fancy Buffer Items *****************************************/ BufferItem::BufferItem(const BufferInfo &bufferInfo, AbstractTreeItem *parent) - : PropertyMapItem(QStringList() << "bufferName" << "topic" << "nickCount", parent), + : PropertyMapItem(parent), _bufferInfo(bufferInfo), _activity(BufferInfo::NoActivity) { @@ -287,6 +298,13 @@ BufferItem::BufferItem(const BufferInfo &bufferInfo, AbstractTreeItem *parent) } +QStringList BufferItem::propertyOrder() const +{ + static QStringList order{"bufferName", "topic", "nickCount"}; + return order; +} + + void BufferItem::setActivityLevel(BufferInfo::ActivityLevel level) { if (_activity != level) { @@ -637,8 +655,8 @@ QString QueryBufferItem::toolTip(int column) const NetworkItem::escapeHTML(tr("Identified for this nick")), !accountAdded); // Don't add the account row again if information's already added via account-notify - // Mark the row as added - accountAdded = true; + // Not used further down... + // accountAdded = true; } else { addRow(NetworkItem::escapeHTML(tr("Service Reply"), true), NetworkItem::escapeHTML(_ircUser->whoisServiceReply()), @@ -988,7 +1006,7 @@ void ChannelBufferItem::userModeChanged(IrcUser *ircUser) const QList UserCategoryItem::categories = QList() << 'q' << 'a' << 'o' << 'h' << 'v'; UserCategoryItem::UserCategoryItem(int category, AbstractTreeItem *parent) - : PropertyMapItem(QStringList() << "categoryName", parent), + : PropertyMapItem(parent), _category(category) { setFlags(Qt::ItemIsEnabled); @@ -997,6 +1015,13 @@ UserCategoryItem::UserCategoryItem(int category, AbstractTreeItem *parent) } +QStringList UserCategoryItem::propertyOrder() const +{ + static QStringList order{"categoryName"}; + return order; +} + + // caching this makes no sense, since we display the user number dynamically QString UserCategoryItem::categoryName() const { @@ -1090,7 +1115,7 @@ QVariant UserCategoryItem::data(int column, int role) const * Irc User Items *****************************************/ IrcUserItem::IrcUserItem(IrcUser *ircUser, AbstractTreeItem *parent) - : PropertyMapItem(QStringList() << "nickName", parent), + : PropertyMapItem(parent), _ircUser(ircUser) { setObjectName(ircUser->nick()); @@ -1100,6 +1125,13 @@ IrcUserItem::IrcUserItem(IrcUser *ircUser, AbstractTreeItem *parent) } +QStringList IrcUserItem::propertyOrder() const +{ + static QStringList order{"nickName"}; + return order; +} + + QVariant IrcUserItem::data(int column, int role) const { switch (role) { @@ -1204,8 +1236,8 @@ QString IrcUserItem::toolTip(int column) const NetworkItem::escapeHTML(tr("Identified for this nick")), !accountAdded); // Don't add the account row again if information's already added via account-notify - // Mark the row as added - accountAdded = true; + // Not used further down... + // accountAdded = true; } else { addRow(NetworkItem::escapeHTML(tr("Service Reply"), true), NetworkItem::escapeHTML(_ircUser->whoisServiceReply()), @@ -1757,3 +1789,12 @@ void NetworkModel::bufferActivityChanged(BufferId bufferId, const Message::Types auto activityVisibleTypesIntersection = activity & visibleTypes; _bufferItem->setActivity(activityVisibleTypesIntersection, false); } + +void NetworkModel::highlightCountChanged(BufferId bufferId, int count) { + auto _bufferItem = findBufferItem(bufferId); + if (!_bufferItem) { + qDebug() << "NetworkModel::highlightCountChanged(): buffer is unknown:" << bufferId; + return; + } + _bufferItem->addActivity(Message::Types{}, count > 0); +}