Mercurial > hg > easyhg
comparison historywidget.cpp @ 120:c92f5859c707
* Add incremental log (though not incremental relayout)
author | Chris Cannam |
---|---|
date | Mon, 29 Nov 2010 11:01:19 +0000 |
parents | 005a54380502 |
children | c3e8342d2de9 |
comparison
equal
deleted
inserted
replaced
119:005a54380502 | 120:c92f5859c707 |
---|---|
50 { | 50 { |
51 foreach (Changeset *cs, m_changesets) delete cs; | 51 foreach (Changeset *cs, m_changesets) delete cs; |
52 m_changesets.clear(); | 52 m_changesets.clear(); |
53 } | 53 } |
54 | 54 |
55 void HistoryWidget::parseLog(QString log) | 55 void HistoryWidget::parseNewLog(QString log) |
56 { | |
57 DEBUG << "HistoryWidget::parseNewLog: log has " << log.length() << " chars" << endl; | |
58 Changesets csets = parseChangeSets(log); | |
59 DEBUG << "HistoryWidget::parseNewLog: log has " << csets.size() << " changesets" << endl; | |
60 clearChangesets(); | |
61 m_changesets = csets; | |
62 layoutAll(); | |
63 } | |
64 | |
65 void HistoryWidget::parseIncrementalLog(QString log) | |
66 { | |
67 DEBUG << "HistoryWidget::parseIncrementalLog: log has " << log.length() << " chars" << endl; | |
68 Changesets csets = parseChangeSets(log); | |
69 DEBUG << "HistoryWidget::parseIncrementalLog: log has " << csets.size() << " changesets" << endl; | |
70 if (!csets.empty()) { | |
71 m_changesets << csets; | |
72 layoutAll(); | |
73 } | |
74 } | |
75 | |
76 void HistoryWidget::layoutAll() | |
56 { | 77 { |
57 ChangesetScene *scene = new ChangesetScene(); | 78 ChangesetScene *scene = new ChangesetScene(); |
58 Changesets csets = parseChangeSets(log); | |
59 ChangesetItem *tipItem = 0; | 79 ChangesetItem *tipItem = 0; |
60 | 80 |
61 if (!csets.empty()) { | 81 if (!m_changesets.empty()) { |
62 Grapher g(scene); | 82 Grapher g(scene); |
63 try { | 83 try { |
64 g.layout(csets); | 84 g.layout(m_changesets); |
65 } catch (std::string s) { | 85 } catch (std::string s) { |
66 std::cerr << "Internal error: Layout failed: " << s << std::endl; | 86 std::cerr << "Internal error: Layout failed: " << s << std::endl; |
67 } | 87 } |
68 tipItem = g.getItemFor(csets[0]); | 88 tipItem = g.getItemFor(m_changesets[0]); |
89 DEBUG << "tipItem is " << tipItem << " for tip changeset " | |
90 << m_changesets[0]->id() << endl; | |
69 } | 91 } |
70 | 92 |
71 QGraphicsScene *oldScene = m_panned->scene(); | 93 QGraphicsScene *oldScene = m_panned->scene(); |
72 m_panned->setScene(scene); | 94 m_panned->setScene(scene); |
73 m_panner->setScene(scene); | 95 m_panner->setScene(scene); |
74 | 96 |
75 if (oldScene) delete oldScene; | 97 if (oldScene) delete oldScene; |
76 clearChangesets(); | |
77 | |
78 m_changesets = csets; | |
79 | |
80 if (tipItem) tipItem->ensureVisible(); | 98 if (tipItem) tipItem->ensureVisible(); |
81 } | 99 } |
82 | 100 |
83 Changesets HistoryWidget::parseChangeSets(QString changeSetsStr) | 101 Changesets HistoryWidget::parseChangeSets(QString changeSetsStr) |
84 { | 102 { |