Style NickView via UiStyle
[quassel.git] / src / uisupport / nickviewfilter.cpp
index 959ae9c..ea33660 100644 (file)
 #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();
-}