0.19.0
Added a BoolVectorDataPlug and a BoolVectorDataParameterHandler.
GafferUI._Variant.fromVariant() now supports booleans.
VectorDataWidget now accepts a list of VectorData objects to the constructor and in setData(). This allows larger tables to be constructed consisting of columns from several VectorData objects. As a result VectorData.getData() always returns a list of objects, even when operating on only a single object. VectorDataWidget now accepts custom header labels specified by passing a list of strings to the header parameter in the constructor.
Using an officially allocated TypeId range, and not one that might conflict with internal projects.
CompoundValueParameterWidget can now be usefully subclassed, and the _buildChildParameterUIs method reimplemented to change behaviour.
Added a CompoundVectorParameterValueWidget.
Fixed a bug in GafferUI.Menu which prevented dynamically generated submenus from displaying correctly.
Plugs representing parameters are now correctly identified as being dynamic, and can therefore be saved and loaded to scripts. Custom ParameterHandler classes should now call setupPlugFlags() in their setupPlug() implementation to support this behaviour.
Added OpHolder and ProceduralHolder node types. The ui still needs work to make these useable.
Fixed problem which caused artifacts in GafferUI.Images when using PySide.
Reduced default font size to fit more on screen.
Fixed problem with GafferUI.Button positioning on OS X.