Mercurial > hg > easyhg
comparison historywidget.cpp @ 122:c3e8342d2de9
* Further fix to incremental log (put new changesets on the correct end of the list!)
author | Chris Cannam |
---|---|
date | Mon, 29 Nov 2010 11:14:29 +0000 |
parents | c92f5859c707 |
children | 3afa1ce339ec |
comparison
equal
deleted
inserted
replaced
121:6ce2ceb2c3a5 | 122:c3e8342d2de9 |
---|---|
53 } | 53 } |
54 | 54 |
55 void HistoryWidget::parseNewLog(QString log) | 55 void HistoryWidget::parseNewLog(QString log) |
56 { | 56 { |
57 DEBUG << "HistoryWidget::parseNewLog: log has " << log.length() << " chars" << endl; | 57 DEBUG << "HistoryWidget::parseNewLog: log has " << log.length() << " chars" << endl; |
58 Changesets csets = parseChangeSets(log); | 58 Changesets csets = Changeset::parseChangesets(log); |
59 DEBUG << "HistoryWidget::parseNewLog: log has " << csets.size() << " changesets" << endl; | 59 DEBUG << "HistoryWidget::parseNewLog: log has " << csets.size() << " changesets" << endl; |
60 clearChangesets(); | 60 clearChangesets(); |
61 m_changesets = csets; | 61 m_changesets = csets; |
62 layoutAll(); | 62 layoutAll(); |
63 } | 63 } |
64 | 64 |
65 void HistoryWidget::parseIncrementalLog(QString log) | 65 void HistoryWidget::parseIncrementalLog(QString log) |
66 { | 66 { |
67 DEBUG << "HistoryWidget::parseIncrementalLog: log has " << log.length() << " chars" << endl; | 67 DEBUG << "HistoryWidget::parseIncrementalLog: log has " << log.length() << " chars" << endl; |
68 Changesets csets = parseChangeSets(log); | 68 Changesets csets = Changeset::parseChangesets(log); |
69 DEBUG << "HistoryWidget::parseIncrementalLog: log has " << csets.size() << " changesets" << endl; | 69 DEBUG << "HistoryWidget::parseIncrementalLog: log has " << csets.size() << " changesets" << endl; |
70 if (!csets.empty()) { | 70 if (!csets.empty()) { |
71 m_changesets << csets; | 71 csets << m_changesets; |
72 m_changesets = csets; | |
72 layoutAll(); | 73 layoutAll(); |
73 } | 74 } |
74 } | 75 } |
75 | 76 |
76 void HistoryWidget::layoutAll() | 77 void HistoryWidget::layoutAll() |
77 { | 78 { |
79 setChangesetParents(); | |
80 | |
78 ChangesetScene *scene = new ChangesetScene(); | 81 ChangesetScene *scene = new ChangesetScene(); |
79 ChangesetItem *tipItem = 0; | 82 ChangesetItem *tipItem = 0; |
80 | 83 |
81 if (!m_changesets.empty()) { | 84 if (!m_changesets.empty()) { |
82 Grapher g(scene); | 85 Grapher g(scene); |
96 | 99 |
97 if (oldScene) delete oldScene; | 100 if (oldScene) delete oldScene; |
98 if (tipItem) tipItem->ensureVisible(); | 101 if (tipItem) tipItem->ensureVisible(); |
99 } | 102 } |
100 | 103 |
101 Changesets HistoryWidget::parseChangeSets(QString changeSetsStr) | 104 void HistoryWidget::setChangesetParents() |
102 { | 105 { |
103 Changesets csets = Changeset::parseChangesets(changeSetsStr); | 106 for (int i = 0; i+1 < m_changesets.size(); ++i) { |
104 for (int i = 0; i+1 < csets.size(); ++i) { | 107 Changeset *cs = m_changesets[i]; |
105 Changeset *cs = csets[i]; | |
106 if (cs->parents().empty()) { | 108 if (cs->parents().empty()) { |
107 QStringList list; | 109 QStringList list; |
108 list.push_back(csets[i+1]->id()); | 110 list.push_back(m_changesets[i+1]->id()); |
109 cs->setParents(list); | 111 cs->setParents(list); |
110 } | 112 } |
111 } | 113 } |
112 return csets; | |
113 } | 114 } |