Files
qt-creator/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/graphicalnodeinstance.h
Marco Bubke 7976456002 QmlDesigner: Add content item hack
There is no stand content item interface, so try to work around to enable
snapping and anchoring.

Change-Id: Ib2eaf0d6c35e3ba289dd7d55b2ba4c064ad40748
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2013-05-22 14:45:43 +02:00

99 lines
2.8 KiB
C++

#ifndef QMLDESIGNER_GRAPHICALNODEINSTANCE_H
#define QMLDESIGNER_GRAPHICALNODEINSTANCE_H
#include <QtGlobal>
#include "objectnodeinstance.h"
#include <designersupport.h>
namespace QmlDesigner {
namespace Internal {
class GraphicalNodeInstance : public ObjectNodeInstance
{
public:
typedef QSharedPointer<GraphicalNodeInstance> Pointer;
typedef QWeakPointer<GraphicalNodeInstance> WeakPointer;
~GraphicalNodeInstance();
void initialize(const ObjectNodeInstance::Pointer &objectNodeInstance);
bool isGraphical() const;
bool hasContent() const;
QRectF boundingRect() const;
QTransform customTransform() const;
QTransform contentTransform() const Q_DECL_OVERRIDE;
QTransform sceneTransform() const;
double opacity() const;
double rotation() const;
double scale() const;
QPointF transformOriginPoint() const;
double zValue() const;
QPointF position() const;
QSizeF size() const;
QImage renderImage() const;
QImage renderPreviewImage(const QSize &previewImageSize) const;
QList<ServerNodeInstance> childItems() const;
void updateDirtyNodeRecursive();
static void createEffectItem(bool createEffectItem);
int penWidth() const;
void setPropertyVariant(const PropertyName &name, const QVariant &value);
void setPropertyBinding(const PropertyName &name, const QString &expression);
QVariant property(const PropertyName &name) const;
void resetProperty(const PropertyName &name) ;
QList<ServerNodeInstance> stateInstances() const;
bool isAnchoredByChildren() const;
bool hasAnchor(const PropertyName &name) const;
QPair<PropertyName, ServerNodeInstance> anchor(const PropertyName &name) const;
void doComponentComplete();
protected:
explicit GraphicalNodeInstance(QObject *object);
void setHasContent(bool hasContent);
DesignerSupport *designerSupport() const;
Qt5NodeInstanceServer *qt5NodeInstanceServer() const;
void updateDirtyNodeRecursive(QQuickItem *parentItem) const;
void updateAllDirtyNodeRecursive(QQuickItem *parentItem) const;
QRectF boundingRectWithStepChilds(QQuickItem *parentItem) const;
void resetHorizontal();
void resetVertical();
QList<ServerNodeInstance> childItemsForChild(QQuickItem *childItem) const;
void refresh();
static bool anyItemHasContent(QQuickItem *quickItem);
static bool childItemsHaveContent(QQuickItem *quickItem);
double x() const;
double y() const;
virtual QQuickItem *quickItem() const;
private: // functions
private: // variables
bool m_hasHeight;
bool m_hasWidth;
bool m_hasContent;
double m_x;
double m_y;
double m_width;
double m_height;
static bool s_createEffectItem;
};
} // namespace Internal
} // namespace QmlDesigner
#endif // QMLDESIGNER_GRAPHICALNODEINSTANCE_H