diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2018-12-16 20:43:01 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-01-19 13:59:24 -0800 |
commit | 36fa27050c749717e186c8564d88b11bd53a96c8 (patch) | |
tree | 93a3c0248a4406f839cc71455c565c66fe583cf9 | |
parent | cc0c4ab2f16612a145064887614e3f86fe125209 (diff) | |
download | subsurface-36fa27050c749717e186c8564d88b11bd53a96c8.tar.gz |
Filter: update filterData directly without copying
In FilterWidget2::updateFilter() a new FilterData object is generated
and then copied onto the filterData member variable. Instead, modify
filterData directly. This seems also more logical from a semantic
point of view: Do we want to reset fields that were not set by the
user?
Contains trivial whitespace fix.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
-rw-r--r-- | desktop-widgets/filterwidget2.cpp | 41 | ||||
-rw-r--r-- | qt-models/filtermodels.cpp | 2 | ||||
-rw-r--r-- | qt-models/filtermodels.h | 2 |
3 files changed, 21 insertions, 24 deletions
diff --git a/desktop-widgets/filterwidget2.cpp b/desktop-widgets/filterwidget2.cpp index fdf2bb843..4b4e722fe 100644 --- a/desktop-widgets/filterwidget2.cpp +++ b/desktop-widgets/filterwidget2.cpp @@ -75,29 +75,26 @@ FilterWidget2::FilterWidget2(QWidget* parent) void FilterWidget2::updateFilter() { - FilterData data; + filterData.validFilter = true; + filterData.minVisibility = ui->minVisibility->currentStars(); + filterData.maxVisibility = ui->maxVisibility->currentStars(); + filterData.minRating = ui->minRating->currentStars(); + filterData.maxRating = ui->maxRating->currentStars(); + filterData.minWaterTemp = ui->minWaterTemp->value(); + filterData.maxWaterTemp = ui->maxWaterTemp->value(); + filterData.minAirTemp = ui->minAirTemp->value(); + filterData.maxWaterTemp = ui->maxWaterTemp->value(); + filterData.from = ui->from->dateTime(); + filterData.to = ui->to->dateTime(); + filterData.tags = ui->tags->text().split(",", QString::SkipEmptyParts); + filterData.people = ui->people->text().split(",", QString::SkipEmptyParts); + filterData.location = ui->location->text().split(",", QString::SkipEmptyParts); + filterData.equipment = ui->equipment->text().split(",", QString::SkipEmptyParts); + filterData.invertFilter = ui->invertFilter->isChecked(); + filterData.logged = ui->logged->isChecked(); + filterData.planned = ui->planned->isChecked(); - data.validFilter = true; - data.minVisibility = ui->minVisibility->currentStars(); - data.maxVisibility = ui->maxVisibility->currentStars(); - data.minRating = ui->minRating->currentStars(); - data.maxRating = ui->maxRating->currentStars(); - data.minWaterTemp = ui->minWaterTemp->value(); - data.maxWaterTemp = ui->maxWaterTemp->value(); - data.minAirTemp = ui->minAirTemp->value(); - data.maxWaterTemp = ui->maxWaterTemp->value(); - data.from = ui->from->dateTime(); - data.to = ui->to->dateTime(); - data.tags = ui->tags->text().split(",", QString::SkipEmptyParts); - data.people = ui->people->text().split(",", QString::SkipEmptyParts); - data.location = ui->location->text().split(",", QString::SkipEmptyParts); - data.equipment = ui->equipment->text().split(",", QString::SkipEmptyParts); - data.invertFilter = ui->invertFilter->isChecked(); - data.logged = ui->logged->isChecked(); - data.planned = ui->planned->isChecked(); - - filterData = data; - filterDataChanged(data); + filterDataChanged(filterData); } void FilterWidget2::updateLogged(int value) { diff --git a/qt-models/filtermodels.cpp b/qt-models/filtermodels.cpp index 8609243b2..719467fd2 100644 --- a/qt-models/filtermodels.cpp +++ b/qt-models/filtermodels.cpp @@ -228,7 +228,7 @@ bool MultiFilterSortModel::lessThan(const QModelIndex &i1, const QModelIndex &i2 return DiveTripModelBase::instance()->lessThan(i1, i2); } -void MultiFilterSortModel::filterDataChanged(const FilterData& data) +void MultiFilterSortModel::filterDataChanged(const FilterData &data) { filterData = data; myInvalidate(); diff --git a/qt-models/filtermodels.h b/qt-models/filtermodels.h index b16ce4a3b..5cb130522 100644 --- a/qt-models/filtermodels.h +++ b/qt-models/filtermodels.h @@ -51,7 +51,7 @@ slots: void stopFilterDiveSite(); void filterChanged(const QModelIndex &from, const QModelIndex &to, const QVector<int> &roles); void resetModel(DiveTripModelBase::Layout layout); - void filterDataChanged(const FilterData& data); + void filterDataChanged(const FilterData &data); signals: void filterFinished(); |