diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-02-06 19:07:13 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-06-14 08:39:35 +0200 |
commit | 482125b15648944d18ae120644f9ffe11b327ff2 (patch) | |
tree | 4e5041438e2286e42195c3f49dd2a0dd4033d2d3 | |
parent | 607c6132ddbc9e815d31a5b4eac8a105c26a7163 (diff) | |
download | qttools-482125b15648944d18ae120644f9ffe11b327ff2.tar.gz |
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.cpp | 9 |
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"> |