22#include <QGuiApplication>
24#include <QFontMetricsF>
32 const qreal margin = 10;
35 const QFontMetricsF fm(QGuiApplication::font());
36 const qreal width = fm.horizontalAdvance(label);
37 return QSizeF(width + (2 * margin), fm.height() + (2 * margin));
47 for (
State *childState : childStates) {
48 childState->setPos(childState->pos() + offset);
66 if (!item || !parentItem)
70 if (oldParent == parentItem)
74 const QPointF oldParentPos = (oldParent ? oldParent->absolutePos() : QPointF(0, 0));
75 const QPointF newParentPos = parentItem->
absolutePos();
76 const QPointF delta = oldParentPos - newParentPos;
79 const QPointF itemRelPos = item->
pos();
80 item->
setPos(itemRelPos + delta);
void setPos(const QPointF &pos)
QPointF absolutePos() const
QPointF pos
The position of the element from the top-left corner.
void setParent(QObject *object)
Element * parentElement() const
static bool fixupLayout(State *)
static QSizeF sizeForLabel(const QString &label)
static bool moveInner(State *state, const QPointF &offset)
Move all direct children of state state by offset offset.
static bool moveToParent(Element *item, Element *parentItem)
QList< State * > childStates() const