Each command will create an App::AutoTransaction to auto create and
commit a transaction for proper undo/redo. But if the command starts
editing, the current transaction may be required to out live the current
command.
Note that the command can only detect editing if the code calls
Gui::Document::setEdit(). There are objects that starts editing by
calling its own ViewProvider::setEdit(), e.g. various TechDraw
ViewProviders. In this case, to avoid auto committing, one can call
App::Application::setActiveTransaction() with the second argument set to
true, or call App::AutoTransaction::setEnable(false).
* invoke(), distinguish between command triggering source. Also add
support of auto transaction using App::AutoTransaction. Now all
command will support undo/redo by default.
* setupCheckable(), a helper function to Improve support of
PythonGroupCommand
* getObjectCmd(), helper function to output Python command to refer to
an object without ambiguity. Because with introduction of external
linking, an object can no longer be safely referred through the
current active document.
* Support auto MacroManager command logger. For commands that does not
log any output to MacroManager, a log entry of 'Gui.runCommand()' will
be auto generated.
* Support linked object in copyVisual()
* Modified do/runCommand() to print calling file and line number.
* Add various helper macros for run command involving a document or
object.
=====================================================
What?
Extension of the CommandMacro constructor to take an additional optional argument to indicate that the macro
is located in the system-wide directory, and shall be executed accordingly.
=====================================================
What?
It was suggested that the macros should be moved to AppUserHome/Macro
http://forum.freecadweb.org/viewtopic.php?f=10&t=13433
Solution:
The solution is backwards compatible in the sense that if you have a running
configuration, updating should not change anything.
For new installations the macro directory will default to AppUserHome/Macro. However
this would break all the installation scripts (probably also ME's plugin manager).
Conflicts:
src/Mod/Path/Gui/AppPathGuiPy.cpp
-removes all soqtviewer references
-create a quarter adaptor class which implements missing functionality
-adopts freecad code to make use of SoRenderManager and changed View3DInventorViewer interface