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-02-15 07:54:58 +0100
commita616f9a3f24f25f5fe67be2a4b276395e12a1ada (patch)
tree61a3caf8cda73d67ce806311019c48bf5a03ee18
parent9ca822277996236fc2ad8a539a1ee358aa61738e (diff)
Qt Designer/Windows: Fix crash when instantiating QQuickWidget
QQuickWidget requires OpenGL RHI. Warn and disable it when another API is used. 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.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/designer/src/plugins/qquickwidget/qquickwidget_plugin.cpp b/src/designer/src/plugins/qquickwidget/qquickwidget_plugin.cpp
index 8e1721a93..4e51128ad 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,13 @@ 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("\
<ui language=\"c++\">\
<widget class=\"QQuickWidget\" name=\"quickWidget\">\