QmlDesigner: Allow qml2puppet to mockup C++ types

This allows Qt Quick Designer to register a component that can serve
as a mockup for known C++ components registered in e.g. main.cpp.

In many cases those components are the interface to the C++ backend.
While the C++ components itself are not relevant for the gui designer,
the user has to be able to instantiate gui components that use such C++
components.

We use the CreateSceneCommand to forward a list of C++ types to
qml2puppet.
Those types are then registered so that the imports and object institation
works.

Change-Id: I1543912f233f9a783998f3c6a1b48981b342ee80
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Thomas Hartmann
2016-09-29 15:30:29 +02:00
parent 5a3aa3fc3e
commit d3b4acfae2
11 changed files with 254 additions and 0 deletions

View File

@@ -32,6 +32,7 @@
#include "instancecontainer.h"
#include "reparentcontainer.h"
#include "idcontainer.h"
#include "mockuptypecontainer.h"
#include "propertyvaluecontainer.h"
#include "propertybindingcontainer.h"
#include "addimportcontainer.h"
@@ -51,6 +52,7 @@ public:
const QVector<PropertyBindingContainer> &bindingChangeVector,
const QVector<PropertyValueContainer> &auxiliaryChangeVector,
const QVector<AddImportContainer> &importVector,
const QVector<MockupTypeContainer> &mockupTypeVector,
const QUrl &fileUrl);
QVector<InstanceContainer> instances() const;
@@ -60,6 +62,7 @@ public:
QVector<PropertyBindingContainer> bindingChanges() const;
QVector<PropertyValueContainer> auxiliaryChanges() const;
QVector<AddImportContainer> imports() const;
QVector<MockupTypeContainer> mockupTypes() const;
QUrl fileUrl() const;
private:
@@ -70,6 +73,7 @@ private:
QVector<PropertyBindingContainer> m_bindingChangeVector;
QVector<PropertyValueContainer> m_auxiliaryChangeVector;
QVector<AddImportContainer> m_importVector;
QVector<MockupTypeContainer> m_mockupTypeVector;
QUrl m_fileUrl;
};