diff 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
line wrap: on
line diff
--- a/historywidget.cpp	Mon Nov 29 11:04:52 2010 +0000
+++ b/historywidget.cpp	Mon Nov 29 11:14:29 2010 +0000
@@ -55,7 +55,7 @@
 void HistoryWidget::parseNewLog(QString log)
 {
     DEBUG << "HistoryWidget::parseNewLog: log has " << log.length() << " chars" << endl;
-    Changesets csets = parseChangeSets(log);
+    Changesets csets = Changeset::parseChangesets(log);
     DEBUG << "HistoryWidget::parseNewLog: log has " << csets.size() << " changesets" << endl;
     clearChangesets();
     m_changesets = csets;
@@ -65,16 +65,19 @@
 void HistoryWidget::parseIncrementalLog(QString log)
 {
     DEBUG << "HistoryWidget::parseIncrementalLog: log has " << log.length() << " chars" << endl;
-    Changesets csets = parseChangeSets(log);
+    Changesets csets = Changeset::parseChangesets(log);
     DEBUG << "HistoryWidget::parseIncrementalLog: log has " << csets.size() << " changesets" << endl;
     if (!csets.empty()) {
-        m_changesets << csets;
+        csets << m_changesets;
+        m_changesets = csets;
         layoutAll();
     }
 }
 
 void HistoryWidget::layoutAll()
 {
+    setChangesetParents();
+
     ChangesetScene *scene = new ChangesetScene();
     ChangesetItem *tipItem = 0;
 
@@ -98,16 +101,14 @@
     if (tipItem) tipItem->ensureVisible();
 }
 
-Changesets HistoryWidget::parseChangeSets(QString changeSetsStr)
+void HistoryWidget::setChangesetParents()
 {
-    Changesets csets = Changeset::parseChangesets(changeSetsStr);
-    for (int i = 0; i+1 < csets.size(); ++i) {
-        Changeset *cs = csets[i];
+    for (int i = 0; i+1 < m_changesets.size(); ++i) {
+        Changeset *cs = m_changesets[i];
         if (cs->parents().empty()) {
             QStringList list;
-            list.push_back(csets[i+1]->id());
+            list.push_back(m_changesets[i+1]->id());
             cs->setParents(list);
         }
     }
-    return csets;
 }