Follow-up PR of #11940.
* The new ui layout follows that of the Draft preferences.
* The ConversionFast checkbox enables/disables the 3 preferences listed below it.
* The WindowColor preference was removed. It is not a per-object, or even a per-file setting. The fix in #11940 would change windows in existing projects when they are recomputed. It is therefore better to keep the V0.21 solution where the glass is colored according to the preferences and the rest of the window receives a color based on its ShapeColor. Users who want to apply specific colors can use a multi-material.
Additionally 2 Arch_Window bugs were fixed:
* If the W1 value was changed the box tracker was not repositioned relative to the cursor.
* The WindowColor was not applied because of a typo in the code. De current default color is quite dark BTW.
Note that all dimensional values that were not really defaults, but just the last entered values, have been removed from preferences-archdefaults.ui. As a result the layout looks a bit strange. That will be improved in a next PR.
Fixes a problem introduced with a previous PR of mine (#7591). Hosts would only be touched if that property of the window was modified. But the hosts of a window should also update if other properties of the window change.
Additionally a width or height change of a window now touches the hosts on the subsequent shape change.
With the current code, if you place a simple door and change its Opening property to 50, the door leaf and the frame intersect. This PR fixes that issue.
Previously, just the hinge position was changed, with the rotation
direction kept unchanged, which would make the door open towards the
other side of the wall. This also inverts the rotation direction, so the
door still opens toward the same side of the wall, which is more
intuitively what you would expect.
This ensures the rotation edge and mode GUI elements are cleared when starting
to add or edit a component. Previously, when adding a new component or
editing one without rotation, the GUI elements would retain the value
from the previously edited component, which made it hard to check that
components did not have any rotation, and would make it easy to
accidentally add rotation to components that did not need it (just by
clicking edit and confirming).
getSubVolume() -
- When Windown is a Clone, HoleWire in Clone is tested
- However, if HoleWire is not set, no further check if HoleWire in Original is set
- The original code direclty check the Base's Wires BoundBox as HoleWire
getSubVolume() -
- When Windown is a Clone, no base is set
- When HoleDepth is set, no further check if there is a Clone to set its base to Clone's base
- The original code return None when no base is set
* Add Draft_LinkArray and Draft_PathLinkArray that uses link for both
data and visualization, which supports linking external objects
* Add link group support for draft snap
* Fix ArchWindows expression ambiguity