aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2025-06-25 15:55:35 +0200
committerUlf Hermann <ulf.hermann@qt.io>2025-06-27 13:30:11 +0200
commitfc0bf5a9fd077da6e5d0943d1edae0140ea23a10 (patch)
treed002b969a6099bc9f8b8ee89ff7ca07c6b37b73b /src
parent182bb9d04d9df1d70ff379bbd70ae11bb45f80dc (diff)
Templates: Disconnect menu bar items when clearing
Otherwise we get change notifications for half-dead change listeners and subsequent crashes. Pick-to: 6.10 6.9 6.8 6.5 Task-number: QTBUG-137554 Change-Id: I194ca0f8c3a540b1bfc41fa969d0cd3b9e6c24e4 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/quicktemplates/qquickmenubar.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/quicktemplates/qquickmenubar.cpp b/src/quicktemplates/qquickmenubar.cpp
index 361eaccc1b..3320fe85bb 100644
--- a/src/quicktemplates/qquickmenubar.cpp
+++ b/src/quicktemplates/qquickmenubar.cpp
@@ -339,7 +339,8 @@ QQuickMenu *QQuickMenuBarPrivate::menus_at(QQmlListProperty<QQuickMenu> *prop, q
void QQuickMenuBarPrivate::menus_clear(QQmlListProperty<QQuickMenu> *prop)
{
QQuickMenuBar *menuBar = static_cast<QQuickMenuBar *>(prop->object);
- QQuickMenuBarPrivate::get(menuBar)->contentModel->clear();
+ for (int count = menuBar->count(); count > 0; count = menuBar->count())
+ menuBar->takeMenu(count - 1);
}
QPalette QQuickMenuBarPrivate::defaultPalette() const