Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft: Transformable elements proposal #5596

Draft
wants to merge 6 commits into
base: master
Choose a base branch
from

Commits on Apr 2, 2024

  1. clang-format improvement,

    automatical handling of attributes may decrease readability:
    No good default, therefore using 'Leave'
    Febbe committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    96872a7 View commit details
    Browse the repository at this point in the history
  2. move Point from ::utl:: to xoj::util::

     - added some constexpr to Rectangle and Point
     - made CairoWrapper `[[nodiscard]]`, its a guard and must not be discarded
    Febbe committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    8d44f69 View commit details
    Browse the repository at this point in the history
  3. Fixed Memory leaks for some GLibGuards, added out_ptr

     - similar to c++23 out_ptr
    Febbe committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    83ce925 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    54e6642 View commit details
    Browse the repository at this point in the history
  5. trailing return types previously done in xournalpp#5596

     - seperation of changes, which do not belong to xournalpp#5596
     - increases readability of xournalpp#5596
    Febbe committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    ef1216f View commit details
    Browse the repository at this point in the history
  6. Implements general element rotation

    This PR tends to implement one of the most desired enhancements (xournalpp#918), to rotate Images, Text and Latex.
    For this, I replaced every explicit position, scale and rotation state in the Elements with affine transformations.
    They are never applied to the data, instead the affine transformation is handled to cairo, which itself applies an affine transformation anyway.
    This has the advantage,
    
       - that we get rotation support out of the box via cairo and
       - that we can reduce computing power, since only one transformation is applied to each Shape
       - when cairo drawing uses hardware acceleration, strokes now also will use hardware acceleration for the transformation
    Febbe committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    85b5193 View commit details
    Browse the repository at this point in the history