summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@nokia.com>2010-03-25 19:42:22 +0100
committerKai Koehne <kai.koehne@nokia.com>2010-03-30 14:41:55 +0200
commit387f906b3bdb0eb297ec11451a1f6043a05b1397 (patch)
treed39cef3cf473acf70e63b31052cdaf29f181231d
parent24829c76a0f6b21e30239e8a9b778dc1104c12b0 (diff)
downloadqt-creator-387f906b3bdb0eb297ec11451a1f6043a05b1397.tar.gz
Fix the reflection of the visible property in the Formeditor
Task-Number: BAUHAUS-449
-rw-r--r--src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp25
-rw-r--r--src/plugins/qmldesigner/components/formeditor/formeditoritem.h4
-rw-r--r--src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp3
-rw-r--r--src/plugins/qmldesigner/core/include/nodeinstance.h4
-rw-r--r--src/plugins/qmldesigner/core/instances/graphicsobjectnodeinstance.cpp36
-rw-r--r--src/plugins/qmldesigner/core/instances/graphicsobjectnodeinstance.h4
-rw-r--r--src/plugins/qmldesigner/core/instances/nodeinstance.cpp18
-rw-r--r--src/plugins/qmldesigner/core/instances/nodeinstanceview.cpp6
-rw-r--r--src/plugins/qmldesigner/core/instances/objectnodeinstance.cpp9
-rw-r--r--src/plugins/qmldesigner/core/instances/objectnodeinstance.h2
10 files changed, 41 insertions, 70 deletions
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp b/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp
index 8d9844e971..1122cab49b 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp
@@ -61,7 +61,8 @@ FormEditorItem::FormEditorItem(const QmlItemNode &qmlItemNode, FormEditorScene*
m_snappingLineCreator(this),
m_qmlItemNode(qmlItemNode),
m_borderWidth(1.0),
- m_highlightBoundingRect(false)
+ m_highlightBoundingRect(false),
+ m_isContentVisible(true)
{
setCacheMode(QGraphicsItem::DeviceCoordinateCache);
setup();
@@ -79,6 +80,8 @@ void FormEditorItem::setup()
if (QGraphicsItem::parentItem() == scene()->formLayerItem())
m_borderWidth = 0.0;
+ setContentVisible(qmlItemNode().instanceValue("visible").toBool());
+
setFlag(QGraphicsItem::ItemIsMovable, true);
updateGeometry();
updateVisibilty();
@@ -171,6 +174,23 @@ void FormEditorItem::setHighlightBoundingRect(bool highlight)
}
}
+void FormEditorItem::setContentVisible(bool visible)
+{
+ if (visible == m_isContentVisible)
+ return;
+
+ m_isContentVisible = visible;
+ update();
+}
+
+bool FormEditorItem::isContentVisible() const
+{
+ if (parentItem())
+ return parentItem()->isContentVisible() && m_isContentVisible;
+
+ return m_isContentVisible;
+}
+
FormEditorItem::~FormEditorItem()
{
scene()->removeItemFromHash(this);
@@ -248,7 +268,8 @@ void FormEditorItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *,
painter->save();
painter->setRenderHint(QPainter::Antialiasing, true);
- qmlItemNode().paintInstance(painter);
+ if (isContentVisible())
+ qmlItemNode().paintInstance(painter);
painter->setRenderHint(QPainter::Antialiasing, false);
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditoritem.h b/src/plugins/qmldesigner/components/formeditor/formeditoritem.h
index f55357e24d..45ff4a292e 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditoritem.h
+++ b/src/plugins/qmldesigner/components/formeditor/formeditoritem.h
@@ -100,6 +100,9 @@ public:
void setHighlightBoundingRect(bool highlight);
+ void setContentVisible(bool visible);
+ bool isContentVisible() const;
+
protected:
AbstractFormEditorTool* tool() const;
void paintBoundingRect(QPainter *painter) const;
@@ -122,6 +125,7 @@ private: // variables
QRectF m_boundingRect;
double m_borderWidth;
bool m_highlightBoundingRect;
+ bool m_isContentVisible;
};
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp
index b7ff3213ae..267d2678f7 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp
@@ -168,6 +168,9 @@ void FormEditorScene::synchronizeOtherProperty(const QmlItemNode &qmlItemNode, c
if (propertyName == "clip")
item->setFlag(QGraphicsItem::ItemClipsChildrenToShape, qmlItemNode.instanceValue("clip").toBool());
+ if (propertyName == "visible")
+ item->setContentVisible(qmlItemNode.instanceValue("visible").toBool());
+
if (item)
item->update();
}
diff --git a/src/plugins/qmldesigner/core/include/nodeinstance.h b/src/plugins/qmldesigner/core/include/nodeinstance.h
index 644f503f57..9c382a0a65 100644
--- a/src/plugins/qmldesigner/core/include/nodeinstance.h
+++ b/src/plugins/qmldesigner/core/include/nodeinstance.h
@@ -119,7 +119,6 @@ public:
QVariant property(const QString &name) const;
QVariant defaultValue(const QString &name) const;
- bool isVisible() const;
bool isValid() const;
void makeInvalid();
bool hasContent() const;
@@ -172,9 +171,6 @@ private: // functions
void paintUpdate();
- void show();
- void hide();
-
QObject *internalObject() const; // should be not used outside of the nodeinstances!!!!
diff --git a/src/plugins/qmldesigner/core/instances/graphicsobjectnodeinstance.cpp b/src/plugins/qmldesigner/core/instances/graphicsobjectnodeinstance.cpp
index fb8f87036e..db32257797 100644
--- a/src/plugins/qmldesigner/core/instances/graphicsobjectnodeinstance.cpp
+++ b/src/plugins/qmldesigner/core/instances/graphicsobjectnodeinstance.cpp
@@ -38,7 +38,6 @@ namespace Internal {
GraphicsObjectNodeInstance::GraphicsObjectNodeInstance(QGraphicsObject *graphicsObject, bool hasContent)
: ObjectNodeInstance(graphicsObject),
- m_isVisible(true),
m_hasContent(hasContent)
{
}
@@ -54,16 +53,6 @@ bool GraphicsObjectNodeInstance::hasContent() const
return m_hasContent;
}
-bool GraphicsObjectNodeInstance::isVisible() const
-{
- return m_isVisible;
-}
-
-void GraphicsObjectNodeInstance::setVisible(bool isVisible)
-{
- m_isVisible = isVisible;
-}
-
QPointF GraphicsObjectNodeInstance::position() const
{
return graphicsObject()->pos();
@@ -148,19 +137,11 @@ bool GraphicsObjectNodeInstance::isGraphicsObject() const
void GraphicsObjectNodeInstance::setPropertyVariant(const QString &name, const QVariant &value)
{
- if (name == "visible") {
- setVisible(value.toBool());
- return;
- }
-
ObjectNodeInstance::setPropertyVariant(name, value);
}
QVariant GraphicsObjectNodeInstance::property(const QString &name) const
{
- if (name == "visible")
- return isVisible();
-
return ObjectNodeInstance::property(name);
}
@@ -187,17 +168,16 @@ void GraphicsObjectNodeInstance::paint(QPainter *painter) const
{
painter->save();
Q_ASSERT(graphicsObject());
- if (isVisible()) {
- if (hasContent())
- graphicsObject()->paint(painter, 0);
-
- foreach(QGraphicsItem *graphicsItem, graphicsObject()->childItems()) {
- QGraphicsObject *graphicsObject = qgraphicsitem_cast<QGraphicsObject*>(graphicsItem);
- if (graphicsObject && !nodeInstanceView()->hasInstanceForObject(graphicsObject))
- paintRecursively(graphicsItem, painter);
- }
+ if (hasContent())
+ graphicsObject()->paint(painter, 0);
+
+ foreach(QGraphicsItem *graphicsItem, graphicsObject()->childItems()) {
+ QGraphicsObject *graphicsObject = qgraphicsitem_cast<QGraphicsObject*>(graphicsItem);
+ if (graphicsObject && !nodeInstanceView()->hasInstanceForObject(graphicsObject))
+ paintRecursively(graphicsItem, painter);
}
+
painter->restore();
}
diff --git a/src/plugins/qmldesigner/core/instances/graphicsobjectnodeinstance.h b/src/plugins/qmldesigner/core/instances/graphicsobjectnodeinstance.h
index 1fb280e3f1..ab718a2c45 100644
--- a/src/plugins/qmldesigner/core/instances/graphicsobjectnodeinstance.h
+++ b/src/plugins/qmldesigner/core/instances/graphicsobjectnodeinstance.h
@@ -67,9 +67,6 @@ public:
bool equalGraphicsItem(QGraphicsItem *item) const;
- bool isVisible() const;
- void setVisible(bool isVisible);
-
void setPropertyVariant(const QString &name, const QVariant &value);
QVariant property(const QString &name) const;
@@ -82,7 +79,6 @@ protected:
void paintRecursively(QGraphicsItem *graphicsItem, QPainter *painter) const;
static QPair<QGraphicsObject*, bool> createGraphicsObject(const NodeMetaInfo &metaInfo, QDeclarativeContext *context);
private: // variables
- bool m_isVisible;
bool m_hasContent;
};
diff --git a/src/plugins/qmldesigner/core/instances/nodeinstance.cpp b/src/plugins/qmldesigner/core/instances/nodeinstance.cpp
index f0898677ed..c604b4c3d1 100644
--- a/src/plugins/qmldesigner/core/instances/nodeinstance.cpp
+++ b/src/plugins/qmldesigner/core/instances/nodeinstance.cpp
@@ -423,24 +423,6 @@ QVariant NodeInstance::defaultValue(const QString &name) const
}
/*!
-\brief Returns if the NodeInstance is visible.
-\returns true if the NodeInstance is visible
-*/
-bool NodeInstance::isVisible() const
-{
- return m_nodeInstance->isVisible();
-}
-
-void NodeInstance::show()
-{
- m_nodeInstance->setVisible(true);
-}
-void NodeInstance::hide()
-{
- m_nodeInstance->setVisible(false);
-}
-
-/*!
\brief Returns if the NodeInstance is valid.
\returns true if the NodeInstance is valid
*/
diff --git a/src/plugins/qmldesigner/core/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/core/instances/nodeinstanceview.cpp
index 2797207926..b37a280419 100644
--- a/src/plugins/qmldesigner/core/instances/nodeinstanceview.cpp
+++ b/src/plugins/qmldesigner/core/instances/nodeinstanceview.cpp
@@ -144,8 +144,7 @@ void NodeInstanceView::modelAboutToBeDetached(Model * model)
*/
void NodeInstanceView::nodeCreated(const ModelNode &createdNode)
{
- NodeInstance instance(loadNode(createdNode));
- instance.show();
+ loadNode(createdNode);
}
/*! \brief Notifing the view that a node was created.
@@ -663,7 +662,6 @@ QRectF NodeInstanceView::sceneRect() const
return QRectF();
}
-}
QFileSystemWatcher *NodeInstanceView::fileSystemWatcher()
{
@@ -702,3 +700,5 @@ void NodeInstanceView::refreshLocalFileProperty(const QString &path)
}
}
}
+
+}
diff --git a/src/plugins/qmldesigner/core/instances/objectnodeinstance.cpp b/src/plugins/qmldesigner/core/instances/objectnodeinstance.cpp
index 19d902e2d9..77414f10de 100644
--- a/src/plugins/qmldesigner/core/instances/objectnodeinstance.cpp
+++ b/src/plugins/qmldesigner/core/instances/objectnodeinstance.cpp
@@ -725,15 +725,6 @@ int ObjectNodeInstance::penWidth() const
return 0;
}
-bool ObjectNodeInstance::isVisible() const
-{
- return false;
-}
-
-void ObjectNodeInstance::setVisible(bool /*isVisible*/)
-{
-}
-
static bool metaObjectHasNotPropertyName(NodeInstanceMetaObject *metaObject, const QString &propertyName)
{
for (int i = 0; i < metaObject->count(); i++) {
diff --git a/src/plugins/qmldesigner/core/instances/objectnodeinstance.h b/src/plugins/qmldesigner/core/instances/objectnodeinstance.h
index 9376aa7878..5bb64c9679 100644
--- a/src/plugins/qmldesigner/core/instances/objectnodeinstance.h
+++ b/src/plugins/qmldesigner/core/instances/objectnodeinstance.h
@@ -144,8 +144,6 @@ public:
virtual QVariant property(const QString &name) const;
virtual void resetProperty(const QString &name);
virtual void refreshProperty(const QString &name);
- virtual bool isVisible() const;
- virtual void setVisible(bool isVisible);
void createDynamicProperty(const QString &name, const QString &typeName);
void setDeleteHeldInstance(bool deleteInstance);