QmlDesigner: Prepare for other layout items

Change-Id: I831e68877eb3d785b4bbb99db002ab8e42158d75
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
This commit is contained in:
Marco Bubke
2013-04-18 18:42:58 +02:00
parent 40b62e1cfa
commit ff4457bb46
25 changed files with 67 additions and 55 deletions

View File

@@ -81,8 +81,8 @@ QString InformationContainer::nameAsString() const
return QLatin1String("PenWidth");
case Position:
return QLatin1String("Position");
case IsInPositioner:
return QLatin1String("IsInPositioner");
case IsInLayoutable:
return QLatin1String("IsInLayoutable");
case SceneTransform:
return QLatin1String("SceneTransform");
case IsResizable:

View File

@@ -47,7 +47,7 @@ enum InformationName
InstanceTypeForProperty,
PenWidth,
Position,
IsInPositioner,
IsInLayoutable,
SceneTransform,
IsResizable,
IsMovable,

View File

@@ -350,8 +350,8 @@ void GraphicalNodeInstance::setPropertyVariant(const PropertyName &name, const Q
refresh();
if (isInPositioner())
parentInstance()->refreshPositioner();
if (isInLayoutable())
parentInstance()->refreshLayoutable();
}
void GraphicalNodeInstance::setPropertyBinding(const PropertyName &name, const QString &expression)
@@ -365,8 +365,8 @@ void GraphicalNodeInstance::setPropertyBinding(const PropertyName &name, const Q
refresh();
if (isInPositioner())
parentInstance()->refreshPositioner();
if (isInLayoutable())
parentInstance()->refreshLayoutable();
}
QVariant GraphicalNodeInstance::property(const PropertyName &name) const
@@ -423,8 +423,8 @@ void GraphicalNodeInstance::resetProperty(const PropertyName &name)
quickItem()->update();
if (isInPositioner())
parentInstance()->refreshPositioner();
if (isInLayoutable())
parentInstance()->refreshLayoutable();
}

View File

@@ -892,7 +892,7 @@ static QVector<InformationContainer> createInformationVector(const QList<ServerN
informationVector.append(InformationContainer(instance.instanceId(), HasContent, instance.hasContent()));
informationVector.append(InformationContainer(instance.instanceId(), IsMovable, instance.isMovable()));
informationVector.append(InformationContainer(instance.instanceId(), IsResizable, instance.isResizable()));
informationVector.append(InformationContainer(instance.instanceId(), IsInPositioner, instance.isInPositioner()));
informationVector.append(InformationContainer(instance.instanceId(), IsInLayoutable, instance.isInLayoutable()));
informationVector.append(InformationContainer(instance.instanceId(), PenWidth, instance.penWidth()));
informationVector.append(InformationContainer(instance.instanceId(), IsAnchoredByChildren, instance.isAnchoredByChildren()));
informationVector.append(InformationContainer(instance.instanceId(), IsAnchoredBySibling, instance.isAnchoredBySibling()));

View File

@@ -73,7 +73,7 @@ ObjectNodeInstance::ObjectNodeInstance(QObject *object)
m_deleteHeldInstance(true),
m_object(object),
m_metaObject(0),
m_isInPositioner(false)
m_isInLayoutable(false)
{
}
@@ -204,6 +204,11 @@ bool ObjectNodeInstance::isGraphical() const
return false;
}
bool ObjectNodeInstance::isLayoutable() const
{
return true;
}
bool ObjectNodeInstance::equalGraphicsItem(QGraphicsItem * /*item*/) const
{
return false;
@@ -1033,17 +1038,17 @@ bool ObjectNodeInstance::isMovable() const
return false;
}
bool ObjectNodeInstance::isInPositioner() const
bool ObjectNodeInstance::isInLayoutable() const
{
return m_isInPositioner;
return m_isInLayoutable;
}
void ObjectNodeInstance::setInPositioner(bool isInPositioner)
void ObjectNodeInstance::setInLayoutable(bool isInLayoutable)
{
m_isInPositioner = isInPositioner;
m_isInLayoutable = isInLayoutable;
}
void ObjectNodeInstance::refreshPositioner()
void ObjectNodeInstance::refreshLayoutable()
{
}

View File

