Merge remote-tracking branch 'origin/master' into canvasUI
Cleaned up code in graphics scene and node
Fixed up all errors and non-trivial warnings
Made public fields private, added getters/setters
Added method to traverse and measure tree

This will allow the recursive rendering method to allocate enough
space for its children.

Also fixed memory bug where a qset containing references to commit
node tree was being deleted.
Tree now renders repo tree without proper spacing

The rendering method assumes tree is symmetrical, and does not give
more space to larger subtrees yet.

No serious testing has been done
merge
Changed file permissions recursively in dev directory
Updated .gitignore to ignore test repo
merge
Minor code fixes, works
Merged master
Fixed redundant declaration of friend function
Substituted hard coded values for #define constants
Fixed up appearance of nodes and canvas

Nodes are now smaller, rounded in the corners, and have a less
offensive color. Text is now centered, white, and smaller. Some
cruft from the graphics-related functions was cleaned up.
Fixed one rendering issue with multi-level merge

Children of a node are only considered if they don't have a younger
(i.e. further from root) parent as well. That is, only the youngest
parent of a child is responsible for allocating space for and
rendering that child.
Crude arrows are now drawn between commits

Arrows have no head (and thus no apparent directionality), and attach
to the top left corner of each node.
Arrows between nodes now showing

Geometry still not quite right, depends on children
being below parents, and arrows are not redrawn when
nodes are moved
Arrows now follow nodes around as they are moved

Arrows now repaint themselves in the proper location as nodes
are dragged around, taking on correct new position and angle.
For now, all arrows attach at bottom/middle of parents and
top/middle of children regardless of relative location
Arrows attach to appropriate edges in the nodes

As nodes are dragged around, the arrows between then move to
keep them connected. Arrows now know which side of a node to
attach to according to the relative position of the two attached
nodes. That is, arrows no longer pass through the nodes, but take
a shortest path