/***************************************************************************
- * Copyright (C) 2005-07 by the Quassel IRC Team *
+ * Copyright (C) 2005-08 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "bufferviewfilter.h"
+#include <QColor>
+
+#include "networkmodel.h"
+
/*****************************************
* The Filter for the Tree View
*****************************************/
if(parent != QModelIndex())
return QSortFilterProxyModel::dropMimeData(data, action, row, column, parent);
- if(!BufferTreeModel::mimeContainsBufferList(data))
+ if(!NetworkModel::mimeContainsBufferList(data))
return false;
- QList< QPair<uint, uint> > bufferList = BufferTreeModel::mimeDataToBufferList(data);
+ QList< QPair<uint, uint> > bufferList = NetworkModel::mimeDataToBufferList(data);
uint netId, bufferId;
for(int i = 0; i < bufferList.count(); i++) {
return; // only child elements can be deleted
bool lastBuffer = (rowCount(index.parent()) == 1);
- uint netId = index.data(BufferTreeModel::NetworkIdRole).toUInt();
- uint bufferuid = index.data(BufferTreeModel::BufferUidRole).toUInt();
+ uint netId = index.data(NetworkModel::NetworkIdRole).toUInt();
+ uint bufferuid = index.data(NetworkModel::BufferUidRole).toUInt();
if(buffers.contains(bufferuid)) {
buffers.remove(bufferuid);
bool BufferViewFilter::filterAcceptBuffer(const QModelIndex &source_bufferIndex) const {
- Buffer::Type bufferType = (Buffer::Type) source_bufferIndex.data(BufferTreeModel::BufferTypeRole).toInt();
+ BufferItem::Type bufferType = (BufferItem::Type) source_bufferIndex.data(NetworkModel::BufferTypeRole).toInt();
- if((mode & NoChannels) && bufferType == Buffer::ChannelType)
+ if((mode & NoChannels) && bufferType == BufferItem::ChannelType)
return false;
- if((mode & NoQueries) && bufferType == Buffer::QueryType)
+ if((mode & NoQueries) && bufferType == BufferItem::QueryType)
return false;
- if((mode & NoServers) && bufferType == Buffer::StatusType)
+ if((mode & NoServers) && bufferType == BufferItem::StatusType)
return false;
-// bool isActive = source_bufferIndex.data(BufferTreeModel::BufferActiveRole).toBool();
+// bool isActive = source_bufferIndex.data(NetworkModel::BufferActiveRole).toBool();
// if((mode & NoActive) && isActive)
// return false;
// if((mode & NoInactive) && !isActive)
// return false;
if((mode & FullCustom)) {
- uint bufferuid = source_bufferIndex.data(BufferTreeModel::BufferUidRole).toUInt();
+ uint bufferuid = source_bufferIndex.data(NetworkModel::BufferUidRole).toUInt();
return buffers.contains(bufferuid);
}
}
bool BufferViewFilter::filterAcceptNetwork(const QModelIndex &source_index) const {
- uint net = source_index.data(BufferTreeModel::NetworkIdRole).toUInt();
+ uint net = source_index.data(NetworkModel::NetworkIdRole).toUInt();
return !((mode & (SomeNets | FullCustom)) && !networks.contains(net));
}
}
bool BufferViewFilter::lessThan(const QModelIndex &left, const QModelIndex &right) const {
- int lefttype = left.data(BufferTreeModel::BufferTypeRole).toInt();
- int righttype = right.data(BufferTreeModel::BufferTypeRole).toInt();
+ int lefttype = left.data(NetworkModel::BufferTypeRole).toInt();
+ int righttype = right.data(NetworkModel::BufferTypeRole).toInt();
if(lefttype != righttype)
return lefttype < righttype;
return QSortFilterProxyModel::lessThan(left, right);
}
+QVariant BufferViewFilter::data(const QModelIndex &index, int role) const {
+ if(role == Qt::ForegroundRole)
+ return foreground(index);
+ else
+ return QSortFilterProxyModel::data(index, role);
+}
+
+QVariant BufferViewFilter::foreground(const QModelIndex &index) const {
+ if(!index.data(NetworkModel::ItemActiveRole).toBool())
+ return QColor(Qt::gray);
+
+ // FIXME:: show colors depending on activity level
+ return QColor(Qt::black);
+}