diff options
author | Jochen Becher <jochen_becher@gmx.de> | 2017-12-23 20:16:01 +0100 |
---|---|---|
committer | Jochen Becher <jochen_becher@gmx.de> | 2018-01-09 14:22:29 +0000 |
commit | a3f4a6baa64045b628bed3b09548563b5b79c8c3 (patch) | |
tree | 8823013aa26f47ab66a464a2838fc1d708d07273 /src/libs/modelinglib | |
parent | 4be71d31794ec5270b24f8cb275d25651b22c7b5 (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.cpp | 11 | ||||
-rw-r--r-- | src/libs/modelinglib/qmt/diagram_scene/items/swimlaneitem.h | 1 |
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 |