void Item::changeScalingPointState(qreal x, qreal y) { QRectF itemBoundingRect = calcNecessaryBoundingRect(); qreal x1= itemBoundingRect.left(); qreal x2 = itemBoundingRect.right(); qreal y1 = itemBoundingRect.top(); qreal y2 = itemBoundingRect.bottom(); int correction = 0; calcForChangeScalingState(QPointF(x, y), QPointF(x1, y1), QPointF(x2, y2), correction); }
void Item::drawFieldForResizeItem(QPainter* painter) { QRectF itemBoundingRect = calcNecessaryBoundingRect(); qreal x1= itemBoundingRect.left(); qreal x2 = itemBoundingRect.right(); qreal y1 = itemBoundingRect.top(); qreal y2 = itemBoundingRect.bottom(); setPenBrushDriftRect(painter); painter->drawRect(x1, y1, resizeDrift, resizeDrift); painter->drawRect(x2 - resizeDrift, y2 - resizeDrift, resizeDrift, resizeDrift); painter->drawRect(x1, y2 - resizeDrift, resizeDrift, resizeDrift); painter->drawRect(x2 - resizeDrift, y1, resizeDrift, resizeDrift); }
void Item::drawScalingRects(QPainter* painter) { QRectF itemBoundingRect = calcNecessaryBoundingRect(); qreal x1= itemBoundingRect.left(); qreal x2 = itemBoundingRect.right(); qreal y1 = itemBoundingRect.top(); qreal y2 = itemBoundingRect.bottom(); for (int i = 0; i < mListScalePoint.size(); ++i) { QPair<Item::ScalingPointState, QColor> point = mListScalePoint.at(i); QBrush brush(Qt::SolidPattern); brush.setColor(point.second); painter->setBrush(brush); if (point.first == Item::topLeftX) painter->drawRect(x1, y1 - scalingRect, scalingRect, scalingRect); else if (point.first == Item::bottomRightX) painter->drawRect(x2 - scalingRect, y2, scalingRect, scalingRect); else if (point.first == Item::topLeftY) painter->drawRect(x1 - scalingRect, y1, scalingRect, scalingRect); else if (point.first == Item::bottomRightY) painter->drawRect(x2, y2 - scalingRect, scalingRect, scalingRect); } }
QRectF Item::realBoundingRect() const { return mapToScene(calcNecessaryBoundingRect()).boundingRect(); }