aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/modelinglib
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/modelinglib')
-rw-r--r--src/libs/modelinglib/qmt/diagram_scene/diagramscenemodel.cpp4
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);
}