diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-03-01 08:46:05 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2023-03-01 15:03:53 +0000 |
commit | 0ff8b0eaee762fa34282e8799417e2dfbba8cd38 (patch) | |
tree | 41eb28d0270dcef1ac0c4cf36bf2f01bd19a49f5 | |
parent | 216b560023c23b85e906350e1acfae6985b043fd (diff) | |
download | qttools-0ff8b0eaee762fa34282e8799417e2dfbba8cd38.tar.gz |
Qt Designer: Fix a crash with main windows with no central widgets
In the container extension for QMainWindow, check if the central
widget is actually a managed widget.
Fixes: QTBUG-111603
Change-Id: I50161a386084bc90d695461149486f3a7415e317
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
(cherry picked from commit 177c702534a6e43d4bde03433b24c397e2c12329)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/designer/src/components/formeditor/qmainwindow_container.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/designer/src/components/formeditor/qmainwindow_container.cpp b/src/designer/src/components/formeditor/qmainwindow_container.cpp index e25dcb36c..d4bd19d49 100644 --- a/src/designer/src/components/formeditor/qmainwindow_container.cpp +++ b/src/designer/src/components/formeditor/qmainwindow_container.cpp @@ -30,15 +30,14 @@ int QMainWindowContainer::count() const QWidget *QMainWindowContainer::widget(int index) const { - if (index == -1) - return nullptr; - - return m_widgets.at(index); + return m_widgets.value(index, nullptr); } int QMainWindowContainer::currentIndex() const { - return m_mainWindow->centralWidget() ? 0 : -1; + // QTBUG-111603, handle plugins with unmanaged central widgets + auto *cw = m_mainWindow->centralWidget(); + return cw != nullptr && m_widgets.contains(cw) ? 0 : -1; } void QMainWindowContainer::setCurrentIndex(int index) |