subsurface/qt-models
Berthold Stoeger 979f81f409 Filter: separate backend from frontend logic
The filter code was an unholy intermixture of backend and frontend
logic, which made it hard to access it from outside of the UI.
Notably, it expected that Qt would call filterAcceptsRow on all rows.
For trip-view, apparently the filter functions were called twice
(once for filtering the trip, then for filtering the individual dives).

Make the filtering explicit, by calling showDive() for all dives in
MultiFilterSortModel::myInvalidate(), setting the hidden_by_filter
flags accordingly and ultimately invalidating the filter.

The UI code only accesses the hidden_by_filter flag set previously.

The "justCleared" flag can then be removed, since accessing the filter
does not have side effects. Moreover, there is no noticeable performance
gain by returning out early.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-08-16 08:07:25 +02:00
..
cleanertablemodel.cpp qt-models: Change Q_UNUSED to no parameter name 2018-05-21 12:48:04 -07:00
cleanertablemodel.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00
CMakeLists.txt Corrected file name "weigthsysteminfomodel" to "weightsysteminfomodel" 2018-05-11 02:23:51 +03:00
completionmodels.cpp Add SPDX header to Qt models 2017-04-29 13:32:55 -07:00
completionmodels.h Add SPDX header to Qt models 2017-04-29 13:32:55 -07:00
cylindermodel.cpp Localization: remove gettextFromC::instance() 2018-06-24 20:31:14 +02:00
cylindermodel.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00
divecomputerextradatamodel.cpp qt-models: Change Q_UNUSED to no parameter name 2018-05-21 12:48:04 -07:00
divecomputerextradatamodel.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00
divecomputermodel.cpp Dive computers: turn QMultiMap into sorted vector 2018-06-17 06:53:13 +09:00
divecomputermodel.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00
diveimportedmodel.cpp Cleanup: fold core/helpers.h into core/qthelper.h 2018-06-04 08:50:10 -07:00
diveimportedmodel.h Core: remove dive.h from files that don't need it 2018-05-14 10:13:39 -07:00
divelistmodel.cpp QML UI: correctly update the model 2018-06-25 20:20:35 +08:00
divelistmodel.h Cleanup: fold core/helpers.h into core/qthelper.h 2018-06-04 08:50:10 -07:00
divelocationmodel.cpp Localization: remove gettextFromC::instance() 2018-06-24 20:31:14 +02:00
divelocationmodel.h mobile cleanup: restyle construction of locationlist 2018-01-31 14:48:14 +01:00
divepicturemodel.cpp Dive media: put duration on video thumbnails 2018-07-28 15:31:25 -07:00
divepicturemodel.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00
diveplannermodel.cpp core: activate qPrefDivePlanner 2018-08-08 14:29:50 +02:00
diveplannermodel.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00
diveplotdatamodel.cpp qt-models: Change Q_UNUSED to no parameter name 2018-05-21 12:48:04 -07:00
diveplotdatamodel.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00
divetripmodel.cpp Cleanup: remove DiveListView::fixMessyQtModelBehaviour() 2018-07-30 12:21:17 -07:00
divetripmodel.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00
filtermodels.cpp Filter: separate backend from frontend logic 2018-08-16 08:07:25 +02:00
filtermodels.h Filter: separate backend from frontend logic 2018-08-16 08:07:25 +02:00
gpslistmodel.cpp Cleanup: fold core/helpers.h into core/qthelper.h 2018-06-04 08:50:10 -07:00
gpslistmodel.h Unused code: GpsListModel::addGpsFix() 2018-01-10 16:45:42 +01:00
maplocationmodel.cpp qt-models: Change Q_UNUSED to no parameter name 2018-05-21 12:48:04 -07:00
maplocationmodel.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00
messagehandlermodel.cpp qt-models: Change Q_UNUSED to no parameter name 2018-05-21 12:48:04 -07:00
messagehandlermodel.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00
models.cpp Change from gettextFromC::instance()->tr() to gettextFromC::tr(); 2018-06-18 07:42:39 +02:00
models.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00
ssrfsortfilterproxymodel.cpp Add SPDX header to Qt models 2017-04-29 13:32:55 -07:00
ssrfsortfilterproxymodel.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00
tankinfomodel.cpp equipment: sanitize 'tank_info' loop limits 2018-06-20 09:30:58 +09:00
tankinfomodel.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00
treemodel.cpp qt-models: Change Q_UNUSED to no parameter name 2018-05-21 12:48:04 -07:00
treemodel.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00
weightmodel.cpp equipment: sanitize 'ws_info' loop limits 2018-06-20 09:30:58 +09:00
weightmodel.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00
weightsysteminfomodel.cpp equipment: sanitize 'ws_info' loop limits 2018-06-20 09:30:58 +09:00
weightsysteminfomodel.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00
yearlystatisticsmodel.cpp Cleanup: fold core/helpers.h into core/qthelper.h 2018-06-04 08:50:10 -07:00
yearlystatisticsmodel.h Cleanup: remove all override modifiers 2018-08-01 06:30:00 -07:00