comparison historywidget.cpp @ 128:fcaf09ee825d

* Show tags and current working copy parents in history graph
author Chris Cannam
date Mon, 29 Nov 2010 20:09:58 +0000
parents 3afa1ce339ec
children 4986642800f0
comparison
equal deleted inserted replaced
127:758471b71721 128:fcaf09ee825d
49 void HistoryWidget::clearChangesets() 49 void HistoryWidget::clearChangesets()
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
55 void HistoryWidget::setCurrent(QStringList ids)
56 {
57 if (m_currentIds == ids) return;
58 DEBUG << "HistoryWidget::setCurrent: " << ids.size() << " ids" << endl;
59 m_currentIds = ids;
60 updateCurrentItems();
61 }
62
63 void HistoryWidget::showUncommittedChanges(bool show)
64 {
65 //!!! implement!
66 }
54 67
55 void HistoryWidget::parseNewLog(QString log) 68 void HistoryWidget::parseNewLog(QString log)
56 { 69 {
57 DEBUG << "HistoryWidget::parseNewLog: log has " << log.length() << " chars" << endl; 70 DEBUG << "HistoryWidget::parseNewLog: log has " << log.length() << " chars" << endl;
58 Changesets csets = Changeset::parseChangesets(log); 71 Changesets csets = Changeset::parseChangesets(log);
97 m_panned->setScene(scene); 110 m_panned->setScene(scene);
98 m_panner->setScene(scene); 111 m_panner->setScene(scene);
99 112
100 if (oldScene) delete oldScene; 113 if (oldScene) delete oldScene;
101 if (tipItem) tipItem->ensureVisible(); 114 if (tipItem) tipItem->ensureVisible();
115
116 updateCurrentItems();
102 } 117 }
103 118
104 void HistoryWidget::setChangesetParents() 119 void HistoryWidget::setChangesetParents()
105 { 120 {
106 for (int i = 0; i+1 < m_changesets.size(); ++i) { 121 for (int i = 0; i+1 < m_changesets.size(); ++i) {
114 list.push_back(m_changesets[i+1]->id()); 129 list.push_back(m_changesets[i+1]->id());
115 cs->setParents(list); 130 cs->setParents(list);
116 } 131 }
117 } 132 }
118 } 133 }
134
135 void HistoryWidget::updateCurrentItems()
136 {
137 QGraphicsScene *scene = m_panned->scene();
138 if (!scene) return;
139 QList<QGraphicsItem *> items = scene->items();
140 foreach (QGraphicsItem *it, items) {
141 ChangesetItem *csit = dynamic_cast<ChangesetItem *>(it);
142 if (csit) {
143 QString id = csit->getChangeset()->id();
144 bool current = m_currentIds.contains(id);
145 if (current) {
146 DEBUG << "id " << id << " is current" << endl;
147 }
148 csit->setCurrent(current);
149 }
150 }
151 }
152