All, I co-develop an application that uses a QTreeView to display the hierarchical contents of external files. The contents of the tree can become quite a chore to sift through, so I added a means of filtering via a QSortFilterProxyModel. This works as expected, but the user may want to specify a pattern that matches a node deep in the model’s structure but not any of the node’s ancestors. As such, the breadth-first filtering mechanism provided in QSortFilterProxyModel isn’t appropriate for our needs.
I modified filterAcceptsRow to work in a depth-first manner to verify my desired filtering effect would work, which it does. However, as expected, it yields a huge performance penalty since it performs a depth-first search for each row in the model. This is because the (recursive) depth-first logic is called for the same nodes many times. I added a crude caching scheme which really doesn’t properly mitigate the performance issue. My question: can anyone provide some tips on how to properly subclass QAbstractProxyModel so I can provide some custom depth-first filtering capabilities? (Sorting isn’t really necessary at the moment, really just filtering.) Thanks, Adam Thompson Computer Scientist, Nuclear Engineering Oak Ridge National Laboratory +1.865.241.8062
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest