aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/modelinglib
diff options
context:
space:
mode:
authorJochen Becher <jochen_becher@gmx.de>2017-12-23 20:16:01 +0100
committerJochen Becher <jochen_becher@gmx.de>2018-01-09 14:22:29 +0000
commita3f4a6baa64045b628bed3b09548563b5b79c8c3 (patch)
tree8823013aa26f47ab66a464a2838fc1d708d07273 /src/libs/modelinglib
parent4be71d31794ec5270b24f8cb275d25651b22c7b5 (diff)
ModelEditor: Implement modifier to move swimlanes only
Holding down Shift + Control while selecting a swimlane will not select the elements below/right. Change-Id: Ibb594add3389cf559e635f5cce9ba6c6948684ec Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Diffstat (limited to 'src/libs/modelinglib')
-rw-r--r--src/libs/modelinglib/qmt/diagram_scene/items/swimlaneitem.cpp11
-rw-r--r--src/libs/modelinglib/qmt/diagram_scene/items/swimlaneitem.h1
2 files changed, 8 insertions, 4 deletions
diff --git a/src/libs/modelinglib/qmt/diagram_scene/items/swimlaneitem.cpp b/src/libs/modelinglib/qmt/diagram_scene/items/swimlaneitem.cpp
index ee8b791f6aa..6d38cc71ef2 100644
--- a/src/libs/modelinglib/qmt/diagram_scene/items/swimlaneitem.cpp
+++ b/src/libs/modelinglib/qmt/diagram_scene/items/swimlaneitem.cpp
@@ -143,10 +143,12 @@ void SwimlaneItem::setFocusSelected(bool focusSelected)
QRectF SwimlaneItem::getSecondarySelectionBoundary()
{
QRectF boundary;
- if (m_swimlane->isHorizontal())
- boundary = QRectF(-SWIMLANE_LENGTH/2, pos().y(), SWIMLANE_LENGTH, SWIMLANE_LENGTH);
- else
- boundary = QRectF(pos().x(), -SWIMLANE_LENGTH/2, SWIMLANE_LENGTH, SWIMLANE_LENGTH);
+ if (m_selectSecondary) {
+ if (m_swimlane->isHorizontal())
+ boundary = QRectF(-SWIMLANE_LENGTH/2, pos().y(), SWIMLANE_LENGTH, SWIMLANE_LENGTH);
+ else
+ boundary = QRectF(pos().x(), -SWIMLANE_LENGTH/2, SWIMLANE_LENGTH, SWIMLANE_LENGTH);
+ }
return boundary;
}
@@ -171,6 +173,7 @@ void SwimlaneItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
if (event->button() == Qt::LeftButton || event->button() == Qt::RightButton) {
bool multiSelect = (event->modifiers() & Qt::ControlModifier) != 0;
+ m_selectSecondary = (event->modifiers() & (Qt::ControlModifier|Qt::ShiftModifier)) != (Qt::ControlModifier|Qt::ShiftModifier);
m_diagramSceneModel->selectItem(this, multiSelect);
}
}
diff --git a/src/libs/modelinglib/qmt/diagram_scene/items/swimlaneitem.h b/src/libs/modelinglib/qmt/diagram_scene/items/swimlaneitem.h
index bae23feaf11..6e20f6c1322 100644
--- a/src/libs/modelinglib/qmt/diagram_scene/items/swimlaneitem.h
+++ b/src/libs/modelinglib/qmt/diagram_scene/items/swimlaneitem.h
@@ -82,6 +82,7 @@ private:
QGraphicsRectItem *m_selectionMarker = nullptr;
bool m_isUpdating = false;
bool m_secondarySelected = false;
+ bool m_selectSecondary = false;
};
} // namespace qmt