mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
statistics: show selected dives in scatter plot
As a visual feedback, show the selected dives in the scatter plot. React to application-wide selection changes. Currently, the dive list is deactivated while in statistics mode, but that may change. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
5c098eea29
commit
d85b321784
9 changed files with 68 additions and 8 deletions
|
@ -27,6 +27,7 @@ ScatterSeries::~ScatterSeries()
|
|||
ScatterSeries::Item::Item(StatsView &view, ScatterSeries *series, dive *d, double pos, double value) :
|
||||
item(view.createChartItem<ChartScatterItem>(ChartZValue::Series)),
|
||||
d(d),
|
||||
selected(d->selected),
|
||||
pos(pos),
|
||||
value(value)
|
||||
{
|
||||
|
@ -40,7 +41,11 @@ void ScatterSeries::Item::updatePosition(ScatterSeries *series)
|
|||
|
||||
void ScatterSeries::Item::highlight(bool highlight)
|
||||
{
|
||||
item->setHighlight(highlight);
|
||||
ChartScatterItem::Highlight status = d->selected ?
|
||||
ChartScatterItem::Highlight::Selected : ChartScatterItem::Highlight::Unselected;
|
||||
if (highlight)
|
||||
status = ChartScatterItem::Highlight::Highlighted;
|
||||
item->setHighlight(status);
|
||||
}
|
||||
|
||||
void ScatterSeries::append(dive *d, double pos, double value)
|
||||
|
@ -164,3 +169,15 @@ void ScatterSeries::unhighlight()
|
|||
items[idx].highlight(false);
|
||||
highlighted.clear();
|
||||
}
|
||||
|
||||
void ScatterSeries::divesSelected(const QVector<dive *> &)
|
||||
{
|
||||
for (Item &item: items) {
|
||||
if (item.selected != item.d->selected) {
|
||||
item.selected = item.d->selected;
|
||||
int idx = &item - &items[0];
|
||||
bool highlight = std::find(highlighted.begin(), highlighted.end(), idx) != highlighted.end();
|
||||
item.highlight(highlight);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue