guitone

Issue 91: Add graphical flow diagram like monotone-viz had

Reported by Thomas Keller, Oct 7, 2010

I currently develop a Qt application utilising the QGraphicsScene 
object and I had an idea I thought I should write down.

It seems like a cool project to do, would be to create a scene where 
each revision was a rectangle created with a QGraphicsPolygonItem. 
QGraphicsLineItem’s could be used to connect them.

You could then (like monotone-viz) select an object to see its 
properties and right click to see the diff.

Comment 1 by Thomas Keller, Oct 7, 2010

I actually had this on my list for quite some time now and even have 
a untested / half-way implementation of a gitk-like revision view in 
trunk, but was never able to get completly through it.

QGraphicsScene is around since Qt 4.2 and the issue is not primarily 
how to draw revisions and their connections on the screen, but how 
to do the layouting for the underlying DAG. There was once a 
Qt-based library which aimed at implementing that (Qanava), but this 
project somehow died off and the domain (libqanava.org) has vanished 
as well.

Other existing options include using dot from Graphviz, which I 
neglected a bit because it requires having the graphviz package 
installed for that. (I read that you could use dot as some kind of 
library as well, but never got around implementing that.) The other 
option I know of is boost::graph (The Boost Graph Library), but to 
be honest I'm not smart enough to understand the needed math or 
highly templated C++ for that either.

So in short, its something which I wanted to have in guitone for a 
long, long time, but which I abandoned to implement fully for 
various reasons until now. If you want to give it a shot, be my 
guest!

Here is a PDF which explains the embedding for Graphviz' dot better 
and could serve as a starting point: 
http://www.graphviz.org/pdf/libguide.pdf

Comment 2 by Thomas Keller, Apr 20, 2011

There is a preliminary and unfinished implementation in the current 
development branch for this. Most important missing things:

- zooming
- packaging support (graphviz is a nightmare to package on mac for 
example)
Status: Started
Owner: tommyd

Comment 3 by Thomas Keller, May 11, 2011

Basic zoom support has been added, OSX packaging is still left to do.

Created: 14 years 2 months ago by Thomas Keller

Updated: 13 years 7 months ago

Status: Started

Owner: Thomas Keller

Labels:
Priority:Medium
Type:Enhancement

Quick Links:     www.monotone.ca    -     Downloads    -     Documentation    -     Wiki    -     Code Forge    -     Build Status