Пример #1
0
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);
}
Пример #2
0
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);
}
Пример #3
0
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);
	}
}
Пример #4
0
QRectF Item::realBoundingRect() const
{
	return mapToScene(calcNecessaryBoundingRect()).boundingRect();
}