`Draft_ToggleConstructionMode` and `Draft_ToggleContinueMode`.
They call a base class `BaseMode` which also uses the base
`gui_base.GuiCommandSimplest` class.
Also add a new icon for continue mode.
The commands `FinishLine`, `CloseLine`, and `UndoLine`
are moved from the huge `DraftTools.py` to `gui_lineops.py`
to reduce the complexity of the former file.
These GuiCommands aren't actually used presently
in the Draft Workbench. They were used in the past
particularly from the context menu when editing a Line object.
This class defines the `command_name` of the command,
so that it is output to the report view, and is also recorded
in the log file.
It also stores the current document so it can be used inside the
command.
The class implements with `IsActive` method so that the command
is only active when an active document exists.
Also `GuiCommandNeedsSelection`, which subclasses the former
class. It reimplements `IsActive` in order to be available
only when there is a selection.
still have to split viewprovider from object.
[Draft] Dimension Style code cleanup
thx @vocx-fc for reviewing
further cleanup
[Draft] Dimension Style improvements
Added a property to the dimension object to link the dimension style.
Improved the update of dimensions when style changes. This can be done in 2 different ways: by setting AutoUpdate property to True or by activating Update function from the viewprovider context menu.
Small spacing fixes like imports in separate lines
for more clarity, and the position of the license.
Added many docstrings to clarify the methods, and spaces
after commas in order to comply with Python PEP8 style.
Also break many lines so that they are shorter than 80 characters.
Small spacing fixes like imports in separate lines
for more clarity, the module docstrings,
and the position of the license.
Remove unnecessary check for the graphical interface
as this command should be imported when the interface
is already up and running.
Use proper `ToDo` class instead of importing `DraftGui`.
Small spacing fixes like imports in separate lines
for more clarity, the module docstring,
and the position of the license.
Remove unnecessary check for the graphical interface
as this command should be imported when the interface
is already up and running.
Use proper `ToDo` class instead of importing `DraftGui`.
Small spacing fixes like imports in separate lines
for more clarity, the module docstring,
the position of the license, and trailing spaces.
Remove unnecessary check for the graphical interface
as this command should be imported when the interface
is already up and running.
Properly import `gui_trackers` module and use tracker
classes prefixed accordingly.
Small spacing fixes like imports in separate lines
for more clarity, the module docstring,
and the position of the license.
Remove unnecessary check for the graphical interface
as this command should be imported when the interface
is already up and running.
Use proper `ToDo` class instead of importing `DraftGui`.
Small spacing fixes like imports in separate lines
for more clarity, the module docstring,
and the position of the license.
Remove unused imports. And use proper `ToDo` class
instead of importing `DraftGui`.
Small spacing fixes like imports in separate lines
for more clarity, and the position of the license.
Also use the `ToDo` class with this new name
following Python guidelines.
Also import `todo` and `translate` from the utils module
instead of from `DraftGui`.
Otherwise we have to import the entire `DraftGui` module
which creates dependency problems when we want to use
some functions without the graphical interface.
Properly import the tracker classes. Avoid star imports,
and use the classes prefixed with the name of the module.
The BIM Workbench also has to be updated to use the new
module.
```
import draftguitools.gui_trackers as DraftTrackers
```
And do not load the `Snapper` in `DraftGui`.
The Snapper should be initialized by the module
that imports `DraftGui`, most probably `DraftTools`
or even by the `InitGui` of the workbench.
It replaces the older `Draft_Array` command, and provides
a task panel to select the properties, similar to the
`Draft_PolarArray` and `Draft_CircularArray` commands.
It can also create `App::Links` directly from this task
panel, so it also replaces the `Draft_LinkArray`
introduced by the LinkMerge.