#include #include "collectionwidgetproxy.h" CollectionWidgetProxy::CollectionWidgetProxy(QObject *parent) : QSortFilterProxyModel(parent) { } bool CollectionWidgetProxy::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const { const QStandardItemModel *srcM = qobject_cast(sourceModel()); QModelIndex rootIdx = srcM->invisibleRootItem()->index(); QModelIndex curIdx = srcM->index(source_row, 0, source_parent); if(curIdx == rootIdx){ return true; } while(curIdx.parent() != rootIdx){ curIdx = curIdx.parent(); } QString cur = curIdx.data().toString(); return cur.contains(filterRegExp()); }