diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-02-06 19:07:13 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-02-15 07:54:58 +0100 |
commit | a616f9a3f24f25f5fe67be2a4b276395e12a1ada (patch) | |
tree | 61a3caf8cda73d67ce806311019c48bf5a03ee18 | |
parent | 9ca822277996236fc2ad8a539a1ee358aa61738e (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.cpp | 10 |
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\">\ |