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 "private/qgraphicsitem_p.h"
|
||||
#include <private/qdeclarativemetatype_p.h>
|
||||
|
||||
#include <QStyleOptionGraphicsItem>
|
||||
#include <QPixmap>
|
||||
#include <QSizeF>
|
||||
@@ -57,9 +59,28 @@ QGraphicsObject *GraphicsObjectNodeInstance::graphicsObject() const
|
||||
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
|
||||
{
|
||||
return m_hasContent;
|
||||
if (m_hasContent)
|
||||
return true;
|
||||
|
||||
return childrenHasContent(graphicsObject());
|
||||
}
|
||||
|
||||
QList<ServerNodeInstance> GraphicsObjectNodeInstance::childItems() const
|
||||
|
||||
@@ -88,7 +88,7 @@ protected:
|
||||
QGraphicsObject *graphicsObject() const;
|
||||
void paintRecursively(QGraphicsItem *graphicsItem, QPainter *painter) const;
|
||||
QRectF boundingRectWithStepChilds(QGraphicsItem *parentItem) const;
|
||||
|
||||
bool childrenHasContent(QGraphicsItem *graphicsItem) const;
|
||||
|
||||
private: // variables
|
||||
bool m_hasContent;
|
||||
|
||||
Reference in New Issue
Block a user