summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2021-02-06 19:07:13 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2021-06-14 08:39:35 +0200
commit482125b15648944d18ae120644f9ffe11b327ff2 (patch)
tree4e5041438e2286e42195c3f49dd2a0dd4033d2d3
parent607c6132ddbc9e815d31a5b4eac8a105c26a7163 (diff)
Qt Designer/Windows: Fix crash when instantiating QQuickWidget
QQuickWidget requires OpenGL RHI. Warn and disable it when another API is used. Fixes: QTBUG-94345 Change-Id: I92b273957ace41d2f5d714ca87ea47c32d3922ec Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> (cherry picked from commit 2adb1111e2320b53879600fb932a490b3ab0d332)
-rw-r--r--src/designer/src/plugins/qquickwidget/qquickwidget_plugin.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/designer/src/plugins/qquickwidget/qquickwidget_plugin.cpp b/src/designer/src/plugins/qquickwidget/qquickwidget_plugin.cpp
index b3ea2e964..cce05023a 100644
--- a/src/designer/src/plugins/qquickwidget/qquickwidget_plugin.cpp
+++ b/src/designer/src/plugins/qquickwidget/qquickwidget_plugin.cpp
@@ -35,6 +35,9 @@
#include <QtCore/qdebug.h>
#include <QtQuickWidgets/qquickwidget.h>
+#include <QtQuick/QQuickWindow>
+
+
QT_BEGIN_NAMESPACE
QQuickWidgetPlugin::QQuickWidgetPlugin(QObject *parent)
@@ -100,6 +103,12 @@ void QQuickWidgetPlugin::initialize(QDesignerFormEditorInterface * /*core*/)
QString QQuickWidgetPlugin::domXml() const
{
+ const auto graphicsApi = QQuickWindow::graphicsApi();
+ if (graphicsApi != QSGRendererInterface::OpenGLRhi) {
+ qWarning("Qt Designer: The QQuickWidget custom widget plugin is disabled because it requires OpenGL RHI (current: %d).",
+ int(graphicsApi));
+ return {};
+ }
return QStringLiteral(R"(
<ui language="c++">
<widget class="QQuickWidget" name="quickWidget">