X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fnickviewfilter.cpp;h=ea33660540334eb73c80c0c55075fbddac1f3b6b;hp=959ae9c63f91c803cdce69f58d42fb85117c3df4;hb=d27f243e92c66bba5bb6f8d01b63f6dad5b1ace9;hpb=deba2421d87cbdea05c925cb3425042559d6ba21 diff --git a/src/uisupport/nickviewfilter.cpp b/src/uisupport/nickviewfilter.cpp index 959ae9c6..ea336605 100644 --- a/src/uisupport/nickviewfilter.cpp +++ b/src/uisupport/nickviewfilter.cpp @@ -21,30 +21,22 @@ #include "nickviewfilter.h" #include "buffersettings.h" +#include "graphicalui.h" #include "iconloader.h" #include "networkmodel.h" +#include "uistyle.h" /****************************************************************************************** * NickViewFilter ******************************************************************************************/ NickViewFilter::NickViewFilter(const BufferId &bufferId, NetworkModel *parent) : QSortFilterProxyModel(parent), - _bufferId(bufferId), - _userOnlineIcon(SmallIcon("im-user")), - _userAwayIcon(SmallIcon("im-user-away")), - _categoryOpIcon(SmallIcon("irc-operator")), - _categoryVoiceIcon(SmallIcon("irc-voice")), - _opIconLimit(UserCategoryItem::categoryFromModes("o")), - _voiceIconLimit(UserCategoryItem::categoryFromModes("v")) + _bufferId(bufferId) { setSourceModel(parent); setDynamicSortFilter(true); setSortCaseSensitivity(Qt::CaseInsensitive); setSortRole(TreeModel::SortRole); - - BufferSettings bufferSettings; - _showUserStateIcons = bufferSettings.showUserStateIcons(); - bufferSettings.notify("ShowUserStateIcons", this, SLOT(showUserStateIconsChanged())); } bool NickViewFilter::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const { @@ -58,44 +50,12 @@ bool NickViewFilter::filterAcceptsRow(int source_row, const QModelIndex &source_ QVariant NickViewFilter::data(const QModelIndex &index, int role) const { switch(role) { + case Qt::FontRole: + case Qt::ForegroundRole: + case Qt::BackgroundRole: case Qt::DecorationRole: - return icon(index); + return GraphicalUi::uiStyle()->nickViewItemData(mapToSource(index), role); default: return QSortFilterProxyModel::data(index, role); } } - -QVariant NickViewFilter::icon(const QModelIndex &index) const { - if(!_showUserStateIcons) - return QVariant(); - - if(index.column() != 0) - return QVariant(); - - QModelIndex source_index = mapToSource(index); - NetworkModel::ItemType itemType = (NetworkModel::ItemType)sourceModel()->data(source_index, NetworkModel::ItemTypeRole).toInt(); - switch(itemType) { - case NetworkModel::UserCategoryItemType: - { - int categoryId = sourceModel()->data(source_index, TreeModel::SortRole).toInt(); - if(categoryId <= _opIconLimit) - return _categoryOpIcon; - if(categoryId <= _voiceIconLimit) - return _categoryVoiceIcon; - return _userOnlineIcon; - } - case NetworkModel::IrcUserItemType: - if(sourceModel()->data(source_index, NetworkModel::ItemActiveRole).toBool()) - return _userOnlineIcon; - else - return _userAwayIcon; - break; - default: - return QVariant(); - }; -} - -void NickViewFilter::showUserStateIconsChanged() { - BufferSettings bufferSettings; - _showUserStateIcons = bufferSettings.showUserStateIcons(); -}