Changed snap toolbar behaviour:
- create a list of available snaps (Gui.Snapper.snaps)
- make it consistent with Snap Gui Commands (in gui_snaps module)
- create a list of active snaps (Gui.Snapper.active_snaps)
- refactor the isEnabled() method to allow it to check if the given snap is in Gui.Snapper.active_snaps and not if the snap toolbar button isChecked()
- updated and reordered the new list of gui snap commands in draftutils.init_tools and used it as a base to refactor the creation of draft toolbar
- updated all the draft snap gui tools to make them control the toolbar buttons directly
.
.
.
Remove required usage of DocObject creation, in lieu of Part geometry usage - the preferred method.
Limit DocObject creation to debugging mode only.
Remove dependency on Draft module.
Drawback is top edge must be selected, and Final Depth set appropriately when using profiling open edges.
Previously they were imported directly in `InitGui.py`,
now they are collected in `DraftTools.py`, so that they
are imported at the same time as other modules.
Also provide an icon so this icon appears in the menu.
These two Gui Commands were inside `DraftTools.py`
but they were considered obsolete as they just call `Draft_Edit`.
They were completely removed in f5f43913e0 and 8fd55eb6ff.
They are restored in this commit and placed in their own module
just for historical reasons; however this module is not imported
in `DraftTools.py`.
These commands are useful but are "hiden"
inside the "Utilities" menu, so not many poeple know about them.
By placing them in a toolbar, they will be more discoverable.
`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.
The `ContextMenu` method defines commands that will be listed
when right clicking and opening the context menu in the 3D view
or the tree view.
This sets up the line GUI commands when either a line, wire,
polyline, spline, or bezier curve is active.
However, this currently doesn't work at all for unknown reasons.
Maybe some other functionality in the internal C++ code
needs to be changed first.
- corrected super() methods to be Py2 compatible
- further cleanup of the code.
further cleanup
changed again to avoid super method
updated super() functions
updated to correct the parent classess targeted by super()