OSDN Git Service

QmlDesigner.NodeInstances: Wouraround invisible root items
authorMarco Bubke <marco.bubke@nokia.com>
Tue, 12 Jul 2011 13:36:41 +0000 (15:36 +0200)
committerMarco Bubke <marco.bubke@nokia.com>
Tue, 12 Jul 2011 14:11:07 +0000 (16:11 +0200)
Task-number: QTCREATORBUG-5152

Change-Id: I40be95844598a3a3728d0c7fbe88a9fe7a155c53
Reviewed-on: http://codereview.qt.nokia.com/1532
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
share/qtcreator/qml/qmlpuppet/instances/objectnodeinstance.cpp
share/qtcreator/qml/qmlpuppet/instances/objectnodeinstance.h
share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.cpp
share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.h

index ada992f..2d6fda7 100644 (file)
@@ -967,6 +967,11 @@ QVariant ObjectNodeInstance::resetValue(const QString &propertyName) const
     return m_resetValueHash.value(propertyName);
 }
 
+void ObjectNodeInstance::setResetValue(const QString &propertyName, const QVariant &value)
+{
+    m_resetValueHash.insert(propertyName, value);
+}
+
 void ObjectNodeInstance::paint(QPainter * /*painter*/)
 {
 }
index 4cc3fd1..95e20ab 100644 (file)
@@ -153,6 +153,7 @@ public:
 
     void populateResetValueHash();
     QVariant resetValue(const QString &propertyName) const;
+    void setResetValue(const QString &propertyName, const QVariant &value);
 
     QObject *object() const;
 
index b97f9b7..ac26da5 100644 (file)
@@ -254,6 +254,26 @@ int QmlGraphicsItemNodeInstance::penWidth() const
     return GraphicsObjectNodeInstance::penWidth();
 }
 
+void QmlGraphicsItemNodeInstance::initialize(const ObjectNodeInstance::Pointer &objectNodeInstance)
+{
+    GraphicsObjectNodeInstance::initialize(objectNodeInstance);
+
+    if (objectNodeInstance->instanceId() == 0 && objectNodeInstance->isQmlGraphicsItem()) { // is root item
+        objectNodeInstance.staticCast<QmlGraphicsItemNodeInstance>()->setVisible(true);
+        objectNodeInstance->setResetValue("visible", true);
+    }
+}
+
+void QmlGraphicsItemNodeInstance::setVisible(bool isVisible)
+{
+    qmlGraphicsItem()->setVisible(isVisible);
+}
+
+bool QmlGraphicsItemNodeInstance::isVisible() const
+{
+    return qmlGraphicsItem()->isVisible();
+}
+
 void QmlGraphicsItemNodeInstance::resetProperty(const QString &name)
 {
     if (name == "height") {
index 9a5c7e0..1abf46d 100644 (file)
@@ -75,8 +75,12 @@ public:
     bool isResizable() const;
     void setResizable(bool resizeable);
 
+    void setVisible(bool isVisible);
+    bool isVisible() const;
 
-    QList<ServerNodeInstance> stateInstances() const;
+    void initialize(const ObjectNodeInstance::Pointer &objectNodeInstance);
+
+   QList<ServerNodeInstance> stateInstances() const;
 
 protected:
     QmlGraphicsItemNodeInstance(QDeclarativeItem *item);