nicklist_performance++
authorMarcus Eggenberger <egs@quassel-irc.org>
Thu, 1 May 2008 11:05:34 +0000 (11:05 +0000)
committerMarcus Eggenberger <egs@quassel-irc.org>
Thu, 1 May 2008 11:05:34 +0000 (11:05 +0000)
src/uisupport/nickviewfilter.cpp
src/uisupport/nickviewfilter.h

index 907034d..5332769 100644 (file)
  ***************************************************************************/
 
 #include "nickviewfilter.h"
-
 #include "networkmodel.h"
-
 #include "uisettings.h"
 
-#include <QColor>
-
 /******************************************************************************************
  * NickViewFilter
  ******************************************************************************************/
@@ -37,6 +33,14 @@ 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<QColor>();
+  _FgAwayStatus = s.value("awayStatusFG", QVariant(QColor(Qt::gray))).value<QColor>();
+  // FIXME: use the style interface instead of qsettings
 }
 
 QVariant NickViewFilter::data(const QModelIndex &index, int role) const {
@@ -44,26 +48,12 @@ 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<QColor>();
-  
-  return onlineStatusFG.value<QColor>();
-  
-  // FIXME:: make colors configurable;
-  // FIXME: use the style interface instead of qsettings
+    return _FgAwayStatus;
+  return _FgOnlineStatus;
 }
 
 
index 38b7ca3..534600f 100644 (file)
 #ifndef NICKVIEWFILTER_H
 #define NICKVIEWFILTER_H
 
+#include <QColor>
 #include <QSortFilterProxyModel>
 #include "types.h"
 
 class NetworkModel;
 
 // This is proxymodel is purely for the sorting right now
-// the old nickmodel is stored for future reference in /devnotes
 class NickViewFilter : public QSortFilterProxyModel {
   Q_OBJECT
 
@@ -41,6 +41,10 @@ protected:
 
 private:
   BufferId _bufferId;
+  QColor _FgOnlineStatus;
+  QColor _FgAwayStatus;
+
+  void loadColors();
 };
 
 #endif