@@ -99,6 +99,7 @@ public:
virtual bool isQuickItem() const;
virtual bool isQuickWindow() const;
virtual bool isGraphical() const;
virtual bool isLayoutable() const;
virtual bool equalGraphicsItem(QGraphicsItem *item) const;
@@ -155,9 +156,9 @@ public:
virtual bool hasContent() const;
virtual bool isResizable() const;
virtual bool isMovable() const;
bool isInPositioner() const;
void setInPositioner(bool isInPositioner);
virtual void refreshPositioner();
bool isInLayoutable() const;
void setInLayoutable(bool isInLayoutable);
virtual void refreshLayoutable();
bool hasBindingForProperty(const PropertyName &name, bool *hasChanged = 0) const;
@@ -204,7 +205,7 @@ private:
QPointer<QObject> m_object;
NodeInstanceMetaObject *m_metaObject;
NodeInstanceSignalSpy m_signalSpy;
bool m_isInPositioner;
bool m_isInLayoutable;
};
} // namespace Internal

View File

@@ -42,6 +42,11 @@ bool PositionerNodeInstance::isPositioner() const
return true;
}
bool PositionerNodeInstance::isLayoutable() const
{
return true;
}
bool PositionerNodeInstance::isResizable() const
{
return true;
@@ -87,7 +92,7 @@ QQuickBasePositioner *PositionerNodeInstance::positioner() const
return static_cast<QQuickBasePositioner*>(object());
}
void PositionerNodeInstance::refreshPositioner()
void PositionerNodeInstance::refreshLayoutable()
{
bool success = QMetaObject::invokeMethod(positioner(), "prePositioning");
Q_ASSERT(success);

View File

@@ -51,10 +51,11 @@ public:
void setPropertyBinding(const PropertyName &name, const QString &expression) Q_DECL_OVERRIDE;
bool isPositioner() const Q_DECL_OVERRIDE;
bool isLayoutable() const Q_DECL_OVERRIDE;
bool isResizable() const Q_DECL_OVERRIDE;
void refreshPositioner() Q_DECL_OVERRIDE;
void refreshLayoutable() Q_DECL_OVERRIDE;
protected:
PositionerNodeInstance(QQuickBasePositioner *item);

View File

@@ -131,14 +131,14 @@ void QuickItemNodeInstance::setResizable(bool resizable)
void QuickItemNodeInstance::reparent(const ObjectNodeInstance::Pointer &oldParentInstance, const PropertyName &oldParentProperty, const ObjectNodeInstance::Pointer &newParentInstance, const PropertyName &newParentProperty)
{
if (oldParentInstance && oldParentInstance->isPositioner()) {
setInPositioner(false);
setInLayoutable(false);
setMovable(true);
}
ObjectNodeInstance::reparent(oldParentInstance, oldParentProperty, newParentInstance, newParentProperty);
if (newParentInstance && newParentInstance->isPositioner()) {
setInPositioner(true);
setInLayoutable(true);
setMovable(false);
}
@@ -153,8 +153,8 @@ void QuickItemNodeInstance::reparent(const ObjectNodeInstance::Pointer &oldParen
refresh();
DesignerSupport::updateDirtyNode(quickItem());
if (parentInstance() && isInPositioner())
parentInstance()->refreshPositioner();
if (parentInstance() && isInLayoutable())
parentInstance()->refreshLayoutable();
}
bool QuickItemNodeInstance::isAnchoredBySibling() const

View File

@@ -408,9 +408,9 @@ bool ServerNodeInstance::isMovable() const
return m_nodeInstance->isMovable();
}
bool ServerNodeInstance::isInPositioner() const
bool ServerNodeInstance::isInLayoutable() const
{
return m_nodeInstance->isInPositioner();
return m_nodeInstance->isInLayoutable();
}
bool ServerNodeInstance::hasAnchor(const PropertyName &name) const

View File

@@ -130,7 +130,7 @@ public:
bool hasContent() const;
bool isResizable() const;
bool isMovable() const;
bool isInPositioner() const;
bool isInLayoutable() const;
bool isSubclassOf(const QString &superTypeName) const;
bool isRootNodeInstance() const;

View File

@@ -886,7 +886,7 @@ static QVector<InformationContainer> createInformationVector(const QList<ServerN
informationVector.append(InformationContainer(instance.instanceId(), HasContent, instance.hasContent()));
informationVector.append(InformationContainer(instance.instanceId(), IsMovable, instance.isMovable()));
informationVector.append(InformationContainer(instance.instanceId(), IsResizable, instance.isResizable()));
informationVector.append(InformationContainer(instance.instanceId(), IsInPositioner, instance.isInPositioner()));
informationVector.append(InformationContainer(instance.instanceId(), IsInLayoutable, instance.isInLayoutable()));
informationVector.append(InformationContainer(instance.instanceId(), PenWidth, instance.penWidth()));
informationVector.append(InformationContainer(instance.instanceId(), IsAnchoredByChildren, instance.isAnchoredByChildren()));
informationVector.append(InformationContainer(instance.instanceId(), IsAnchoredBySibling, instance.isAnchoredBySibling()));

View File

@@ -379,7 +379,7 @@ bool ServerNodeInstance::isMovable() const
return m_nodeInstance->isMovable();
}
bool ServerNodeInstance::isInPositioner() const
bool ServerNodeInstance::isInLayoutable() const
{
return m_nodeInstance->isInPositioner();
}

View File

@@ -127,7 +127,7 @@ public:
bool hasContent() const;
bool isResizable() const;
bool isMovable() const;
bool isInPositioner() const;
bool isInLayoutable() const;
bool isSubclassOf(const QString &superTypeName) const;
bool isRootNodeInstance() const;

View File

@@ -144,7 +144,7 @@ static inline bool itemsHaveSameParent(const QList<ModelNode> &siblingList)
QmlItemNode currentParent = currentItem.instanceParent().toQmlItemNode();
if (!currentParent.isValid())
return false;
if (currentItem.instanceIsInPositioner())
if (currentItem.instanceIsInLayoutable())
return false;
if (currentParent != parent)
return false;

View File

@@ -103,7 +103,7 @@ bool AbstractFormEditorTool::topSelectedItemIsMovable(const QList<QGraphicsItem*
if (formEditorItem
&& selectedNodes.contains(formEditorItem->qmlItemNode())
&& formEditorItem->qmlItemNode().instanceIsMovable()
&& !formEditorItem->qmlItemNode().instanceIsInPositioner()
&& !formEditorItem->qmlItemNode().instanceIsInLayoutable()
&& (formEditorItem->qmlItemNode().hasShowContent()))
return true;
}
@@ -113,7 +113,7 @@ bool AbstractFormEditorTool::topSelectedItemIsMovable(const QList<QGraphicsItem*
if (formEditorItem
&& formEditorItem->qmlItemNode().isValid()
&& formEditorItem->qmlItemNode().instanceIsMovable()
&& !formEditorItem->qmlItemNode().instanceIsInPositioner()
&& !formEditorItem->qmlItemNode().instanceIsInLayoutable()
&& selectedNodes.contains(formEditorItem->qmlItemNode()))
return true;
}

View File

@@ -634,7 +634,7 @@ bool FormEditorView::isMoveToolAvailable() const
{
if (selectedQmlItemNodes().count() == 1)
return selectedQmlItemNodes().first().instanceIsMovable() &&
!selectedQmlItemNodes().first().instanceIsInPositioner();
!selectedQmlItemNodes().first().instanceIsInLayoutable();
return true;
}

View File

@@ -367,7 +367,7 @@ QList<FormEditorItem*> movalbeItems(const QList<FormEditorItem*> &itemList)
QMutableListIterator<FormEditorItem*> listIterator(filteredItemList);
while (listIterator.hasNext()) {
FormEditorItem *item = listIterator.next();
if (!item->qmlItemNode().isValid() || !item->qmlItemNode().instanceIsMovable() || item->qmlItemNode().instanceIsInPositioner())
if (!item->qmlItemNode().isValid() || !item->qmlItemNode().instanceIsMovable() || item->qmlItemNode().instanceIsInLayoutable())
listIterator.remove();
}

View File

@@ -75,7 +75,7 @@ void ResizeIndicator::setItems(const QList<FormEditorItem*> &itemList)
&& item->qmlItemNode().isValid()
&& item->qmlItemNode().instanceIsResizable()
&& !item->qmlItemNode().instanceHasRotationTransform()
&& !item->qmlItemNode().instanceIsInPositioner()) {
&& !item->qmlItemNode().instanceIsInLayoutable()) {
ResizeController controller(m_layerItem, item);
m_itemControllerHash.insert(item, controller);
}

