0.94.0¶
Apps¶
UI¶
- Fixed PySide incompatibility in VectorDataWidget.
 - Improved VectorDataWidget numeric editing (#637).
 - Simplified OpDialogue exception reporting (#806).
 - Fixed “Open Recent...” crash bug in PySide builds (#548).
 - Used OpDialogue to improve progress/error reports in OpPathPreview (#792).
 - Enabled background mode for OpDialogue launched from BrowserEditor.
 - Fixed OpPathPreview UI glitch.
 - Fixed “KeyError: ‘currentTab’” error when loading custom layouts.
 - Added more sensible initial widget sizes to BrowserEditor. The sizes are also saved and restored when modes are switched.
 - Improved Bookmarks
- Identifies recent items by full paths, so multiple recent items with the same basename may coexist.
 - Prevents heavy usage of one bookmarks category from removing the recent items for the general (no category) bookmarks.
 - Improves bookmarks UI in PathChooserWidget to display full paths of recent items.
 - Most recent items are now displayed at the top.
 - Added creation of bookmarks by dragging on to bookmarks icon.
 
 - Fixed cursor bug in StringPlugValueWidget continuous update mode (#796).
 - Fixed bug in non-editable MultiLineStringPlugValueWidgets.
 - Fixed upside down nodule labels.
 - Fixed overzealous Viewport drag tracking (#550).
 - Improved SceneHierarchy to view any output ScenePlug, regardless of name. This improves compatibility with Boxes, where the user can make an output plug with any name they want.
 - Added right click menu for Box plugs in NodeGraph. This allows the renaming and deletion of promoted nodules.
 - Added dropdown menu for Displays node quantize parameters.
 - Improved Displays node UI (#15).
 - Added command-line representation of Op values in the UI (#793).
 - Added workaround for squash/stretch in viewport camera look-through (#826).
 - Added custom editor to PathVectorDataWidget. This enables tab completion, nice dropdown menus and a browser for PathVectorDataParameters.
 - Added indexing methods to VectorDataWidget.
 - Added presetsOnly dropdown menus to CompoundVectorParameterValueWidget (#470).
 - Added an auto-load preset for ops (#804).
 - Added filtering by image type for ImageReader and ImageWriter file dialogues.
 
Core¶
- Combined setValue() serialisation for CompoundNumericPlugs (#761).
 - Fixed Box plug promotion to support ImagePlugs and ScenePlugs.
 
Scene¶
- Renamed GLSL shaders to UpperCamelCase. This matches the naming convention we use for OSL shaders.
 - Added a Grid node.
 - Fixed FilteredSceneProcessor to allow Box promotion of Filter plug.
 
Image¶
- Fixed a bug in ImageTransform that could result in corrupted output.
 
API¶
- Added GraphComponentClass and GadgetClass to improve bindings.
 - Added NodeGadgetClass to improve bindings of NodeGadgets.
 - Added immediate execution mode to OpDialogue.
 - Fixed NodeGadget::noduleTangent() binding.
 - Fixed potential bug in NodeGadget::create().
 - Fixed LRUCache getter cost calculations.
 - Fixed Metadata test hang.
 - Improved Window.resizeToFitChild() behaviour. If called on an as-yet unshown window, it would move the window to the top left corner of the screen. Now the window will still be opened in a sensible place. Added additional shrink and expand arguments to further control the resize behaviour.
 - Added support for fixed size CompoundVectorParameterValueWidget. The [“UI”][“sizeEditable”] user data entry can be given a BoolData value of False, which will cause the +/- buttons to be hidden in the UI, enforcing a fixed length on the data in the vector parameters.
 - Added per-column editability to CompoundVectorParameterValueWidget. This uses a [“UI”][“editable”] user data entry in each child parameter, where a BoolData value of False will make the column for that parameter read-only (#766).
 - Made Bookmarks.acquire() support passing Widgets and GraphComponents.
 - Added support for callable dialogue keywords in PathPlugValueWidget.
 - Fixed drag/drop to allow modal dialogue creation in dropSignal().
 - Added public Serialisation::acquireSerialiser() method.
 - Added ValuePlugSerialiser::valueNeedsSerialisation() method. This can be reimplemented by derived classes to provide more control over the serialisation of values.
 - Privatised numeric and string PlugValueWidget implementations.
 - Added ViewportGadget viewportChangedSignal() and cameraChangedSignal().
 - Added SpacerGadget size accessors.
 - Added iterator typedefs for all GafferUI::Gadget subclasses.
 - Improved Box plug promotion API.
 - Made BlockedConnection and UndoContext non-copyable.
 - Added useNameAsPlugName argument to CompoundDataPlug::addMembers(). Also added python bindings for CompoundDataPlug::fillCompoundData() and CompoundDataPlug::fillCompoundObject().
 - Gave Displays node parameter plugs more useful names.
 - Added VectorDataWidget.editSignal(). This allows custom Widgets to be provided to edit the values held in the table cells.
 - Added Widget.focusChangedSignal().
 - Added VectorDataWidget setColumnEditable/getColumnEditable methods.
 - Added right click preset menu for CompoundVectorParameterValueWidget. This also adds the ability for any custom parameter menu to operate with CompoundVectorParameters, whereas before they couldn’t.
 
Build¶
- Now using Coverity static analysis - this resulted in a number of bugs being found and fixed in this version.