QmlDesigner: Add Loader and Repeater to component library

Also fixes some issues with Repeater usage.

Fixes: QDS-5149
Change-Id: I259dcb73be634150dd0c5e602165b63112ec958c
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
This commit is contained in:
Miikka Heikkinen
2021-09-28 16:15:07 +03:00
parent 545da2f6a6
commit 4036c20f63
11 changed files with 268 additions and 2 deletions

View File

@@ -91,6 +91,9 @@ void FormEditorView::modelAttached(Model *model)
//This function does the setup of the initial FormEditorItem tree in the scene
void FormEditorView::setupFormEditorItemTree(const QmlItemNode &qmlItemNode)
{
if (!qmlItemNode.hasFormEditorItem())
return;
if (qmlItemNode.isFlowTransition()) {
m_scene->addFormEditorItem(qmlItemNode, FormEditorScene::FlowTransition);
if (qmlItemNode.hasNodeParent())

View File

@@ -62,6 +62,7 @@ public:
bool canBeDroppedInView3D() const;
bool isMovable() const;
bool isResizable() const;
bool hasFormEditorItem() const;
bool isStackedContainer() const;
bool canBeReparentedTo(const ModelNode &potenialParent);
QString indexPropertyForStackedContainer() const;

View File

@@ -105,6 +105,7 @@ public:
bool modelIsResizable() const;
bool modelIsRotatable() const;
bool modelIsInLayout() const;
bool hasFormEditorItem() const;
QRectF instanceBoundingRect() const;
QRectF instanceSceneBoundingRect() const;

View File

@@ -183,6 +183,11 @@ bool NodeHints::isResizable() const
return evaluateBooleanExpression("isResizable", true);
}
bool NodeHints::hasFormEditorItem() const
{
return evaluateBooleanExpression("hasFormEditorItem", true);
}
bool NodeHints::isStackedContainer() const
{
if (!isValid())

View File

@@ -395,6 +395,11 @@ bool QmlItemNode::modelIsInLayout() const
return false;
}
bool QmlItemNode::hasFormEditorItem() const
{
return NodeHints::fromModelNode(modelNode()).hasFormEditorItem();
}
QRectF QmlItemNode::instanceBoundingRect() const
{
return QRectF(QPointF(0, 0), nodeInstance().size());

View File

@@ -448,4 +448,35 @@ MetaInfo {
version: "2.0"
}
}
Type {
name: "QtQuick.Loader"
icon: ":/qtquickplugin/images/item-icon16.png"
ItemLibraryEntry {
name: "Loader"
category: "e.Qt Quick - Component"
libraryIcon: ":/qtquickplugin/images/item-icon.png"
version: "2.0"
Property { name: "width"; type: "int"; value: 200; }
Property { name: "height"; type: "int"; value: 200; }
}
}
Type {
name: "QtQuick.Repeater"
icon: ":/qtquickplugin/images/item-icon16.png"
Hints {
canBeDroppedInFormEditor: false
hasFormEditorItem: false
}
ItemLibraryEntry {
name: "Repeater"
category: "e.Qt Quick - Component"
libraryIcon: ":/qtquickplugin/images/item-icon.png"
version: "2.0"
}
}
}