Commit Graph

63 Commits

Author SHA1 Message Date
Zheng, Lei
f1b569621a Split App::AutoTransaction into its own file 2019-09-10 14:17:07 +02:00
wmayer
1c234373d6 fix MSVC compiler warnings 2019-08-17 19:35:21 +02:00
Zheng, Lei
f36714974a Command: disable auto transaction if triggering editing
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).
2019-08-17 15:32:51 +02:00
Zheng, Lei
4bd31c4b91 Gui: Command API changes
* 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.
2019-08-17 14:52:10 +02:00
wmayer
c6f766da03 PVS: V773 A memory leak is possible 2019-02-17 19:17:02 +01:00
Mateusz Skowroński
ac508516da Use QString's multi-arg overload to save memory allocations. [-Wclazy-qstring-arg] Thanks Clazy! 2019-02-11 15:39:14 +01:00
wmayer
c50f6aea53 add an assert to several Command methods to be notified in debug mode if no active document exists 2018-10-31 11:21:33 +01:00
luz.paz
9167064fc1 Misc. typos
Found via `codespell`
2018-04-25 09:41:33 -03:00
looooo
7e6dcb45fd add Base::PyGILStateLocker in Gui::Command::getResources 2018-01-12 15:02:13 +01:00
wmayer
2cd338ba03 improve whitespaces 2017-11-24 15:43:28 +01:00
luzpaz
0a31812c73 User-facing typo fixes
All user-facing strings that have double (consecutive) whitespace e.g. `\b  \b`have been removed. Inspired by the error message in https://forum.freecadweb.org/viewtopic.php?f=3&t=5899&p=200309#p200309
2017-11-21 17:21:23 -03:00
Markus Lampert
1c9223d300 Use command's tootltip as statustip if no statustip is specified. 2017-09-28 23:22:11 +02:00
wmayer
ff4904e2f3 improve whitespaces 2017-08-31 23:01:34 +02:00
triplus
13e7946faf WhatsThis support for Python based commands
Enables What's This command for Python based FreeCAD commands.

Forum discussion:
https://forum.freecadweb.org/viewtopic.php?f=15&t=23865
2017-08-13 11:20:25 +02:00
wmayer
057192f314 py3: fix several crashes 2017-06-04 11:12:53 +02:00
Yorik van Havre
7e39fed862 py3: Gui: files A-P ported to python3 2017-05-06 17:23:27 +02:00
wmayer
fb7094bf31 use specialized exception classes 2017-04-28 18:49:11 +02:00
wmayer
c997180a47 Qt4/Qt5 neutral changes:
+ remove QCoreApplication::UnicodeUTF8/QApplication::UnicodeUTF8
+ remove QCoreApplication::CodecForTr/QApplication::CodecForTr
2016-12-12 14:52:09 +01:00
wmayer
d420c154c0 Qt4/Qt5 neutral changes:
+ remove class DownloadDialog
+ remove class HelpView
+ remove class DlgTipOfTheDay
2016-12-12 14:35:52 +01:00
Yorik van Havre
bf0d37bf28 Doc: Fixes in doxygen docs for Draft,Arch, FEM 2016-11-17 17:04:09 -02:00
wmayer
4d6d8e71f4 issue #0002687: zoomin/out during transform 2016-10-09 18:32:18 +02:00
wmayer
1e6dcabefc fix -Wextra in FreeCADGui 2016-09-21 20:54:52 +02:00
wmayer
947f9575de remove Application::runPythonCode 2016-09-15 23:14:31 +02:00
wmayer
e8554cc77a do not use doCommand without using format string, add overloaded method of runCommand 2016-09-15 18:53:37 +02:00
wmayer
18f9b257bf fix unicode <=> utf-8 conversion issue 2016-09-12 20:52:24 +02:00
wmayer
dbac90022d split compound command in separate commands to make shortcus customizable 2016-09-10 14:47:01 +02:00
wmayer
4686997786 fix more Coverity issues 2016-08-17 21:55:00 +02:00
wmayer
a2a8a517a9 + use QString's vsprintf to avoid to truncate the output string 2016-06-04 10:37:08 +02:00
wmayer
c438c9b9d0 + simplify fix to avoid memory leaks in keySequenceToAccel 2016-03-09 17:19:19 +01:00
Eivind Kvedalen
1e8b678cb3 Fixed leak. 2016-03-08 16:09:25 +01:00
Abdullah Tahiri
89e89c8b2d Gui: Extension of CommandMacro for system-wide macros
=====================================================

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.
2016-01-11 19:25:53 +01:00
Abdullah Tahiri
2c884ab5f5 Gui Enhancement: Support for macros in AppUserHome/Macro
=====================================================

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
2016-01-11 19:24:22 +01:00
Mateusz Skowroński
c275b35d48 QString::fromAscii() is obsolete in Qt5. Replace it with fromLatin1().
This change is Qt4/Qt5 neutral.
2016-01-05 16:07:25 +01:00
Mateusz Skowroński
0695552cff QString::toAscii() is obsolete in Qt5. Replace it with toLatin1().
This change is Qt4/Qt5 neutral.
2016-01-05 16:06:48 +01:00
wmayer
32377b7635 + use Python's inspect module to get calling instance of addCommand 2015-12-16 23:07:24 +01:00
wmayer
19bbce6413 + when running a bound macro check if file exists, proper unicode handling of macros in customize dialog 2015-10-08 12:37:30 +02:00
wmayer
de41dc46ec + Prefer prefix ++/-- operators for non-primitive types 2015-10-07 13:38:17 +02:00
Mateusz Skowroński
05f95c0506 Fix files encoding. Go from ISO8859-1 to UTF-8. 2015-09-21 19:50:49 -03:00
wmayer
96bee2fa47 + allow to set a default action for an exclusive group 2015-09-20 15:47:11 +02:00
wmayer
1d8b7f3582 + duplicate string array for Python commands 2015-09-20 14:11:53 +02:00
wmayer
eb4040d6d0 + support of exclusive Python command groups 2015-09-02 22:52:04 +02:00
wmayer
fc9d1e86ac + support of checkable commands 2015-08-25 18:01:37 +02:00
wmayer
3fb5a2918b + improve formatting 2015-08-25 15:11:42 +02:00
wmayer
45d793a1af + include missing header files 2015-06-30 17:48:03 +02:00
wmayer
3f13a32afd + issue #0002053: Support of themes 2015-06-28 23:30:42 +02:00
wmayer
fac5884b45 + return 0 for empty icon names of Python commands 2015-06-27 19:24:11 +02:00
wmayer
448ded204a + implement class PythonGroupCommand 2015-06-27 17:21:02 +02:00
wmayer
95a0633774 + Extend Command framework to allow to update QAction 2015-06-03 18:30:36 +02:00
wmayer
5b0164364a + Handle PyCXX exception in Command::invoke 2015-01-17 16:36:19 +01:00
Stefan Tröger
512a2b94d2 Adaption of FreeCAD to QuarterWidget
-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
2014-09-23 10:11:11 +02:00