void SCnFieldItem::updateOnChilds() { qreal offset = childsOffset(); QGraphicsItem *child = 0; QList<QGraphicsItem*> _childItems = childItems(); foreach(child, _childItems) { if (!isSCnFieldType(child->type())) return; // skip non scn-fields SCnFieldItem *item = static_cast<SCnFieldItem*>(child); item->setPos(30, offset); offset += 10 + item->boundingRect().height(); } }
void SCnEditorScene::updateFieldsPositions() { SCnFieldItem *field = 0; qreal y_offset = 40.f; qreal max_width = 0.f; foreach(field, mFields) { QRectF rect = field->boundingRect(); // calculate new position QPointF pos; pos.setX(20); pos.setY(y_offset); y_offset += mLevelDistance + rect.height(); qreal w = rect.width(); max_width = qMax(w, max_width); field->setPos(pos); }