aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2025-06-25 15:55:35 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2025-07-01 10:06:12 +0000
commit00a986e3963ce47822ce893019bfdc8655297558 (patch)
tree1151225bdc9760bdd40552a0effe28fecc58a9d2 /src
parent20eed423f53f8a0c9866d059bff71869364fadc5 (diff)
Templates: Disconnect menu bar items when clearing
Otherwise we get change notifications for half-dead change listeners and subsequent crashes. Pick-to: 6.8 6.5 Task-number: QTBUG-137554 Change-Id: I194ca0f8c3a540b1bfc41fa969d0cd3b9e6c24e4 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit fc0bf5a9fd077da6e5d0943d1edae0140ea23a10) (cherry picked from commit c4112a6e0da99276b41f88777689c9f750859563) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
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 460fc9d1d3..0d5d23d40c 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