diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2016-06-29 13:22:38 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2016-06-29 10:43:02 +0000 |
commit | 6cd403a996bed7a4d4726f75ce6cf086233a354f (patch) | |
tree | 1cab7483a61def880925c3796858cec6422ec14d /creatorplugin | |
parent | 2c60211d6ca22062d135f9c35b44932cad85d4e4 (diff) |
Open the correct scene when opening the embedded editor
Change-Id: Ie308ea0bc5024c539caca4e4d514bbf214c9dc6e
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'creatorplugin')
-rw-r--r-- | creatorplugin/qt3dsceneeditorplugin.cpp | 6 | ||||
-rw-r--r-- | creatorplugin/qt3dsceneeditorwidget.cpp | 12 | ||||
-rw-r--r-- | creatorplugin/qt3dsceneeditorwidget.h | 4 |
3 files changed, 15 insertions, 7 deletions
diff --git a/creatorplugin/qt3dsceneeditorplugin.cpp b/creatorplugin/qt3dsceneeditorplugin.cpp index 51c43f6..d8ccedd 100644 --- a/creatorplugin/qt3dsceneeditorplugin.cpp +++ b/creatorplugin/qt3dsceneeditorplugin.cpp @@ -43,8 +43,10 @@ #include <coreplugin/editormanager/ieditor.h> #include <utils/mimetypes/mimedatabase.h> +#include <utils/fileutils.h> #include <QtCore/QTimer> +#include <QtCore/QUrl> namespace Qt3DSceneEditor { namespace Internal { @@ -155,8 +157,8 @@ void Qt3DSceneEditorPlugin::createSceneEditorWidget() void Qt3DSceneEditorPlugin::showSceneEditor() { - m_sceneEditorWidget->initialize(); - // TODO: load the scene (probably as parameter to initialize) + m_sceneEditorWidget->initialize( + QUrl::fromLocalFile(Core::EditorManager::currentDocument()->filePath().toString())); } void Qt3DSceneEditorPlugin::hideSceneEditor() diff --git a/creatorplugin/qt3dsceneeditorwidget.cpp b/creatorplugin/qt3dsceneeditorwidget.cpp index eab05f2..bc8b46a 100644 --- a/creatorplugin/qt3dsceneeditorwidget.cpp +++ b/creatorplugin/qt3dsceneeditorwidget.cpp @@ -29,8 +29,9 @@ #include "qt3dsceneeditorwidget.h" #include "../editorlib/src/qt3dsceneeditor.h" -#include <QBoxLayout> -#include <QQuickWidget> +#include <QtWidgets/QBoxLayout> +#include <QtQuickWidgets/QQuickWidget> +#include <QtQuick/QQuickItem> using namespace Qt3DSceneEditor; @@ -40,6 +41,7 @@ namespace Internal { Qt3DSceneEditorWidget::Qt3DSceneEditorWidget(QWidget *parent) : QWidget(parent) , m_sceneEditor(nullptr) + , m_rootItem(nullptr) { } @@ -53,6 +55,7 @@ void Qt3DSceneEditorWidget::setup() m_sceneEditor = new QQuickWidget(this); m_sceneEditor->setResizeMode(QQuickWidget::SizeRootObjectToView); m_sceneEditor->setSource(QUrl(QStringLiteral("qrc:/qt3deditorlib/PluginMain.qml"))); + m_rootItem = m_sceneEditor->rootObject(); QVBoxLayout *layout = new QVBoxLayout(); layout->setMargin(0); @@ -63,14 +66,15 @@ void Qt3DSceneEditorWidget::setup() show(); } -void Qt3DSceneEditorWidget::initialize() +void Qt3DSceneEditorWidget::initialize(const QUrl &fileName) { if (m_initStatus == NotInitialized) { m_initStatus = Initializing; setup(); } - m_initStatus = Initialized; + + QMetaObject::invokeMethod(m_rootItem, "loadScene", Q_ARG(QVariant, fileName)); } } // namespace Internal diff --git a/creatorplugin/qt3dsceneeditorwidget.h b/creatorplugin/qt3dsceneeditorwidget.h index 09a9138..e4cc693 100644 --- a/creatorplugin/qt3dsceneeditorwidget.h +++ b/creatorplugin/qt3dsceneeditorwidget.h @@ -32,6 +32,7 @@ QT_BEGIN_NAMESPACE class QQuickWidget; +class QQuickItem; QT_END_NAMESPACE namespace Qt3DSceneEditor { @@ -46,7 +47,7 @@ public: ~Qt3DSceneEditorWidget(); - void initialize(); + void initialize(const QUrl &fileName); private: // functions enum InitializeStatus { NotInitialized, Initializing, Initialized }; @@ -55,6 +56,7 @@ private: // functions private: // variables InitializeStatus m_initStatus = NotInitialized; QQuickWidget *m_sceneEditor; + QQuickItem *m_rootItem; }; } // namespace Internal |