The current make_layer function has a `None` default for the shape color and the line color. With that value the current preference is used. This, and how the function is called, results in some confusing behaviors:
* Newly created layers will only use 2 values from the preferences when they might use 5. The latter makes more sense for the end-user IMO.
* Layers created during DXF import (for example) will have a different shape color depending on the current preferences.
* The make_layer function may reapply colors that have already been set by the view provider.
To solve this all view property related function parameter have been changed to a not None value. If a None value is supplied the view property as set by the view provider is not changed. The Layer Manager has been updated accordingly.
I realize that calling a function with 6 None values is not very convenient, but think it is the solution that is least likely to break other exiting code.
Additionally:
* Removed the makeLayer function. Layers were introduced in V0.19 when the naming scheme was changed to "make_*". Maybe it was created by mistake, or before the actual renaming operation started, but it is safe to remove it now.
* Removed overly verbose messages.
* gui_layers.py had a missing import (result of a previous V0.22 PR): `from draftutils import utils`.
This creates new method overload for changing layer of exact
ElementItem. This fixes strange behavior of the checkboxes for elements
that were dependent not on what user clicked but on what is selected.
Fixes: #8814
This commit like previous one introduces ability to style list of
elements in the sketcher. It also completely refactors the rendering
delegate introducing dedicated method for calculating rects of each
element and method for rendering each sub control. Thanks to this
refactor we can be sure that areas drawn are the same as areas checked
for events in editorEvent.
This adds reference to the actual widget to the painting of Constraints
List control of Sketcher. Thanks to this this list can now be styled
using standard mechanisms of Qt framework like QSS.
This ensures that checkboxes drawn in the Elements UI of the sketcher
can be styled using the correct style.
Three changes are introduced:
1. paint() method uses style provided by the widget, not application.
2. Indicator is drawn using PE_IndicatorCheckBox not CE_CheckBox - it
allows to use ::indicator in qss to style it properly. This works the
same as TreeView.
3. Fix for minor issues with text alignement and extension of selected items
background to cover checkbox. This is how other controls of this kind
work.
* Restores Arch_Axis bubbles in a TechDraw_ArchView. This fixes a regression in V0.21 and 0.22, I suspect an unwanted side-effect of a previous PR of mine (#8688).
* Also fixes the linetype of axes and other annotation objects in a TechDraw_ArchView.
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.