StopAllMacros was called before th->wait(), allowing Macro::Stop()
to run concurrently with the other threads still inside
CheckConditions. This caused races on _conditionCheckFuture (called
from both threads) and _helperThreads.
This could happen if conditions / actions were marked to run in parallel
to the main loop.
This was done implicitly in the shutdown handler by clearing the
plugin's settings.
Due to unwanted side effects this behavior has been disabled for the
shutdown and thus macros have to be cleared explicitly on shutdown.
The previous approach had the problem of losing any action internal
state changes in the created copy.
Revert "Fix temp var values of actions not being accessible"
This reverts commit df42538319.
Revert "Don't block UI while running actions"
This reverts commit a01d26e25d.
* always -> same as old behavior, if "on change" was disabled
* results changes -> same as old behavior, if "on change" was enabled
* any condition changes
* any condition changes and evaluates to true
This should avoid crashes when actions or conditions are performed in
parallel to the main macro loop and will improve the UI responsiveness
in some scenarios
* The plugin will no longer attempt to restore dock positions on scene
collection change.
* When a macro is being renamed the dock widget with the current name
will be removed.
A new dock with the new name will have to be opened manually.
* The status dock position will be when updating to a version containing
this changei from an older version.
It will allow you to query if the macro was paused since a given time
point.
It checks this by comparing the time point against the time point at
which the macro was last paused.
The "core" macro conditions and actions have been extracted out to the
"base" plugin.
The library now mostly contains functionality which is required across
all plugins and (e.g. definitions for macro segments).
The goal is to reduce the complexity and cross-dependencies and group
the source files in a better way.
This should relsove the "library limit of 65535 objects exceeded" build
issue occuring in some Windows build environments.