diff --git a/src/domain/UBGraphicsDelegateFrame.cpp b/src/domain/UBGraphicsDelegateFrame.cpp index 77f45e9d..40a46074 100644 --- a/src/domain/UBGraphicsDelegateFrame.cpp +++ b/src/domain/UBGraphicsDelegateFrame.cpp @@ -832,9 +832,10 @@ void UBGraphicsDelegateFrame::positionHandles() } resetTransform(); - translate(center.x(), center.y()); - rotate(-angle); - translate(-center.x(), -center.y()); + setTransform(QTransform::fromTranslate(center.x(), center.y()), true); + setTransform(QTransform().rotate(-angle), true); + setTransform(QTransform::fromTranslate(-center.x(), -center.y()), true); + //TODO: combine these transforms into one mBottomRightResizeGripSvgItem->setParentItem(this); mBottomResizeGripSvgItem->setParentItem(this); diff --git a/src/domain/UBGraphicsItemDelegate.cpp b/src/domain/UBGraphicsItemDelegate.cpp index 9c45ce27..67b62ec4 100644 --- a/src/domain/UBGraphicsItemDelegate.cpp +++ b/src/domain/UBGraphicsItemDelegate.cpp @@ -792,7 +792,7 @@ void UBGraphicsItemDelegate::updateButtons(bool showUpdated) button->setParentItem(mFrame); button->setPos(topXTitleBar + (k++ * (frameButtonHeight + 5)), topYTitleBar); button->setTransform(tr); - button->scale(0.8,0.8); + button->setTransform(QTransform::fromScale(0.8, 0.8), true); } else if(button->getSection() == Qt::NoSection){ ++l; diff --git a/src/domain/UBGraphicsMediaItem.cpp b/src/domain/UBGraphicsMediaItem.cpp index 4e4829cd..07557a8c 100644 --- a/src/domain/UBGraphicsMediaItem.cpp +++ b/src/domain/UBGraphicsMediaItem.cpp @@ -318,7 +318,7 @@ void UBGraphicsMediaItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) QPointF eventPos = mapFromScene( event->scenePos()); QPointF translation = eventPos - mouseMovePos; - translate(translation.x(), translation.y()); + setTransform(QTransform::fromTranslate(translation.x(), translation.y()), true); } mMouseMovePos = event->scenePos(); diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 66e37abf..bf53d04d 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1264,7 +1264,7 @@ UBGraphicsPixmapItem* UBGraphicsScene::addPixmap(const QPixmap& pPixmap, QGraphi UBApplication::undoStack->push(uc); } - pixmapItem->scale(pScaleFactor, pScaleFactor); + pixmapItem->setTransform(QTransform::fromScale(pScaleFactor, pScaleFactor), true); if (pUseAnimation) { @@ -1403,7 +1403,7 @@ void UBGraphicsScene::addGraphicsWidget(UBGraphicsWidgetItem* graphicsWidget, co qreal ssf = 1 / UBApplication::boardController->systemScaleFactor(); - graphicsWidget->scale(ssf, ssf); + graphicsWidget->setTransform(QTransform::fromScale(ssf, ssf), true); graphicsWidget->setPos(QPointF(pPos.x() - graphicsWidget->boundingRect().width() / 2, pPos.y() - graphicsWidget->boundingRect().height() / 2)); @@ -1530,7 +1530,7 @@ UBGraphicsSvgItem* UBGraphicsScene::addSvg(const QUrl& pSvgFileUrl, const QPoint svgItem->setFlag(QGraphicsItem::ItemIsSelectable, true); qreal sscale = 1 / UBApplication::boardController->systemScaleFactor(); - svgItem->scale(sscale, sscale); + svgItem->setTransform(QTransform::fromScale(sscale, sscale), true); QPointF half(svgItem->boundingRect().width() / 2, svgItem->boundingRect().height() / 2); svgItem->setPos(pPos - half); @@ -1860,7 +1860,7 @@ QGraphicsItem* UBGraphicsScene::scaleToFitDocumentSize(QGraphicsItem* item, bool { qreal ratio = qMin(maxWidth / size.width(), maxHeight / size.height()); - item->scale(ratio, ratio); + item->setTransform(QTransform::fromScale(ratio, ratio), true); if(center) { diff --git a/src/domain/UBSelectionFrame.cpp b/src/domain/UBSelectionFrame.cpp index 72708dca..89da1c6d 100644 --- a/src/domain/UBSelectionFrame.cpp +++ b/src/domain/UBSelectionFrame.cpp @@ -157,7 +157,7 @@ void UBSelectionFrame::mousePressEvent(QGraphicsSceneMouseEvent *event) mLastTranslateOffset = QPointF(); mRotationAngle = 0; - if (scene()->itemAt(event->scenePos()) == mRotateButton) { + if (scene()->itemAt(event->scenePos(), transform()) == mRotateButton) { mOperationMode = om_rotating; } else { mOperationMode = om_moving; diff --git a/src/tools/UBGraphicsProtractor.cpp b/src/tools/UBGraphicsProtractor.cpp index 74f192a0..12e7d734 100644 --- a/src/tools/UBGraphicsProtractor.cpp +++ b/src/tools/UBGraphicsProtractor.cpp @@ -78,7 +78,7 @@ UBGraphicsProtractor::UBGraphicsProtractor() setData(UBGraphicsItemData::itemLayerType, QVariant(itemLayerType::CppTool)); //Necessary to set if we want z value to be assigned correctly setFlag(QGraphicsItem::ItemIsSelectable, false); - scale(1.5, 1.5); + setTransform(QTransform::fromScale(1.5, 1.5), true); } @@ -201,9 +201,9 @@ void UBGraphicsProtractor::mouseMoveEvent(QGraphicsSceneMouseEvent *event) case Resize : prepareGeometryChange(); - translate(rect().center().x(), rect().center().y()); - scale(scaleFactor, scaleFactor); - translate(-rect().center().x(), -rect().center().y()); + setTransform(QTransform::fromTranslate(rect().center().x(), rect().center().y()), true); + setTransform(QTransform::fromScale(scaleFactor, scaleFactor), true); + setTransform(QTransform::fromTranslate(-rect().center().x(), -rect().center().y()), true); mScaleFactor *= scaleFactor; break; @@ -445,40 +445,40 @@ void UBGraphicsProtractor::paintButtons(QPainter *painter) qreal scale = buttonSizeReference().width() / mCloseSvgItem->boundingRect().width(); mCloseSvgItem->setPos(closeButtonRect().topLeft() + rect().center()); mCloseSvgItem->resetTransform(); - mCloseSvgItem->translate(-closeButtonRect().left(),-closeButtonRect().top()); - mCloseSvgItem->rotate(-mStartAngle); - mCloseSvgItem->translate(closeButtonRect().left(), closeButtonRect().top()); - mCloseSvgItem->scale(scale * antiSc, scale * antiSc);//this do not impact the bounding box of thr svg item... + mCloseSvgItem->setTransform(QTransform::fromTranslate(-closeButtonRect().left(),-closeButtonRect().top()), true); + mCloseSvgItem->setRotation(rotation() -mStartAngle); + mCloseSvgItem->setTransform(QTransform::fromTranslate(closeButtonRect().left(), closeButtonRect().top()), true); + mCloseSvgItem->setTransform(QTransform::fromScale(scale * antiSc, scale * antiSc), true);//this do not impact the bounding box of thr svg item... mResetSvgItem->setPos(resetButtonRect().topLeft() + rect().center()); mResetSvgItem->resetTransform(); - mResetSvgItem->translate(-resetButtonRect().left(), -resetButtonRect().top()); - mResetSvgItem->rotate(-mStartAngle); - mResetSvgItem->translate(resetButtonRect().left(), resetButtonRect().top()); - mResetSvgItem->scale(scale * antiSc, scale * antiSc);//this do not impact the bounding box of thr svg item... + mResetSvgItem->setTransform(QTransform::fromTranslate(-resetButtonRect().left(), -resetButtonRect().top()), true); + mResetSvgItem->setRotation(rotation() -mStartAngle); + mResetSvgItem->setTransform(QTransform::fromTranslate(resetButtonRect().left(), resetButtonRect().top()), true); + mResetSvgItem->setTransform(QTransform::fromScale(scale * antiSc, scale * antiSc), true);//this do not impact the bounding box of thr svg item... mResizeSvgItem->setPos(resizeButtonRect().topLeft() + rect().center()); mResizeSvgItem->resetTransform(); - mResizeSvgItem->translate(-resizeButtonRect().left(), -resizeButtonRect().top()); - mResizeSvgItem->rotate(-mStartAngle); - mResizeSvgItem->translate(resizeButtonRect().left(), resizeButtonRect().top()); - mResizeSvgItem->scale(scale * antiSc, scale * antiSc);//this do not impact the bounding box of thr svg item... + mResizeSvgItem->setTransform(QTransform::fromTranslate(-resizeButtonRect().left(), -resizeButtonRect().top()), true); + mResizeSvgItem->setRotation(rotation() -mStartAngle); + mResizeSvgItem->setTransform(QTransform::fromTranslate(resizeButtonRect().left(), resizeButtonRect().top()), true); + mResizeSvgItem->setTransform(QTransform::fromScale(scale * antiSc, scale * antiSc), true);//this do not impact the bounding box of thr svg item... mRotateSvgItem->setPos(rotateButtonRect().topLeft() + rect().center()); mRotateSvgItem->resetTransform(); - mRotateSvgItem->translate(-rotateButtonRect().left(), -rotateButtonRect().top()); - mRotateSvgItem->rotate(-mStartAngle); - mRotateSvgItem->translate(rotateButtonRect().left(), rotateButtonRect().top()); - mRotateSvgItem->scale(scale, scale);//this do not impact the bounding box of thr svg item... + mRotateSvgItem->setTransform(QTransform::fromTranslate(-rotateButtonRect().left(), -rotateButtonRect().top()), true); + mRotateSvgItem->setRotation(rotation() -mStartAngle); + mRotateSvgItem->setTransform(QTransform::fromTranslate(rotateButtonRect().left(), rotateButtonRect().top()), true); + mRotateSvgItem->setTransform(QTransform::fromScale(scale, scale), true);//this do not impact the bounding box of thr svg item... } qreal scale = markerSizeReference().width()/mMarkerSvgItem->boundingRect().width(); mMarkerSvgItem->setPos(markerButtonRect().topLeft() + rect().center()); mMarkerSvgItem->resetTransform(); - mMarkerSvgItem->translate(-markerButtonRect().left(), -markerButtonRect().top()); - mMarkerSvgItem->rotate(- mStartAngle - mCurrentAngle); - mMarkerSvgItem->translate(markerButtonRect().left(), markerButtonRect().top()); - mMarkerSvgItem->scale(scale, scale);//this do not impact the bounding box of thr svg item... + mMarkerSvgItem->setTransform(QTransform::fromTranslate(-markerButtonRect().left(), -markerButtonRect().top()), true); + mMarkerSvgItem->setRotation(rotation() - mStartAngle - mCurrentAngle); + mMarkerSvgItem->setTransform(QTransform::fromTranslate(markerButtonRect().left(), markerButtonRect().top()), true); + mMarkerSvgItem->setTransform(QTransform::fromScale(scale, scale), true);//this do not impact the bounding box of thr svg item... mCloseSvgItem->setVisible(mShowButtons); mResetSvgItem->setVisible(mShowButtons);