diff options
Diffstat (limited to 'src/libs/modelinglib')
-rw-r--r-- | src/libs/modelinglib/qmt/diagram_scene/diagramscenemodel.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libs/modelinglib/qmt/diagram_scene/diagramscenemodel.cpp b/src/libs/modelinglib/qmt/diagram_scene/diagramscenemodel.cpp index 2333bc5154e..de8b82de20e 100644 --- a/src/libs/modelinglib/qmt/diagram_scene/diagramscenemodel.cpp +++ b/src/libs/modelinglib/qmt/diagram_scene/diagramscenemodel.cpp @@ -507,7 +507,9 @@ void DiagramSceneModel::selectItem(QGraphicsItem *item, bool multiSelect) { if (!multiSelect) { if (!item->isSelected()) { - for (QGraphicsItem *selectedItem : std::as_const(m_selectedItems)) { + // We have to create a copy since "setSelected" may modify m_selectedItems + const QSet<QGraphicsItem *> copy = m_selectedItems; + for (QGraphicsItem *selectedItem : copy) { if (selectedItem != item) selectedItem->setSelected(false); } |