X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fnickviewfilter.cpp;h=ea33660540334eb73c80c0c55075fbddac1f3b6b;hp=5332769151e62f169633c607e3ee15f3040e5968;hb=86bd6b1ffb870e65af6d830a2ea16471c348ed5a;hpb=a2bf6dec2ea5a72d15a3310f8a7abc11988228c4 diff --git a/src/uisupport/nickviewfilter.cpp b/src/uisupport/nickviewfilter.cpp index 53327691..ea336605 100644 --- a/src/uisupport/nickviewfilter.cpp +++ b/src/uisupport/nickviewfilter.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel Project * + * Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -19,8 +19,12 @@ ***************************************************************************/ #include "nickviewfilter.h" + +#include "buffersettings.h" +#include "graphicalui.h" +#include "iconloader.h" #include "networkmodel.h" -#include "uisettings.h" +#include "uistyle.h" /****************************************************************************************** * NickViewFilter @@ -33,30 +37,8 @@ NickViewFilter::NickViewFilter(const BufferId &bufferId, NetworkModel *parent) setDynamicSortFilter(true); setSortCaseSensitivity(Qt::CaseInsensitive); setSortRole(TreeModel::SortRole); - loadColors(); -} - -void NickViewFilter::loadColors() { - UiSettings s("QtUi/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 { - if(role == Qt::ForegroundRole) - return foreground(index); - else - return QSortFilterProxyModel::data(index, role); } -QVariant NickViewFilter::foreground(const QModelIndex &index) const { - if(!index.data(NetworkModel::ItemActiveRole).toBool()) - 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()) @@ -65,3 +47,15 @@ bool NickViewFilter::filterAcceptsRow(int source_row, const QModelIndex &source_ QModelIndex source_child = source_parent.child(source_row, 0); return (sourceModel()->data(source_child, NetworkModel::BufferIdRole).value() == _bufferId); } + +QVariant NickViewFilter::data(const QModelIndex &index, int role) const { + switch(role) { + case Qt::FontRole: + case Qt::ForegroundRole: + case Qt::BackgroundRole: + case Qt::DecorationRole: + return GraphicalUi::uiStyle()->nickViewItemData(mapToSource(index), role); + default: + return QSortFilterProxyModel::data(index, role); + } +}