From 114eac810e1159fab7cc00834f380c909dd51a50 Mon Sep 17 00:00:00 2001 From: Marcus Eggenberger Date: Sun, 11 Nov 2007 22:23:07 +0000 Subject: [PATCH 1/1] obviously calling QSortFilterProxyModell::invalidate() isn't such a good Idea on Mac OS... so we now use a wrapper slot to call only QSortFilterProxyModel::invalidateFilter() --- src/qtui/bufferviewfilter.cpp | 29 +++++++++++++++++------------ src/qtui/bufferviewfilter.h | 3 ++- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/qtui/bufferviewfilter.cpp b/src/qtui/bufferviewfilter.cpp index 656fd5f0..e76a400a 100644 --- a/src/qtui/bufferviewfilter.cpp +++ b/src/qtui/bufferviewfilter.cpp @@ -32,7 +32,12 @@ BufferViewFilter::BufferViewFilter(QAbstractItemModel *model, const Modes &filte setSortCaseSensitivity(Qt::CaseInsensitive); // I have this feeling that this resulted in a fuckup once... no clue though right now and invalidateFilter isn't a slot -.- - connect(model, SIGNAL(invalidateFilter()), this, SLOT(invalidate())); + //connect(model, SIGNAL(invalidateFilter()), this, SLOT(invalidate())); + connect(model, SIGNAL(invalidateFilter()), this, SLOT(invalidateFilter_())); +} + +void BufferViewFilter::invalidateFilter_() { + QSortFilterProxyModel::invalidateFilter(); } Qt::ItemFlags BufferViewFilter::flags(const QModelIndex &index) const { @@ -101,17 +106,17 @@ bool BufferViewFilter::filterAcceptBuffer(const QModelIndex &source_bufferIndex) if((mode & NoServers) && bufferType == Buffer::StatusType) return false; - bool isActive = source_bufferIndex.data(BufferTreeModel::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(); - if(!buffers.contains(bufferuid)) - return false; - } +// bool isActive = source_bufferIndex.data(BufferTreeModel::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(); +// if(!buffers.contains(bufferuid)) +// return false; +// } return true; } diff --git a/src/qtui/bufferviewfilter.h b/src/qtui/bufferviewfilter.h index bd00e41f..c139ecb4 100644 --- a/src/qtui/bufferviewfilter.h +++ b/src/qtui/bufferviewfilter.h @@ -54,7 +54,8 @@ public: public slots: void removeBuffer(const QModelIndex &); - + void invalidateFilter_(); + protected: bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const; bool lessThan(const QModelIndex &, const QModelIndex &) const; -- 2.20.1