A static class that delays execution of functions.
It calls `QtCore.QTimer.singleShot(0, doTasks)`
where `doTasks` is a static method which executes
the commands stored in the list attributes.
Attributes
----------
itinerary: list of tuples
Each tuple is of the form `(name, arg)`.
The `name` is a reference (pointer) to a function,
and `arg` is the corresponding argument that is passed
to that function.
It then tries executing the function with the argument,
if available, or without it, if not available.
::
name(arg)
name()
commitlist: list of tuples
Each tuple is of the form `(name, command_list)`.
The `name` is a string identifier or description of the commands
that will be run, and `command_list` is a list of strings
that indicate the Python instructions that will be executed,
or a reference to a single function that will be executed.
If `command_list` is a list, the program opens a transaction,
then runs all commands in the list in sequence,
and finally commits the transaction.
::
command_list = ["command1", "command2", "..."]
App.activeDocument().openTransaction(name)
Gui.doCommand("command1")
Gui.doCommand("command2")
Gui.doCommand("...")
App.activeDocument().commitTransaction()
If `command_list` is a reference to a function
the function is executed directly.
::
command_list = function
App.activeDocument().openTransaction(name)
function()
App.activeDocument().commitTransaction()
afteritinerary: list of tuples
Each tuple is of the form `(name, arg)`.
This list is used just like `itinerary`.
Lists
-----
The lists contain tuples. Each tuple contains a `name` which is just
a string to identify the operation, and a `command_list` which is
a list of strings, each string an individual Python instruction.
◆ delay()
def draftutils.todo.ToDo.delay |
( |
|
f, |
|
|
|
arg |
|
) |
| |
|
static |
Add the function and argument to the itinerary list.
Schedule geometry manipulation that would crash Coin if done
in the event callback.
If the `itinerary` list is empty, it will call
`QtCore.QTimer.singleShot(0, ToDo.doTasks)`
to execute the commands in the other lists.
Finally, it will build the tuple `(f, arg)`
and append it to the `itinerary` list.
Parameters
----------
f: function reference
A reference (pointer) to a Python command
which can be executed directly.
::
f()
arg: argument reference
A reference (pointer) to the argument to the `f` function.
::
f(arg)
◆ delayAfter()
def draftutils.todo.ToDo.delayAfter |
( |
|
f, |
|
|
|
arg |
|
) |
| |
|
static |
Add the function and argument to the afteritinerary list.
Schedule geometry manipulation that would crash Coin if done
in the event callback.
Works the same as `delay`.
If the `afteritinerary` list is empty, it will call
`QtCore.QTimer.singleShot(0, ToDo.doTasks)`
to execute the commands in the other lists.
Finally, it will build the tuple `(f, arg)`
and append it to the `afteritinerary` list.
◆ delayCommit()
def draftutils.todo.ToDo.delayCommit |
( |
|
cl | ) |
|
|
static |
Execute the other lists, and add to the commit list.
Schedule geometry manipulation that would crash Coin if done
in the event callback.
First it calls
`QtCore.QTimer.singleShot(0, ToDo.doTasks)`
to execute the commands in all lists.
Then the `cl` list is assigned as the new commit list.
Parameters
----------
cl: list of tuples
Each tuple is of the form `(name, command_list)`.
The `name` is a string identifier or description of the commands
that will be run, and `command_list` is a list of strings
that indicate the Python instructions that will be executed.
See the attributes of the `ToDo` class for more information.
◆ doTasks()
def draftutils.todo.ToDo.doTasks |
( |
| ) |
|
|
static |
Execute the commands stored in the lists.
The lists are `itinerary`, `commitlist` and `afteritinerary`.
◆ afteritinerary
list draftutils.todo.ToDo.afteritinerary = [] |
|
static |
◆ commitlist
list draftutils.todo.ToDo.commitlist = [] |
|
static |
◆ itinerary
list draftutils.todo.ToDo.itinerary = [] |
|
static |
The documentation for this class was generated from the following file:
- src/Mod/Draft/draftutils/todo.py