diff options
| author | Ulf Hermann <ulf.hermann@qt.io> | 2025-06-25 15:55:35 +0200 |
|---|---|---|
| committer | Ulf Hermann <ulf.hermann@qt.io> | 2025-06-27 13:30:11 +0200 |
| commit | fc0bf5a9fd077da6e5d0943d1edae0140ea23a10 (patch) | |
| tree | d002b969a6099bc9f8b8ee89ff7ca07c6b37b73b /src | |
| parent | 182bb9d04d9df1d70ff379bbd70ae11bb45f80dc (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.cpp | 3 |
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 |
