gitk: Implement multiple views
authorPaul Mackerras <paulus@samba.org>
Tue, 4 Apr 2006 00:16:22 +0000 (10:16 +1000)
committerPaul Mackerras <paulus@samba.org>
Tue, 4 Apr 2006 00:16:22 +0000 (10:16 +1000)
commit50b44eceed2105db0bee194904649249cc5f0308
treef3f894ee94805584d1f047ccba592c54e67cfb8a
parent79b2c75e043ad85f9a6b1a8d890b601a2f761a0e
gitk: Implement multiple views

With this, gitk can know about the graphs for multiple sets of files
and directories of interest.  Each set of files/dirs and its graph is
called a "view".  There is always the "All files" view, which is the
complete graph showing all commits.  If files or dirs are specified
on the command line, a "Command line" view is automatically created.
Users can create new views and switch between them, and can delete
any view except the "All files" view.

This required a bit of reengineering.  In particular, some more things
that were arrays have now become lists.  The idrowranges array is still
used while the graph is being laid out, but for rows that have been laid
out we use the rowrangelist list instead.  The cornercrossings and
crossings arrays no longer exist, and instead we compute the crossings
when needed (in assigncolor).

Still to be done: make the back/forward buttons switch views as necessary;
make the updatecommits function work right; preserve the selection if
possible when the new view has to be read in; fix the case when the user
switches away from the current view while we are still reading it in
and laying it out; further optimizations.

Signed-off-by: Paul Mackerras <paulus@samba.org>
gitk