ImageEngine/gaffer — pull request #934 by johnhaddon (2014-07-25 17:59:02+00:00)
Title: Scene inspector inheritance inspection

This pull request takes a bit of a step back from the little improvements we've been discussing and ticketing, as I realised we needed some refactoring in order to support the bigger tickets of viewing attribute inheritance and the history of values as they travel through the graph.

This introduces a very simple `Inspector` class which encapsulates the inspection of some value from a `Target` (scene and location). This abstraction allows us to perform the same inspection at each level of the hierarchy to produce a UI for viewing attribute inheritance. The same mechanism will allow us to trace a value back through the history of nodes in another UI.

![inheritance](https://cloud.githubusercontent.com/assets/1133871/3705963/acf9c016-1424-11e4-91b0-a0fbcf411bad.png)

It's all a bit rough around the edges, but I wanted to get it up for comment since I haven't posted anything for the last couple of days, and I'm invariably likely to get it wrong first time since it's UI work. A couple of issues I'm aware of :

- The little rail down the left hand side has gaps if the values are tall (say a Box or Matrix attribute). I've asked Paulo if he can help me with a bit of Qt wizardry for that. Since most attributes are numeric, string or vector at this point, it doesn't seem super critical.
- The inheritance diagram is static, representing the results of the query at the time it was made. It seems like it might be nice to have it update automatically to reflect changes.
- I'm not sure I like the little tool button that follows focus - maybe just a simpler context menu available by clicking on the value would be better?

If there's nothing too horrendous in what you see, it'd be nice to get this merged though...