X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fnetworkmodel.cpp;h=f58dc971d618a96a2963287fbda52021084e1e6c;hp=23e06422129bdf33e4c4f26caad7b23e454ca920;hb=e3ad107e9783ac5ca4064fd7ce3cac7ff092e316;hpb=3e8c20eed6bdc729a3eac2946fad70b8e03c1d2a;ds=sidebyside diff --git a/src/client/networkmodel.cpp b/src/client/networkmodel.cpp index 23e06422..f58dc971 100644 --- a/src/client/networkmodel.cpp +++ b/src/client/networkmodel.cpp @@ -317,6 +317,8 @@ QueryBufferItem::QueryBufferItem(const BufferInfo &bufferInfo, NetworkItem *pare QVariant QueryBufferItem::data(int column, int role) const { switch(role) { + case NetworkModel::IrcUserRole: + return _ircUser; case NetworkModel::UserAwayRole: return (bool)_ircUser ? _ircUser->isAway() : false; default: @@ -387,6 +389,15 @@ ChannelBufferItem::ChannelBufferItem(const BufferInfo &bufferInfo, AbstractTreeI attachIrcChannel(ircChannel); } +QVariant ChannelBufferItem::data(int column, int role) const { + switch(role) { + case NetworkModel::IrcChannelRole: + return _ircChannel; + default: + return BufferItem::data(column, role); + } +} + QString ChannelBufferItem::toolTip(int column) const { Q_UNUSED(column); QStringList toolTip; @@ -678,6 +689,10 @@ QVariant IrcUserItem::data(int column, int role) const { return parent()->data(column, role); case NetworkModel::BufferInfoRole: return parent()->data(column, role); + case NetworkModel::IrcUserRole: + return _ircUser.data(); + case NetworkModel::UserAwayRole: + return (bool)_ircUser ? _ircUser->isAway() : false; default: return PropertyMapItem::data(column, role); } @@ -742,7 +757,7 @@ bool NetworkModel::isBufferIndex(const QModelIndex &index) const { return index.data(NetworkModel::ItemTypeRole) == NetworkModel::BufferItemType; } -int NetworkModel::networkRow(NetworkId networkId) { +int NetworkModel::networkRow(NetworkId networkId) const { NetworkItem *netItem = 0; for(int i = 0; i < rootItem->childCount(); i++) { netItem = qobject_cast(rootItem->child(i)); @@ -762,7 +777,7 @@ QModelIndex NetworkModel::networkIndex(NetworkId networkId) { return indexByItem(qobject_cast(rootItem->child(netRow))); } -NetworkItem *NetworkModel::findNetworkItem(NetworkId networkId) { +NetworkItem *NetworkModel::findNetworkItem(NetworkId networkId) const { int netRow = networkRow(networkId); if(netRow == -1) return 0; @@ -794,7 +809,7 @@ QModelIndex NetworkModel::bufferIndex(BufferId bufferId) { return indexByItem(_bufferItemCache[bufferId]); } -BufferItem *NetworkModel::findBufferItem(BufferId bufferId) { +BufferItem *NetworkModel::findBufferItem(BufferId bufferId) const { if(_bufferItemCache.contains(bufferId)) return _bufferItemCache[bufferId]; else @@ -922,14 +937,14 @@ void NetworkModel::removeBuffer(BufferId bufferId) { buffItem->parent()->removeChild(buffItem); } -MsgId NetworkModel::lastSeenMsgId(BufferId bufferId) { +MsgId NetworkModel::lastSeenMsgId(BufferId bufferId) const { if(!_bufferItemCache.contains(bufferId)) return MsgId(); return _bufferItemCache[bufferId]->lastSeenMsgId(); } -MsgId NetworkModel::lastSeenMarkerMsgId(BufferId bufferId) { +MsgId NetworkModel::lastSeenMarkerMsgId(BufferId bufferId) const { if(!_bufferItemCache.contains(bufferId)) return MsgId(); @@ -998,28 +1013,28 @@ void NetworkModel::checkForNewBuffers(const QModelIndex &parent, int start, int } } -QString NetworkModel::bufferName(BufferId bufferId) { +QString NetworkModel::bufferName(BufferId bufferId) const { if(!_bufferItemCache.contains(bufferId)) return QString(); return _bufferItemCache[bufferId]->bufferName(); } -BufferInfo::Type NetworkModel::bufferType(BufferId bufferId) { +BufferInfo::Type NetworkModel::bufferType(BufferId bufferId) const { if(!_bufferItemCache.contains(bufferId)) return BufferInfo::InvalidBuffer; return _bufferItemCache[bufferId]->bufferType(); } -BufferInfo NetworkModel::bufferInfo(BufferId bufferId) { +BufferInfo NetworkModel::bufferInfo(BufferId bufferId) const { if(!_bufferItemCache.contains(bufferId)) return BufferInfo(); return _bufferItemCache[bufferId]->bufferInfo(); } -NetworkId NetworkModel::networkId(BufferId bufferId) { +NetworkId NetworkModel::networkId(BufferId bufferId) const { if(!_bufferItemCache.contains(bufferId)) return NetworkId(); @@ -1030,7 +1045,7 @@ NetworkId NetworkModel::networkId(BufferId bufferId) { return NetworkId(); } -QString NetworkModel::networkName(BufferId bufferId) { +QString NetworkModel::networkName(BufferId bufferId) const { if(!_bufferItemCache.contains(bufferId)) return QString(); @@ -1040,3 +1055,16 @@ QString NetworkModel::networkName(BufferId bufferId) { else return QString(); } + +BufferId NetworkModel::bufferId(NetworkId networkId, const QString &bufferName, Qt::CaseSensitivity cs) const { + const NetworkItem *netItem = findNetworkItem(networkId); + if(!netItem) + return BufferId(); + + for(int i = 0; i < netItem->childCount(); i++) { + BufferItem *bufferItem = qobject_cast(netItem->child(i)); + if(bufferItem && !bufferItem->bufferName().compare(bufferName, cs)) + return bufferItem->bufferId(); + } + return BufferId(); +}