// // DockWidget.cpp // libraries/ui/src // // Created by Dante Ruiz 05-07-2019 // Copyright 2019 High Fidelity, Inc. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // #include "DockWidget.h" #include "OffscreenUi.h" #include #include #include #include static void quickViewDeleter(QQuickView* quickView) { quickView->deleteLater(); } DockWidget::DockWidget(const QString& title, QWidget* parent) : QDockWidget(title, parent) { auto offscreenUi = DependencyManager::get(); auto qmlEngine = offscreenUi->getSurfaceContext()->engine(); _quickView = std::shared_ptr(new QQuickView(qmlEngine, nullptr), quickViewDeleter); QWidget* widget = QWidget::createWindowContainer(_quickView.get()); setWidget(widget); QWidget* headerWidget = new QWidget(); setTitleBarWidget(headerWidget); } void DockWidget::setSource(const QUrl& url) { _quickView->setSource(url); } QQuickItem* DockWidget::getRootItem() const { return _quickView->rootObject(); } std::shared_ptr DockWidget::getQuickView() const { return _quickView; }