aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@digia.com>2013-05-22 13:07:32 +0200
committerMarco Bubke <marco.bubke@digia.com>2013-05-22 14:45:43 +0200
commit79764560025e3c00e44817e9d1214a835f6d9d1d (patch)
tree2c2234e7eb698cef60f5e1e4ccc4cb1153fce305 /src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp
parent288d239656a83feb7d305262712e6642e0045203 (diff)
QmlDesigner: Add content item hack
There is no stand content item interface, so try to work around to enable snapping and anchoring. Change-Id: Ib2eaf0d6c35e3ba289dd7d55b2ba4c064ad40748 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Diffstat (limited to 'src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp')
-rw-r--r--src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp50
1 files changed, 35 insertions, 15 deletions
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp
index 50a09e94f7..e787d46c39 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp
@@ -56,6 +56,7 @@ public:
QPointF position;
QSizeF size;
QTransform transform;
+ QTransform contentTransform;
QTransform sceneTransform;
int penWidth;
bool isAnchoredBySibling;
@@ -190,6 +191,14 @@ QTransform NodeInstance::transform() const
else
return QTransform();
}
+
+QTransform NodeInstance::contentTransform() const
+{
+ if (isValid())
+ return d->contentTransform;
+ else
+ return QTransform();
+}
QTransform NodeInstance::sceneTransform() const
{
if (isValid())
@@ -334,6 +343,16 @@ InformationName NodeInstance::setInformationTransform(const QTransform &transfor
return NoInformationChange;
}
+InformationName NodeInstance::setInformationContentTransform(const QTransform &contentTransform)
+{
+ if (d->contentTransform != contentTransform) {
+ d->contentTransform = contentTransform;
+ return ContentTransform;
+ }
+
+ return NoInformationChange;
+}
+
InformationName NodeInstance::setInformationPenWith(int penWidth)
{
if (d->penWidth != penWidth) {
@@ -468,22 +487,23 @@ InformationName NodeInstance::setInformationHasBindingForProperty(const Property
InformationName NodeInstance::setInformation(InformationName name, const QVariant &information, const QVariant &secondInformation, const QVariant &thirdInformation)
{
switch (name) {
- case Size: return setInformationSize(information.toSizeF()); break;
- case BoundingRect: return setInformationBoundingRect(information.toRectF()); break;
- case Transform: return setInformationTransform(information.value<QTransform>()); break;
- case PenWidth: return setInformationPenWith(information.toInt()); break;
- case Position: return setInformationPosition(information.toPointF()); 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;
- case IsAnchoredByChildren: return setInformationIsAnchoredByChildren(information.toBool()); break;
- case IsAnchoredBySibling: return setInformationIsAnchoredBySibling(information.toBool()); break;
- case HasContent: return setInformationHasContent(information.toBool()); break;
+ case Size: return setInformationSize(information.toSizeF());
+ case BoundingRect: return setInformationBoundingRect(information.toRectF());
+ case Transform: return setInformationTransform(information.value<QTransform>());
+ case ContentTransform: return setInformationContentTransform(information.value<QTransform>());
+ case PenWidth: return setInformationPenWith(information.toInt());
+ case Position: return setInformationPosition(information.toPointF());
+ case IsInLayoutable: return setInformationIsInLayoutable(information.toBool());
+ case SceneTransform: return setInformationSceneTransform(information.value<QTransform>());
+ case IsResizable: return setInformationIsResizable(information.toBool());
+ case IsMovable: return setInformationIsMovable(information.toBool());
+ case IsAnchoredByChildren: return setInformationIsAnchoredByChildren(information.toBool());
+ case IsAnchoredBySibling: return setInformationIsAnchoredBySibling(information.toBool());
+ case HasContent: return setInformationHasContent(information.toBool());
case HasAnchor: return setInformationHasAnchor(information.toByteArray(), secondInformation.toBool());break;
- case Anchor: return setInformationAnchor(information.toByteArray(), secondInformation.toByteArray(), thirdInformation.value<qint32>()); break;
- case InstanceTypeForProperty: return setInformationInstanceTypeForProperty(information.toByteArray(), secondInformation.toByteArray()); break;
- case HasBindingForProperty: return setInformationHasBindingForProperty(information.toByteArray(), secondInformation.toBool()); break;
+ case Anchor: return setInformationAnchor(information.toByteArray(), secondInformation.toByteArray(), thirdInformation.value<qint32>());
+ case InstanceTypeForProperty: return setInformationInstanceTypeForProperty(information.toByteArray(), secondInformation.toByteArray());
+ case HasBindingForProperty: return setInformationHasBindingForProperty(information.toByteArray(), secondInformation.toBool());
case NoName:
default: break;
}