View File

@@ -104,7 +104,7 @@ void RubberBandSelectionManipulator::select(SelectionType selectionType)
&& formEditorItem->qmlItemNode().isValid()
&& m_beginFormEditorItem->childItems().contains(formEditorItem)
&& formEditorItem->qmlItemNode().instanceIsMovable()
&& !formEditorItem->qmlItemNode().instanceIsInPositioner())
&& !formEditorItem->qmlItemNode().instanceIsInLayoutable())
{
newNodeList.append(formEditorItem->qmlItemNode());
}
@@ -113,7 +113,7 @@ void RubberBandSelectionManipulator::select(SelectionType selectionType)
if (newNodeList.isEmpty()
&& m_beginFormEditorItem->qmlItemNode().isValid()
&& m_beginFormEditorItem->qmlItemNode().instanceIsMovable()
&& !m_beginFormEditorItem->qmlItemNode().instanceIsInPositioner())
&& !m_beginFormEditorItem->qmlItemNode().instanceIsInLayoutable())
newNodeList.append(m_beginFormEditorItem->qmlItemNode());
QList<QmlItemNode> nodeList;

View File

@@ -152,7 +152,7 @@ void SelectionTool::hoverMoveEvent(const QList<QGraphicsItem*> &itemList,
if (formEditorItem
&& formEditorItem->qmlItemNode().isValid()
&& !formEditorItem->qmlItemNode().instanceIsInPositioner()
&& !formEditorItem->qmlItemNode().instanceIsInLayoutable()
&& formEditorItem->qmlItemNode().instanceIsMovable()
&& (formEditorItem->qmlItemNode().hasShowContent() || !m_selectOnlyContentItems))
{

View File

@@ -66,7 +66,7 @@ public:
bool isResizable() const;
QTransform transform() const;
QTransform sceneTransform() const;
bool isInPositioner() const;
bool isInLayoutable() const;
QPointF position() const;
QSizeF size() const;
int penWidth() const;
@@ -95,7 +95,7 @@ protected:
InformationName setInformationTransform(const QTransform &transform);
InformationName setInformationPenWith(int penWidth);
InformationName setInformationPosition(const QPointF &position);
InformationName setInformationIsInPositioner(bool isInPositioner);
InformationName setInformationIsInLayoutable(bool isInLayoutable);
InformationName setInformationSceneTransform(const QTransform &sceneTransform);
InformationName setInformationIsResizable(bool isResizable);
InformationName setInformationIsMovable(bool isMovable);

View File

@@ -70,7 +70,7 @@ public:
bool instanceIsAnchoredByChildren() const;
bool instanceIsMovable() const;
bool instanceIsResizable() const;
bool instanceIsInPositioner() const;
bool instanceIsInLayoutable() const;
bool instanceHasRotationTransform() const;
QRectF instanceBoundingRect() const;

View File

@@ -48,7 +48,7 @@ public:
hasContent(false),
isMovable(false),
isResizable(false),
isInPositioner(false)
isInLayoutable(false)
{}
qint32 parentInstanceId;
@@ -64,7 +64,7 @@ public:
bool hasContent;
bool isMovable;
bool isResizable;
bool isInPositioner;
bool isInLayoutable;
QHash<PropertyName, QVariant> propertyValues;
@@ -198,10 +198,10 @@ QTransform NodeInstance::sceneTransform() const
else
return QTransform();
}
bool NodeInstance::isInPositioner() const
bool NodeInstance::isInLayoutable() const
{
if (isValid())
return d->isInPositioner;
return d->isInLayoutable;
else
return false;
}
@@ -355,11 +355,11 @@ InformationName NodeInstance::setInformationPosition(const QPointF &position)
return NoInformationChange;
}
InformationName NodeInstance::setInformationIsInPositioner(bool isInPositioner)
InformationName NodeInstance::setInformationIsInLayoutable(bool isInLayoutable)
{
if (d->isInPositioner != isInPositioner) {
d->isInPositioner = isInPositioner;
return IsInPositioner;
if (d->isInLayoutable != isInLayoutable) {
d->isInLayoutable = isInLayoutable;
return IsInLayoutable;
}
return NoInformationChange;
@@ -474,7 +474,7 @@ InformationName NodeInstance::setInformation(InformationName name, const QVarian
case Transform: return setInformationTransform(information.value<QTransform>()); break;
case PenWidth: return setInformationPenWith(information.toInt()); break;
case Position: return setInformationPosition(information.toPointF()); break;
case IsInPositioner: return setInformationIsInPositioner(information.toBool()); break;
case IsInLayoutable: return setInformationIsInLayoutable(information.toBool()); break;
case SceneTransform: return setInformationSceneTransform(information.value<QTransform>()); break;
case IsResizable: return setInformationIsResizable(information.toBool()); break;
case IsMovable: return setInformationIsMovable(information.toBool()); break;

View File

@@ -224,9 +224,9 @@ bool QmlItemNode::instanceIsResizable() const
return nodeInstance().isResizable();
}
bool QmlItemNode::instanceIsInPositioner() const
bool QmlItemNode::instanceIsInLayoutable() const
{
return nodeInstance().isInPositioner();
return nodeInstance().isInLayoutable();
}
bool QmlItemNode::instanceHasRotationTransform() const