If no preset is selected in the preset manager, it will use the preset loaded by the component selected in the main window.
The component context menu now has a menu to add a new component.
Components have a singular way to declare their attributes, which the Component base class will automatically help them track. This makes adding new options to components much easier since fewer things need to be added manually.
The autosave cooldown increases if updates are very rapid, so holding a button down for 1 minute causes 15ish autosaves instead of 100s like before.
Common functions that could be used by any component or part of the core program are split into a new package called toolkit. This package has subpackages for frame-drawing tools, ffmpeg tools, and misc tools. It works in the live Python interpreter.
E.g. To see a checkerboard sized by default to fit the current settings:
from avpython.toolkit.frame import CheckerboardCheckerboard().show()
Errors encountered by the preview thread or by components in the video thread are handled more gracefully. The program no longer crashes when components misbehave.
from avpython.toolkit.frame import Checkerboard
Checkerboard().show()