forked from qt-creator/qt-creator
QmlDesigner.NodeInstances: Item with content are selectable
If a list view for example has content it is now selectable too. Task-number: QTCREATORBUG-5476 Change-Id: Ifb0902edcda064e488337c94fc4e575994da3ef1 Reviewed-on: http://codereview.qt.nokia.com/1786 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
This commit is contained in:
committed by
Thomas Hartmann
parent
97ad34bcc4
commit
a060480e82
@@ -34,6 +34,8 @@
|
|||||||
|
|
||||||
#include <QGraphicsObject>
|
#include <QGraphicsObject>
|
||||||
#include "private/qgraphicsitem_p.h"
|
#include "private/qgraphicsitem_p.h"
|
||||||
|
#include <private/qdeclarativemetatype_p.h>
|
||||||
|
|
||||||
#include <QStyleOptionGraphicsItem>
|
#include <QStyleOptionGraphicsItem>
|
||||||
#include <QPixmap>
|
#include <QPixmap>
|
||||||
#include <QSizeF>
|
#include <QSizeF>
|
||||||
@@ -57,9 +59,28 @@ QGraphicsObject *GraphicsObjectNodeInstance::graphicsObject() const
|
|||||||
return static_cast<QGraphicsObject*>(object());
|
return static_cast<QGraphicsObject*>(object());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GraphicsObjectNodeInstance::childrenHasContent(QGraphicsItem *graphicsItem) const
|
||||||
|
{
|
||||||
|
QGraphicsObject *graphicsObject = graphicsItem->toGraphicsObject();
|
||||||
|
|
||||||
|
if (graphicsObject && !nodeInstanceServer()->hasInstanceForObject(graphicsObject) && !graphicsItem->flags().testFlag(QGraphicsItem::ItemHasNoContents))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
foreach (QGraphicsItem *childItem, graphicsItem->childItems()) {
|
||||||
|
bool childHasContent = childrenHasContent(childItem);
|
||||||
|
if (childHasContent)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
bool GraphicsObjectNodeInstance::hasContent() const
|
bool GraphicsObjectNodeInstance::hasContent() const
|
||||||
{
|
{
|
||||||
return m_hasContent;
|
if (m_hasContent)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return childrenHasContent(graphicsObject());
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<ServerNodeInstance> GraphicsObjectNodeInstance::childItems() const
|
QList<ServerNodeInstance> GraphicsObjectNodeInstance::childItems() const
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ protected:
|
|||||||
QGraphicsObject *graphicsObject() const;
|
QGraphicsObject *graphicsObject() const;
|
||||||
void paintRecursively(QGraphicsItem *graphicsItem, QPainter *painter) const;
|
void paintRecursively(QGraphicsItem *graphicsItem, QPainter *painter) const;
|
||||||
QRectF boundingRectWithStepChilds(QGraphicsItem *parentItem) const;
|
QRectF boundingRectWithStepChilds(QGraphicsItem *parentItem) const;
|
||||||
|
bool childrenHasContent(QGraphicsItem *graphicsItem) const;
|
||||||
|
|
||||||
private: // variables
|
private: // variables
|
||||||
bool m_hasContent;
|
bool m_hasContent;
|
||||||
|
|||||||
Reference in New Issue
Block a user