comparison grapher.h @ 46:bd3accba9b3f

* Better layout for branches; spline connection paths
author Chris Cannam
date Wed, 10 Nov 2010 17:11:41 +0000
parents 4286836bb3c9
children bf3ab0ffb559
comparison
equal deleted inserted replaced
45:4286836bb3c9 46:bd3accba9b3f
4 #include "changeset.h" 4 #include "changeset.h"
5 #include "changesetitem.h" 5 #include "changesetitem.h"
6 6
7 #include <QSet> 7 #include <QSet>
8 #include <QMap> 8 #include <QMap>
9 #include <QPair>
9 10
10 #include <exception> 11 #include <exception>
11 12
12 class Grapher 13 class Grapher
13 { 14 {
26 protected: 27 protected:
27 QString m_message; 28 QString m_message;
28 }; 29 };
29 30
30 private: 31 private:
31 void layoutRow(QString id);
32 void layoutCol(QString id);
33 int findAvailableColumn(int row, int parent, bool preferParentCol);
34
35 QGraphicsScene *m_scene; 32 QGraphicsScene *m_scene;
36 33
37 typedef QMap<QString, Changeset *> IdChangesetMap; 34 typedef QMap<QString, Changeset *> IdChangesetMap;
38 IdChangesetMap m_idCsetMap; 35 IdChangesetMap m_changesets;
39 36
40 typedef QMap<QString, ChangesetItem *> IdItemMap; 37 typedef QMap<QString, ChangesetItem *> IdItemMap;
41 IdItemMap m_items; 38 IdItemMap m_items;
42 39
43 typedef QSet<int> ColumnSet; 40 typedef QSet<int> ColumnSet;
44 typedef QMap<int, ColumnSet> GridAlloc; 41 typedef QMap<int, ColumnSet> GridAlloc;
45 GridAlloc m_alloc; 42 GridAlloc m_alloc;
46 43
44 typedef QPair<int, int> Range;
45 typedef QMap<QString, Range> BranchRangeMap;
46 BranchRangeMap m_branchRanges;
47
48 typedef QMap<QString, int> BranchColumnMap;
49 BranchColumnMap m_branchHomes;
50
47 typedef QSet<QString> IdSet; 51 typedef QSet<QString> IdSet;
48 IdSet m_handled; 52 IdSet m_handled;
53
54 void layoutRow(QString id);
55 void layoutCol(QString id);
56 void allocateBranchHomes(Changesets csets);
57 bool rangesConflict(const Range &r1, const Range &r2);
58 int findAvailableColumn(int row, int parent, bool preferParentCol);
49 }; 59 };
50 60
51 #endif 61 #endif