mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
map: use value semantics for MapLocation
This makes memory management more simple, as not explicit deletion is necessary. A rather large commit, because changing QVector<> to std::vector<> is propagated up the call chain. Adds a new range_contains() helper function for collection types such as std::vector<>. I didn't want to call it contains(), since we already have a contains function for strings and let's keep argument overloading simple. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
e39dea3d68
commit
6b835710bc
17 changed files with 84 additions and 75 deletions
|
@ -22,6 +22,7 @@
|
|||
#include "commands/command_base.h"
|
||||
#include "core/errorhelper.h"
|
||||
#include "core/qthelper.h"
|
||||
#include "core/range.h"
|
||||
#include "core/trip.h"
|
||||
#include "desktop-widgets/divelistview.h"
|
||||
#include "core/metrics.h"
|
||||
|
@ -439,13 +440,13 @@ void DiveListView::selectDiveSitesOnMap(const std::vector<dive *> &dives)
|
|||
// the dive-site selection is controlled by the filter not
|
||||
// by the selected dives.
|
||||
if (!DiveFilter::instance()->diveSiteMode()) {
|
||||
QVector<dive_site *> selectedSites;
|
||||
std::vector<dive_site *> selectedSites;
|
||||
selectedSites.reserve(dives.size());
|
||||
for (dive *d: dives) {
|
||||
if (!d->hidden_by_filter && d->dive_site && !selectedSites.contains(d->dive_site))
|
||||
if (!d->hidden_by_filter && d->dive_site && !range_contains(selectedSites, d->dive_site))
|
||||
selectedSites.push_back(d->dive_site);
|
||||
}
|
||||
MapWidget::instance()->setSelected(selectedSites);
|
||||
MapWidget::instance()->setSelected(std::move(selectedSites));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue