diff options
| author | Ulf Hermann <ulf.hermann@qt.io> | 2025-06-25 15:55:35 +0200 |
|---|---|---|
| committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2025-07-01 10:06:12 +0000 |
| commit | 00a986e3963ce47822ce893019bfdc8655297558 (patch) | |
| tree | 1151225bdc9760bdd40552a0effe28fecc58a9d2 /src | |
| parent | 20eed423f53f8a0c9866d059bff71869364fadc5 (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.cpp | 3 |
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 |
