Fixed serialisation of dynamic BoxPlugs.
Added optional continuous update to string PlugValueWidgets.

This transfers the text from the ui to the plug on every keypress.
Changed GraphGadget drag selection to select only fully enclosed nodes.
Added a todo.

I'd like the Style classes to be extended with more methods with specific semantics, rather than with low-level drawing calls.
Added some cursors for resizing horizontally, vertically and diagonally.
Extended Style class to support rendering of backdrops.

This includes new methods for rendering wrapped text, backdrop backgrounds and horizontal rules, as well as control over font sizes.
Added backdrops for the NodeGraph.

Backdrops are represented in the script using the new Backdrop node type - it is necessary to store them as a node so that they can persist in the script across save and load. The vast majority of the implementation however is in the BackdropNodeGadget, which implements the drawing in the NodeGraph. Backdrops have a title which is rendered large to be visible when zoomed out, and a description in smaller font which is word wrapped automatically as the backdrop is resized. Selecting/deselecting a backdrop by clicking in the title area will select/deselect all the framed nodes, so that subsequent drags will also move the contents.

To ensure that backdrops are drawn behind everything else, GraphGadget::doRender() has a bit of a hack to enforce ordering - I think we can do better here but I'd like to revisit that later when we have a few more use cases for some sort of layering API in Gadget.

Different colours for backdrops remain as a todo - I'd like to address that in a separate pull request where all nodes may be displayed with custom colours, not just backdrops.

Fixes #153.
Fixed bug in ShaderUI.

When no shader was loaded, string values were being passed to a setEnabled() method which will only accept a bool.
Added support for "help" annotation in RenderManShaderUI.

This provides help for the shader as a whole and is mapped into the MetaData as the node description, appearing in the NodeEditor as a tooltip.

Fixes #536.
Merge pull request #537 from johnhaddon/shaderHelpAnnotation

Shader help annotation
Update README.asciidoc

Just adding some links for the extra info now available
Merge pull request #535 from johnhaddon/backdropNode

Backdrop node
Bumped version number and updates Changes file.
fixes problem where light shaders weren't being created as lights
Fixed packaging of arnold plugins.
Merge pull request #541 from bentoogood/arnoldLightCreation

Fix to arnold light creation.
Improved dirtiness propagation.

This ensures that dirtiness will only be signalled once for any given plug during dirty propagation, and that all signalling is performed at once after the dependency traversal. Prior to this we could end up doing duplicate signalling and also be emitting signals while the graph was still being edited by slots connected to plugSetSignal() and plugInputChangedSignal(). See comments in DependencyNode.h and DependencyNode.cpp for more details.

We also now emit plugDirtiedSignal() when a value has been edited with ValuePlug::setValue() - this means that observers need only ever use plugDirtiedSignal() instead of also having to use plugSetSignal().
Removed use of plugSetSignal() where possible.

Because plugDirtiedSignal() is now also emitted when values change via ValuePlug::setValue(), we can drop the use of plugSetSignal() for updating UIs. This is simpler, more efficient, and prevents updates being performed while the node graph is part way through being rewired.
Added Style::characterBound() method.

This returns a bounding box guaranteed to cover the largest character in the font. It is useful for correctly positioning the text baseline among other things.
Added scaling to the Backdrop node contents.

Scaling is controlled via a new "scale" plug on the Backdrop node, and is used to scale the whole text contents of the backdrop, rewrapping text as necessary.