The model has a large data set of datetime values (spanning several months). Each of the three filter proxies has a small date range (one day, one week and one month) that each uses in filterAcceptsRow() to filter and update three different windows

Currently when I modify a narrow date range in the model and emit layoutChanged(), all three filter proxies respond and re-layout which is noticeably slow. This is wasteful when one or more of them of them are well outside the range modified. I tried to send a custom signal instead with the modified date range and in each proxy trigger layoutChanged manually if the modified range/proxy range overlap, but that doesn't work.

I also tried using dataChanged( startIndex, endIndex ) but it did not prevent out-of-range proxies from updating. I think dataChanged() applies when the data changed is a subset of the filter proxy range, not out of range altogether.

I've done a lot of searching and found no ideas so far. Anyone else worked with this problem?