summaryrefslogtreecommitdiffstats
path: root/stats/statsview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'stats/statsview.cpp')
-rw-r--r--stats/statsview.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/stats/statsview.cpp b/stats/statsview.cpp
index 88f394550..09a984bdb 100644
--- a/stats/statsview.cpp
+++ b/stats/statsview.cpp
@@ -39,7 +39,6 @@ StatsView::StatsView(QQuickItem *parent) : QQuickItem(parent),
xAxis(nullptr),
yAxis(nullptr),
draggedItem(nullptr),
- shiftSelection(false),
rootNode(nullptr)
{
setFlag(ItemHasContents, true);
@@ -84,10 +83,12 @@ void StatsView::mousePressEvent(QMouseEvent *event)
}
}
- bool shiftPressed = event->modifiers() & Qt::ShiftModifier;
+ SelectionModifier modifier;
+ modifier.shift = (event->modifiers() & Qt::ShiftModifier) != 0;
+ modifier.ctrl = (event->modifiers() & Qt::ControlModifier) != 0;
bool itemSelected = false;
for (auto &series: series)
- itemSelected |= series->selectItemsUnderMouse(pos, shiftPressed);
+ itemSelected |= series->selectItemsUnderMouse(pos, modifier);
// The user clicked in "empty" space. If there is a series supporting lasso-select,
// got into lasso mode. For now, we only support a rectangular lasso.
@@ -98,8 +99,8 @@ void StatsView::mousePressEvent(QMouseEvent *event)
deleteChartItem(selectionRect); // Ooops. Already a selection in place.
dragStartMouse = pos;
selectionRect = createChartItem<ChartRectLineItem>(ChartZValue::Selection, selectionLassoColor, selectionLassoWidth);
- shiftSelection = shiftPressed;
- oldSelection = shiftPressed ? getDiveSelection() : std::vector<dive *>();
+ selectionModifier = modifier;
+ oldSelection = modifier.ctrl ? getDiveSelection() : std::vector<dive *>();
grabMouse();
setKeepMouseGrab(true); // don't allow Qt to steal the grab
update();
@@ -400,7 +401,7 @@ void StatsView::mouseMoveEvent(QMouseEvent *event)
fabs(p2.x() - p1.x()), fabs(p2.y() - p1.y()));
for (auto &series: series) {
if (series->supportsLassoSelection())
- series->selectItemsInRect(rect, shiftSelection, oldSelection);
+ series->selectItemsInRect(rect, selectionModifier, oldSelection);
}
update();
}