aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@nokia.com>2010-11-25 14:47:48 +0100
committerMarco Bubke <marco.bubke@nokia.com>2010-11-25 14:48:04 +0100
commitfb54a7626c9f38f000ac5eb90a91eb8763cae973 (patch)
tree5c0230a41aceb2eed041d57d8d26bcea0c61fb18
parentb34bdc55e150d2ff8d82b53d3d1af86de24f9062 (diff)
QmlDesigner.NodeInstances: More workarounds work again
Hopefully Qml will be changed so that code can be removed.
-rw-r--r--src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp83
-rw-r--r--src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.h5
2 files changed, 47 insertions, 41 deletions
diff --git a/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp b/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp
index 87f6903666..afb837373a 100644
--- a/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp
@@ -56,7 +56,11 @@ QmlGraphicsItemNodeInstance::QmlGraphicsItemNodeInstance(QDeclarativeItem *item)
: GraphicsObjectNodeInstance(item),
m_hasHeight(false),
m_hasWidth(false),
- m_isResizable(true)
+ m_isResizable(true),
+ m_x(0.0),
+ m_y(0.0),
+ m_width(0.0),
+ m_height(0.0)
{
}
@@ -98,7 +102,7 @@ QSizeF QmlGraphicsItemNodeInstance::size() const
if (!m_hasWidth
&& implicitWidth // WORKAROUND
&& implicitWidth != qmlGraphicsItem()->width()
- && !hasBindingProperty("width")) {
+ && !hasBindingForProperty("width")) {
qmlGraphicsItem()->blockSignals(true);
qmlGraphicsItem()->setWidth(implicitWidth);
qmlGraphicsItem()->blockSignals(false);
@@ -108,7 +112,7 @@ QSizeF QmlGraphicsItemNodeInstance::size() const
if (!m_hasHeight
&& implicitWidth // WORKAROUND
&& implicitHeight != qmlGraphicsItem()->height()
- && !hasBindingProperty("height")) {
+ && !hasBindingForProperty("height")) {
qmlGraphicsItem()->blockSignals(true);
qmlGraphicsItem()->setHeight(implicitHeight);
qmlGraphicsItem()->blockSignals(false);
@@ -142,7 +146,7 @@ QRectF QmlGraphicsItemNodeInstance::boundingRect() const
if (!m_hasWidth
&& implicitWidth // WORKAROUND
&& implicitWidth != qmlGraphicsItem()->width()
- && !hasBindingProperty("width")) {
+ && !hasBindingForProperty("width")) {
qmlGraphicsItem()->blockSignals(true);
qmlGraphicsItem()->setWidth(implicitWidth);
qmlGraphicsItem()->blockSignals(false);
@@ -152,7 +156,7 @@ QRectF QmlGraphicsItemNodeInstance::boundingRect() const
if (!m_hasHeight
&& implicitWidth // WORKAROUND
&& implicitHeight != qmlGraphicsItem()->height()
- && !hasBindingProperty("height")) {
+ && !hasBindingForProperty("height")) {
qmlGraphicsItem()->blockSignals(true);
qmlGraphicsItem()->setHeight(implicitHeight);
qmlGraphicsItem()->blockSignals(false);
@@ -188,6 +192,7 @@ void QmlGraphicsItemNodeInstance::setPropertyVariant(const QString &name, const
return; // states are only set by us
if (name == "height") {
+ m_height = value.toDouble();
if (value.isValid())
m_hasHeight = true;
else
@@ -195,12 +200,19 @@ void QmlGraphicsItemNodeInstance::setPropertyVariant(const QString &name, const
}
if (name == "width") {
+ m_width = value.toDouble();
if (value.isValid())
m_hasWidth = true;
else
m_hasWidth = false;
}
+ if (name == "x")
+ m_x = value.toDouble();
+
+ if (name == "y")
+ m_y = value.toDouble();
+
GraphicsObjectNodeInstance::setPropertyVariant(name, value);
refresh();
@@ -216,7 +228,7 @@ void QmlGraphicsItemNodeInstance::setPropertyBinding(const QString &name, const
QVariant QmlGraphicsItemNodeInstance::property(const QString &name) const
{
- if (name == "width" && !hasBindingProperty("width")) {
+ if (name == "width" && !hasBindingForProperty("width")) {
double implicitWidth = qmlGraphicsItem()->implicitWidth();
if (!m_hasWidth
&& implicitWidth // WORKAROUND
@@ -227,7 +239,7 @@ QVariant QmlGraphicsItemNodeInstance::property(const QString &name) const
}
}
- if (name == "height" && !hasBindingProperty("height")) {
+ if (name == "height" && !hasBindingForProperty("height")) {
double implicitHeight = qmlGraphicsItem()->implicitHeight();
if (!m_hasHeight
&& implicitHeight // WORKAROUND
@@ -243,41 +255,22 @@ QVariant QmlGraphicsItemNodeInstance::property(const QString &name) const
void QmlGraphicsItemNodeInstance::resetHorizontal()
{
- setPropertyVariant("x", 0.0);
- setPropertyVariant("width", qmlGraphicsItem()->implicitWidth());
-
-// if (modelNode().hasBindingProperty("x"))
-// setPropertyBinding("x", modelNode().bindingProperty("x").expression());
-// else if (modelNode().hasVariantProperty("x"))
-// setPropertyVariant("x", modelNode().variantProperty("x").value());
-// else
-// setPropertyVariant("x", 0.0);
-
-// if (modelNode().hasBindingProperty("width"))
-// setPropertyBinding("width", modelNode().bindingProperty("width").expression());
-// else if (modelNode().hasVariantProperty("width"))
-// setPropertyVariant("width", modelNode().variantProperty("width").value());
-// else
-// setPropertyVariant("width", qmlGraphicsItem()->implicitWidth());
+ setPropertyVariant("x", m_x);
+ if (m_width > 0.0) {
+ setPropertyVariant("width", m_width);
+ } else {
+ setPropertyVariant("width", qmlGraphicsItem()->implicitWidth());
+ }
}
void QmlGraphicsItemNodeInstance::resetVertical()
{
- setPropertyVariant("y", 0.0);
- setPropertyVariant("height", qmlGraphicsItem()->implicitHeight());
-// if (modelNode().hasBindingProperty("y"))
-// setPropertyBinding("y", modelNode().bindingProperty("y").expression());
-// else if (modelNode().hasVariantProperty("y"))
-// setPropertyVariant("y", modelNode().variantProperty("y").value());
-// else
-// setPropertyVariant("y", 0.0);
-
-// if (modelNode().hasBindingProperty("height"))
-// setPropertyBinding("height", modelNode().bindingProperty("height").expression());
-// else if (modelNode().hasVariantProperty("height"))
-// setPropertyVariant("height", modelNode().variantProperty("height").value());
-// else
-// setPropertyVariant("height", qmlGraphicsItem()->implicitHeight());
+ setPropertyVariant("y", m_y);
+ if (m_height > 0.0) {
+ setPropertyVariant("height", m_height);
+ } else {
+ setPropertyVariant("height", qmlGraphicsItem()->implicitWidth());
+ }
}
static void repositioning(QDeclarativeItem *item)
@@ -331,11 +324,21 @@ int QmlGraphicsItemNodeInstance::penWidth() const
void QmlGraphicsItemNodeInstance::resetProperty(const QString &name)
{
- if (name == "height")
+ if (name == "height") {
m_hasHeight = false;
+ m_height = 0.0;
+ }
- if (name == "width")
+ if (name == "width") {
m_hasWidth = false;
+ m_width = 0.0;
+ }
+
+ if (name == "x")
+ m_x = 0.0;
+
+ if (name == "y")
+ m_y = 0.0;
if (name == "anchors.fill") {
diff --git a/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.h b/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.h
index 4fe2178ae4..aa6e2c2bd6 100644
--- a/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.h
+++ b/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.h
@@ -85,7 +85,10 @@ private: //variables
bool m_hasHeight;
bool m_hasWidth;
bool m_isResizable;
-
+ double m_x;
+ double m_y;
+ double m_width;
+ double m_height;
};
}