summaryrefslogtreecommitdiffstats
path: root/creatorplugin
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2016-06-29 13:22:38 +0300
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2016-06-29 10:43:02 +0000
commit6cd403a996bed7a4d4726f75ce6cf086233a354f (patch)
tree1cab7483a61def880925c3796858cec6422ec14d /creatorplugin
parent2c60211d6ca22062d135f9c35b44932cad85d4e4 (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.cpp6
-rw-r--r--creatorplugin/qt3dsceneeditorwidget.cpp12
-rw-r--r--creatorplugin/qt3dsceneeditorwidget.h4
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