Bug 439650 - Add Canvas transformation method
Summary: Add Canvas transformation method
Status: REPORTED
Alias: None
Product: krita
Classification: Applications
Component: Scripting (other bugs)
Version First Reported In: 4.4.5
Platform: Other All
: NOR wishlist
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-07-08 15:46 UTC by Aki
Modified: 2021-07-08 17:30 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aki 2021-07-08 15:46:25 UTC
SUMMARY

Canvas already has methods for getting / setting of rotation & scale(zoom) of transformation, only thing missing is translate of transformation.


# new methods

Canvas.transform() -> QTransform
Canvas.setTransform(transform: QTransform)

Canvas.translation() -> float, float
Canvas.setTranslation(x: float, y: float)


# existing rotation & scale methods

Canvas.rotation() -> float
Canvas.setRotation(angle: float)

Canvas.zoomLevel() -> float
Canvas.setZoomLevel(value: float)


# additionally signal for canvas transform change would be really useful.

Canvas.transformChanged = pyqtSignal(QTransform)
# or
Notifier.canvasTransformChanged = pyqtSignal(Canvas, QTransform)


references:

https://doc.qt.io/qt-5/qtransform.html

https://api.kde.org/appscomplete-api/krita-apidocs/libs/libkis/html/classCanvas.html

https://krita-artists.org/t/pyqt-document-inside-the-canvas-distances-and-pan/25960/11


/AkiR
Comment 1 Halla Rempt 2021-07-08 16:12:34 UTC
Do you mean for panning?
Comment 2 Aki 2021-07-08 17:30:07 UTC
(In reply to Halla Rempt from comment #1)
> Do you mean for panning?

Yes, panning is another word for it.

QTransform.translate() ≈ Canvas.pan()
QTransform.rotate() ≈ Canvas.rotation()
QTransform.scale() ≈ Canvas.zoomLevel()

/AkiR