In Python 3 `super()` can be used without an argument
in order to get the parent class, `super()`.
In Python 2 the present class must be used as an argument,
`super(ThisClass, self)`.
This commit is done to support Python 2,
as without it all Gui Command tools will be broken
and will fail to launch, even if the unit tests pass.
Also, set the `__metaclass__` variable to `type`.
This is done to turn all classes into "new style" classes
in Python 2. This is required so `super()` works correctly
in this version of Pyton.
This commit can be reverted once Python 2 support
is completely dropped, and only Python 3 compatible code
is used.
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.
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.
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`.