v3.0.0
What's new?
That's again the large update. Completely renewed connection/expression mechanics.
Core
-
RuntimeAttribute and RuntimeModule classes instead of previous AttributeWrapper and ModuleWrapper.
These classes should be used while working with Modules and Attributes in scripts. -
Connection and expression are evaluated on demand by RuntimeAttribute.pull/get or by RuntimeModule.ch.
Basically, it's like pull/push mechanics here. It results in more adequate behavior which can be used in interactive tools.
Expression is always evaluated on top of a connection. -
Consistent API across widgets and the code.
You can use the same functions in widgets as you use in the code (like ch, module, copyJson, etc). -
Widgets API.
Widgets can expose own API which can be used anywhere in code.
For example, curve_evaluate, listBox_selected, etc.
This API is used for autocompletion as well.
Widgets
- Refactor json widget, fix bugs and make it more stable.
- Widgets support self.executor for evaluating python code within a proper context (API).
- Widgets with code editor use correct autocompletion.
- comboBox eliminates duplicates.
- listBox uses roles for items and supports multiple selection. It's much more interactive now.
- radioButton refactor.
- vector widget supports a custom dimension, column count and precision.
- fix curve widget somethingChanged emits(on release button) and zero division bug.
UI
- Evaluate/Clear expression menu for attributes.
- Highly reworked widgetOnChange and updateWidget. Now it's more suitable for interactive tools.
- Update style for attributes with connection/expression.
- Fix bug in dropEvent for modules! Also it always generates unique names for modules.
Other
- Update example.xml with the latest features.
- add runStandalone.py for running RigBuilder outside of DCC with a correct stylesheet.