Cleanup: Remove MultiFilterSortModel::model

The source-model was cached in MultiFilterSortModel. For simplicity,
remove that and simply access via DiveTripModel::instance(). There
is only one instance where the cached model was used: when comparing
items for sorting. Thus, in indirection is added in a "hot" path.
Nevertheless, this will dwarf against the cost of string comparison.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2018-12-24 10:14:37 +01:00 committed by Dirk Hohndel
parent 4d06ddd723
commit b5704ddb57
2 changed files with 3 additions and 5 deletions

View file

@ -84,12 +84,11 @@ MultiFilterSortModel *MultiFilterSortModel::instance()
MultiFilterSortModel::MultiFilterSortModel(QObject *parent) : QSortFilterProxyModel(parent),
divesDisplayed(0),
curr_dive_site(NULL),
model(DiveTripModel::instance())
curr_dive_site(NULL)
{
setFilterKeyColumn(-1); // filter all columns
setFilterCaseSensitivity(Qt::CaseInsensitive);
setSourceModel(model);
setSourceModel(DiveTripModel::instance());
}
void MultiFilterSortModel::setLayout(DiveTripModel::Layout layout)
@ -219,7 +218,7 @@ void MultiFilterSortModel::stopFilterDiveSite()
bool MultiFilterSortModel::lessThan(const QModelIndex &i1, const QModelIndex &i2) const
{
// Hand sorting down to the source model.
return model->lessThan(i1, i2);
return DiveTripModel::instance()->lessThan(i1, i2);
}
void MultiFilterSortModel::filterDataChanged(const FilterData& data)

View file

@ -58,7 +58,6 @@ signals:
private:
MultiFilterSortModel(QObject *parent = 0);
struct dive_site *curr_dive_site;
DiveTripModel *model;
FilterData filterData;
};