Make the style engine fix a little less obscure by copying the string explicitely...
[quassel.git] / src / uisupport / nickviewfilter.cpp
index 993bac0..e4955ac 100644 (file)
@@ -29,8 +29,9 @@
 /******************************************************************************************
  * NickViewFilter
  ******************************************************************************************/
-NickViewFilter::NickViewFilter(NetworkModel *parent)
-  : QSortFilterProxyModel(parent)
+NickViewFilter::NickViewFilter(const BufferId &bufferId, NetworkModel *parent)
+  : QSortFilterProxyModel(parent),
+    _bufferId(bufferId)
 {
   setSourceModel(parent);
   setDynamicSortFilter(true);
@@ -42,6 +43,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 {
@@ -57,3 +64,13 @@ QVariant NickViewFilter::foreground(const QModelIndex &index) const {
   // FIXME:: make colors configurable;
   // FIXME: use the style interface instead of qsettings
 }
+
+
+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>() == _bufferId);
+}