X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fnickviewfilter.cpp;h=0fd884592c458213edaf8e2af85744909122e924;hp=7a6e704bb7432532d1a28d9792ef00ffb3f17388;hb=db511df7b183771ae444f14d0aca42381ee0ae37;hpb=89c07686d193fe31e1b3ea45735b3f5a0d1e6cfb diff --git a/src/uisupport/nickviewfilter.cpp b/src/uisupport/nickviewfilter.cpp index 7a6e704b..0fd88459 100644 --- a/src/uisupport/nickviewfilter.cpp +++ b/src/uisupport/nickviewfilter.cpp @@ -19,13 +19,9 @@ ***************************************************************************/ #include "nickviewfilter.h" - #include "networkmodel.h" - #include "uisettings.h" -#include - /****************************************************************************************** * NickViewFilter ******************************************************************************************/ @@ -36,6 +32,15 @@ NickViewFilter::NickViewFilter(const BufferId &bufferId, NetworkModel *parent) setSourceModel(parent); setDynamicSortFilter(true); setSortCaseSensitivity(Qt::CaseInsensitive); + setSortRole(TreeModel::SortRole); + loadColors(); +} + +void NickViewFilter::loadColors() { + UiSettings s("QtUiStyle/Colors"); + _FgOnlineStatus = s.value("onlineStatusFG", QVariant(QColor(Qt::black))).value(); + _FgAwayStatus = s.value("awayStatusFG", QVariant(QColor(Qt::gray))).value(); + // FIXME: use the style interface instead of qsettings } QVariant NickViewFilter::data(const QModelIndex &index, int role) const { @@ -43,30 +48,20 @@ QVariant NickViewFilter::data(const QModelIndex &index, int role) const { return foreground(index); else return QSortFilterProxyModel::data(index, role); -// else { -// QVariant d = -// if(role == 0) -// qDebug() << index << role << d; -// return d; -// } } QVariant NickViewFilter::foreground(const QModelIndex &index) const { - UiSettings s("QtUi/Colors"); - QVariant onlineStatusFG = s.value("onlineStatusFG", QVariant(QColor(Qt::black))); - QVariant awayStatusFG = s.value("awayStatusFG", QVariant(QColor(Qt::gray))); - if(!index.data(NetworkModel::ItemActiveRole).toBool()) - return awayStatusFG.value(); - - return onlineStatusFG.value(); - - // FIXME:: make colors configurable; - // FIXME: use the style interface instead of qsettings + return _FgAwayStatus; + return _FgOnlineStatus; } bool NickViewFilter::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const { + // root node, networkindexes, the bufferindex of the buffer this filter is active for and it's childs are accepted + if(!source_parent.isValid()) + return true; + QModelIndex source_child = source_parent.child(source_row, 0); return (sourceModel()->data(source_child, NetworkModel::BufferIdRole).value() == _bufferId); }