From 2ebb5137a08f502c8d677fdd0450e7f9420b8f37 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 12 Jul 2011 15:36:41 +0200 Subject: [PATCH] QmlDesigner.NodeInstances: Wouraround invisible root items Task-number: QTCREATORBUG-5152 Change-Id: I40be95844598a3a3728d0c7fbe88a9fe7a155c53 Reviewed-on: http://codereview.qt.nokia.com/1532 Reviewed-by: Qt Sanity Bot Reviewed-by: Thomas Hartmann --- .../instances/objectnodeinstance.cpp | 5 +++++ .../qmlpuppet/instances/objectnodeinstance.h | 1 + .../instances/qmlgraphicsitemnodeinstance.cpp | 20 +++++++++++++++++++ .../instances/qmlgraphicsitemnodeinstance.h | 6 +++++- 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/qml/qmlpuppet/instances/objectnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/instances/objectnodeinstance.cpp index ada992f1615..2d6fda7eac0 100644 --- a/share/qtcreator/qml/qmlpuppet/instances/objectnodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/instances/objectnodeinstance.cpp @@ -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*/) { } diff --git a/share/qtcreator/qml/qmlpuppet/instances/objectnodeinstance.h b/share/qtcreator/qml/qmlpuppet/instances/objectnodeinstance.h index 4cc3fd155f8..95e20abfd07 100644 --- a/share/qtcreator/qml/qmlpuppet/instances/objectnodeinstance.h +++ b/share/qtcreator/qml/qmlpuppet/instances/objectnodeinstance.h @@ -153,6 +153,7 @@ public: void populateResetValueHash(); QVariant resetValue(const QString &propertyName) const; + void setResetValue(const QString &propertyName, const QVariant &value); QObject *object() const; diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.cpp index b97f9b7e1cd..ac26da5458b 100644 --- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.cpp @@ -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()->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") { diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.h b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.h index 9a5c7e0505e..1abf46d32bf 100644 --- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.h +++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.h @@ -75,8 +75,12 @@ public: bool isResizable() const; void setResizable(bool resizeable); + void setVisible(bool isVisible); + bool isVisible() const; - QList stateInstances() const; + void initialize(const ObjectNodeInstance::Pointer &objectNodeInstance); + + QList stateInstances() const; protected: QmlGraphicsItemNodeInstance(QDeclarativeItem *item);