Panel Containment Refactoring
Changes include:
-
This removes the functionality that allowed non-fill spacers to be drag&dropped to resize its size. The reason behind this is that it took a lot of code, it was rather unreliable, and I personally felt like it was not worth it. Now, you can set the precise width of the spacer using a SpinBox in the overlay sheet when you hover on a spacer.
-
This makes the virtual padding around the panel larger, meaning that you'll have less accidental widget drag-out-of-panel events.
-
This MR completely refactors how applets are stored in the currentLayout. Before this they were simply child elements, now we do actually have a ListModel for them. This changes a lot of code in how the layout is managed.
-
This moves placeHolder size code to be declarative instead of imperative and makes it more reliable.
-
Generally speaking, the code of the layout manager is a simplified
-
This refactors margin area highlights, which are much more compact code-wise. They now hide while drag and dropping items, and only appear when actually editing the panel (instead of edit mode in general).
-
This simplifies greatly the code to determine the size of the panel containment element, which should also be faster, given that it doesn't have to run js loops over its items.
-
The configOverlay is created only one time and just hidden when unnecessary
-
The layouting of the applet container has been simplified by moving most of it to a function
-
Animations are used less frequently: only when drag and dropping applets whilst in edit mode. This avoids applets moving around when not necessary.
Commits will be squashed.