Mercurial > hg > easyhg
diff historywidget.cpp @ 139:e8a481789607
* Avoid unnecessary duplicate layout; fix off-by-one in resetting changeset children
author | Chris Cannam |
---|---|
date | Tue, 30 Nov 2010 14:27:34 +0000 |
parents | a7dbc8e5b69d |
children | e6c6b88d19b9 |
line wrap: on
line diff
--- a/historywidget.cpp Tue Nov 30 13:51:50 2010 +0000 +++ b/historywidget.cpp Tue Nov 30 14:27:34 2010 +0000 @@ -70,8 +70,15 @@ void HistoryWidget::showUncommittedChanges(bool show) { + if (m_uncommittedVisible == show) return; m_uncommittedVisible = show; - layoutAll(); + QGraphicsScene *scene = m_panned->scene(); + if (!scene) return; + if (m_uncommittedVisible) { + scene->addItem(m_uncommitted); + } else { + scene->removeItem(m_uncommitted); + } } void HistoryWidget::parseNewLog(QString log) @@ -185,12 +192,15 @@ void HistoryWidget::setChangesetParents() { - for (int i = 0; i+1 < m_changesets.size(); ++i) { + for (int i = 0; i < m_changesets.size(); ++i) { Changeset *cs = m_changesets[i]; // Need to reset this, as Grapher::layout will recalculate it // and we don't want to end up with twice the children for // each parent... cs->setChildren(QStringList()); + } + for (int i = 0; i+1 < m_changesets.size(); ++i) { + Changeset *cs = m_changesets[i]; if (cs->parents().empty()) { QStringList list; list.push_back(m_changesets[i+1]->id());