element-editor: fix rotation, add mirror, add flip for graphical primitives

Now that the problem with the translations of keyboard shortcuts has been resolved and rotation using the space bar works reliably in principle, I took a closer look at the rotation function itself in the element editor.

I noticed, for example, that arcs can be rotated at an angle of 15°. This doesn't really make sense, as the “arc” part doesn't have the “rotation” property. There is only width and height.
And somehow rotating arcs didn't work well: start- and span-angles weren't adjusted.

Lines and polygons can be rotated in 15° increments, which doesn't make much sense, if other parts that can only be rotated in 90° increments are selected at the same time.

To make a long story short:
I reworked the rotation functions of the graphical parts so that now all parts are rotated in 90° steps around the origin! This means that it is now possible to mark several parts and rotate them around the same point at the same time!

In addition, the functions for mirroring graphic parts at y-axis (shortcut "M") and flipping at x-axis (shortcut "F") have been implemented.

I have saved the text elements for later!
(or someone else)
This commit is contained in:
plc-user
2025-02-14 20:31:03 +01:00
parent fc286cca22
commit bd3b39cea3
74 changed files with 4932 additions and 4558 deletions

View File

@@ -92,6 +92,7 @@ namespace QET {
QIcon EndLineSimple;
QIcon EndLineTriangle;
QIcon EPS;
QIcon Flip;
QIcon Folder;
QIcon FolderDelete;
QIcon FolderEdit;
@@ -117,6 +118,7 @@ namespace QET {
QIcon InsertImage;
QIcon Lower;
QIcon IC_MoveFile;
QIcon Mirror;
QIcon Names;
QIcon Neutral;
QIcon NewDiagram;
@@ -517,6 +519,7 @@ void QET::Icons::initIcons()
EndLineSimple .addFile(":/ico/16x16/endline-simple.png");
EndLineTriangle .addFile(":/ico/16x16/endline-triangle.png");
EPS .addFile(":/ico/32x32/image-x-eps.png");
Flip .addFile(":/ico/16x16/flip.png");
Folder .addFile(":/ico/16x16/folder.png");
FolderDelete .addFile(":/ico/16x16/folder-delete.png");
FolderDelete .addFile(":/ico/22x22/folder-delete.png");
@@ -552,6 +555,7 @@ void QET::Icons::initIcons()
InsertImage .addFile(":/ico/22x22/insert-image.png");
Lower .addFile(":/ico/22x22/lower.png");
IC_MoveFile .addFile(":/ico/16x16/item-move.png");
Mirror .addFile(":/ico/16x16/mirror.png");
Names .addFile(":/ico/22x22/names.png");
Neutral .addFile(":/ico/16x16/neutral.png");
NewDiagram .addFile(":/ico/128x128/diagram.png");