The original code was in `DraftFillet.py` which is split
into a different modules like the rest of the workbench.
The object code is in `draftobjects`, the viewprovider
is in `draftviewproviders`, and the function to create it
is in `draftmake`.
This annotation class implements `onDocumentRestored`
in order to add the `ScaleMultiplier` property to older
`Dimension`, `Label`, and `Text` objects.
The improvements are done to `ViewProviderWire` which propagates
to many objects like Line, Wire (polyline), BSpline, BezCurve,
Fillet, etc.
The initialization of the properties is moved to a method
`_set_properties`. The properties `EndArrow`, `ArrowSize`,
`ArrowType` are created only if they do not exist.
This allows calling `ViewProviderWire(obj.ViewObject)`
to migrate an older object to this viewprovider
but without adding duplicated properties.
In particular, this is done to support the migration of the older
`Fillet` object.
The improvements are done to `ViewProviderDraft` which propagates
to the majority of the Draft objects by derived classes
like `ViewProviederWire`.
The initialization of the properties is moved to a method
`_set_properties`. The properties `Pattern` and `PatternSize`
are created only if they do not exist.
This allows calling `ViewProviderDraft(obj.ViewObject)`
to migrate an older object to this viewprovider
but without adding duplicated properties.
In particular, this is done to support the migration of the older
`Fillet` object.
Also import it in the `Draft` namespace so that is available
as `Draft.make_arc_3points`.
Use this new function in the unit test `drafttests.test_creation`,
in the GuiCommand `draftguitools.gui_arcs`, and in the
`draft_test_objects` script.
Otherwise the function will not work in a terminal only session
without the graphical user interface (GUI).
Also small changes for style, documentation,
and removing unused modules.
These modules provide supporting functions for dealing
with the scripted objects and Gui Commands defined
within the workbench.
If the functions do very basic tasks or are too generic,
they are more appropriate inside the `draftutils` package.
These function are imported in the main `Draft.py` module
so they form part of the public programming interface (API)
of the workbench.
Remove trailing spaces in CMakeLists.txt.
These modules provide the functions that are used to create
the scripted objects defined within the workbench.
The functions import and use the proxy classes
and viewprovider classes in `draftobjects`
and `draftviewproviders`.
These functions are imported in the main `Draft.py` module
so they form part of the public programming interface (API)
of the workbench.
The error is both sent to the log file and to the console
instead of only the log.
This is helpful to troubleshoot problems with the delayed
execution of commands, such as when testing a relatively
broken version like d7a9f2ebf9.