Mercurial > hg > easyhg
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 |