diff options
| author | Thomas Hartmann <thomas.hartmann@qt.io> | 2023-02-16 18:51:41 +0100 |
|---|---|---|
| committer | Tim Jenssen <tim.jenssen@qt.io> | 2023-02-17 16:01:32 +0000 |
| commit | f681b696e920e00af60ff2533e47bac855a7d5dc (patch) | |
| tree | 95ff7751b05c6cd077388a30f96eab0075c2f357 /src/plugins/qmldesignerbase/utils/studioquickwidget.cpp | |
| parent | 9e2926c537ed311baf8f382c0550aa63953a30de (diff) | |
| download | qt-creator-f681b696e920e00af60ff2533e47bac855a7d5dc.tar.gz | |
QmlDesigner: Add StudioQuickWidget
This makes it easy to share the QQmlEngine between different
QQuickWidgets.
All StudioQuickWidgets share the same engine.
Change-Id: I2b370a45a14fdc143e161e2aca62b45aa0d91da9
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/plugins/qmldesignerbase/utils/studioquickwidget.cpp')
| -rw-r--r-- | src/plugins/qmldesignerbase/utils/studioquickwidget.cpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/plugins/qmldesignerbase/utils/studioquickwidget.cpp b/src/plugins/qmldesignerbase/utils/studioquickwidget.cpp new file mode 100644 index 0000000000..8e19e71a56 --- /dev/null +++ b/src/plugins/qmldesignerbase/utils/studioquickwidget.cpp @@ -0,0 +1,60 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0 + +#include "studioquickwidget.h" + +#include <QVBoxLayout> +#include <QtQml/QQmlEngine> + +QQmlEngine *s_engine = nullptr; + +StudioQuickWidget::StudioQuickWidget(QWidget *parent) + : QWidget{parent} +{ + if (!s_engine) + s_engine = new QQmlEngine; + + m_quickWidget = new QQuickWidget(s_engine, this); + + QVBoxLayout *layout = new QVBoxLayout(this); + setLayout(layout); + layout->setContentsMargins(0, 0, 0, 0); + layout->addWidget(m_quickWidget); +} + +QQmlEngine *StudioQuickWidget::engine() const +{ + return m_quickWidget->engine(); +} + +QQmlContext *StudioQuickWidget::rootContext() const +{ + return m_quickWidget->rootContext(); +} + +QQuickItem *StudioQuickWidget::rootObject() const +{ + return m_quickWidget->rootObject(); +} + +void StudioQuickWidget::setResizeMode(QQuickWidget::ResizeMode mode) +{ + m_quickWidget->setResizeMode(mode); +} + +void StudioQuickWidget::setSource(const QUrl &url) +{ + m_quickWidget->setSource(url); +} + +void StudioQuickWidget::refresh() {} + +void StudioQuickWidget::setClearColor(const QColor &color) +{ + m_quickWidget->setClearColor(color); +} + +QList<QQmlError> StudioQuickWidget::errors() const +{ + return m_quickWidget->errors(); +} |
