summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-03-01 08:46:05 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-03-01 15:03:53 +0000
commit0ff8b0eaee762fa34282e8799417e2dfbba8cd38 (patch)
tree41eb28d0270dcef1ac0c4cf36bf2f01bd19a49f5
parent216b560023c23b85e906350e1acfae6985b043fd (diff)
downloadqttools-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.cpp9
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)