[Interest] Depth-first filtering for QAbstractProxyModel
Thompson, Adam B.
thompsonab at ornl.gov
Tue Sep 6 21:20:33 CEST 2016
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160906/9418ea12/attachment.html>
More information about the Interest
mailing list