aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/modelinglib
diff options
context:
space:
mode:
authorMarcus Tillmanns <marcus.tillmanns@qt.io>2024-03-07 13:00:21 +0100
committerMarcus Tillmanns <marcus.tillmanns@qt.io>2024-03-07 12:16:31 +0000
commit22f41fb751cd5b1b136e0c7fa15d8e3163bc912e (patch)
tree76c09edd2984742df898ef969efed2b93ac5a6ef /src/libs/modelinglib
parentc936fc5982f5c11e0d5c411b366e5c7d6ac6bbd2 (diff)
ModelEditor: Fix crash when selecting items
Fixes: QTCREATORBUG-30413 Change-Id: Ie637e20d6308da2e1afcf3ff710f29c6a1695d58 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
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 2333bc5154..de8b82de20 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);
}