Mercurial > hg > easyhg
comparison changesetitem.cpp @ 296:d40294e164da status_outside_tabs
Merge from the default branch
author | Chris Cannam |
---|---|
date | Tue, 22 Feb 2011 13:03:03 +0000 |
parents | 37f67999b661 |
children | 5b4aa1c24407 |
comparison
equal
deleted
inserted
replaced
287:3fbafca196e4 | 296:d40294e164da |
---|---|
106 | 106 |
107 void | 107 void |
108 ChangesetItem::activateMenu() | 108 ChangesetItem::activateMenu() |
109 { | 109 { |
110 m_parentDiffActions.clear(); | 110 m_parentDiffActions.clear(); |
111 m_summaryActions.clear(); | |
111 | 112 |
112 QMenu *menu = new QMenu; | 113 QMenu *menu = new QMenu; |
113 QLabel *label = new QLabel(tr("<qt><b> Revision: </b>%1</qt>") | 114 QLabel *label = new QLabel(tr("<qt><b> Revision: </b>%1</qt>") |
114 .arg(Changeset::hashOf(m_changeset->id()))); | 115 .arg(Changeset::hashOf(m_changeset->id()))); |
115 QWidgetAction *wa = new QWidgetAction(menu); | 116 QWidgetAction *wa = new QWidgetAction(menu); |
118 menu->addSeparator(); | 119 menu->addSeparator(); |
119 | 120 |
120 QAction *copyId = menu->addAction(tr("Copy identifier to clipboard")); | 121 QAction *copyId = menu->addAction(tr("Copy identifier to clipboard")); |
121 connect(copyId, SIGNAL(triggered()), this, SLOT(copyIdActivated())); | 122 connect(copyId, SIGNAL(triggered()), this, SLOT(copyIdActivated())); |
122 | 123 |
124 QAction *stat = menu->addAction(tr("Summarise changes")); | |
125 connect(stat, SIGNAL(triggered()), this, SLOT(showSummaryActivated())); | |
126 | |
123 menu->addSeparator(); | 127 menu->addSeparator(); |
124 | 128 |
125 QStringList parents = m_changeset->parents(); | 129 QStringList parents = m_changeset->parents(); |
126 | 130 |
131 QString leftId, rightId; | |
132 bool havePositions = false; | |
133 | |
127 if (parents.size() > 1) { | 134 if (parents.size() > 1) { |
128 | |
129 QString leftId, rightId; | |
130 ChangesetScene *cs = dynamic_cast<ChangesetScene *>(scene()); | 135 ChangesetScene *cs = dynamic_cast<ChangesetScene *>(scene()); |
131 bool havePositions = false; | |
132 | |
133 if (cs && parents.size() == 2) { | 136 if (cs && parents.size() == 2) { |
134 ChangesetItem *i0 = cs->getItemById(parents[0]); | 137 ChangesetItem *i0 = cs->getItemById(parents[0]); |
135 ChangesetItem *i1 = cs->getItemById(parents[1]); | 138 ChangesetItem *i1 = cs->getItemById(parents[1]); |
136 if (i0 && i1) { | 139 if (i0 && i1) { |
137 if (i0->x() < i1->x()) { | 140 if (i0->x() < i1->x()) { |
142 rightId = parents[0]; | 145 rightId = parents[0]; |
143 } | 146 } |
144 havePositions = true; | 147 havePositions = true; |
145 } | 148 } |
146 } | 149 } |
147 | 150 } |
151 | |
152 if (parents.size() > 1) { | |
148 if (havePositions) { | 153 if (havePositions) { |
149 | 154 |
150 QAction *diffParent = menu->addAction(tr("Diff to left parent")); | 155 QAction *diff = menu->addAction(tr("Diff to left parent")); |
151 connect(diffParent, SIGNAL(triggered()), | 156 connect(diff, SIGNAL(triggered()), this, SLOT(diffToParentActivated())); |
152 this, SLOT(diffToParentActivated())); | 157 m_parentDiffActions[diff] = leftId; |
153 m_parentDiffActions[diffParent] = leftId; | |
154 | 158 |
155 diffParent = menu->addAction(tr("Diff to right parent")); | 159 diff = menu->addAction(tr("Diff to right parent")); |
156 connect(diffParent, SIGNAL(triggered()), | 160 connect(diff, SIGNAL(triggered()), this, SLOT(diffToParentActivated())); |
157 this, SLOT(diffToParentActivated())); | 161 m_parentDiffActions[diff] = rightId; |
158 m_parentDiffActions[diffParent] = rightId; | |
159 | 162 |
160 } else { | 163 } else { |
161 | 164 |
162 foreach (QString parentId, parents) { | 165 foreach (QString parentId, parents) { |
163 QString text = tr("Diff to parent %1") | 166 QString text = tr("Diff to parent %1").arg(Changeset::hashOf(parentId)); |
164 .arg(Changeset::hashOf(parentId)); | 167 QAction *diff = menu->addAction(text); |
165 QAction *diffParent = menu->addAction(text); | 168 connect(diff, SIGNAL(triggered()), this, SLOT(diffToParentActivated())); |
166 connect(diffParent, SIGNAL(triggered()), | 169 m_parentDiffActions[diff] = parentId; |
167 this, SLOT(diffToParentActivated())); | |
168 m_parentDiffActions[diffParent] = parentId; | |
169 } | 170 } |
170 } | 171 } |
171 | 172 |
172 } else { | 173 } else { |
173 | 174 |
174 QAction *diffParent = | 175 QAction *diff = menu->addAction(tr("Diff to parent")); |
175 menu->addAction(tr("Diff to parent")); | 176 connect(diff, SIGNAL(triggered()), this, SLOT(diffToParentActivated())); |
176 connect(diffParent, SIGNAL(triggered()), | |
177 this, SLOT(diffToParentActivated())); | |
178 } | 177 } |
179 | 178 |
180 QAction *diffCurrent = menu->addAction(tr("Diff to current working folder")); | 179 QAction *diffCurrent = menu->addAction(tr("Diff to current working folder")); |
181 connect(diffCurrent, SIGNAL(triggered()), this, SLOT(diffToCurrentActivated())); | 180 connect(diffCurrent, SIGNAL(triggered()), this, SLOT(diffToCurrentActivated())); |
182 | 181 |
221 } | 220 } |
222 | 221 |
223 emit diffToParent(getId(), parentId); | 222 emit diffToParent(getId(), parentId); |
224 } | 223 } |
225 | 224 |
225 void ChangesetItem::showSummaryActivated() | |
226 { | |
227 emit showSummary(m_changeset); | |
228 } | |
229 | |
226 void ChangesetItem::updateActivated() { emit updateTo(getId()); } | 230 void ChangesetItem::updateActivated() { emit updateTo(getId()); } |
227 void ChangesetItem::diffToCurrentActivated() { emit diffToCurrent(getId()); } | 231 void ChangesetItem::diffToCurrentActivated() { emit diffToCurrent(getId()); } |
228 void ChangesetItem::mergeActivated() { emit mergeFrom(getId()); } | 232 void ChangesetItem::mergeActivated() { emit mergeFrom(getId()); } |
229 void ChangesetItem::tagActivated() { emit tag(getId()); } | 233 void ChangesetItem::tagActivated() { emit tag(getId()); } |
230 | 234 |
231 void | 235 void |
232 ChangesetItem::paint(QPainter *paint, const QStyleOptionGraphicsItem *option, | 236 ChangesetItem::paint(QPainter *paint, const QStyleOptionGraphicsItem *, QWidget *) |
233 QWidget *w) | |
234 { | 237 { |
235 paint->save(); | 238 paint->save(); |
236 | 239 |
237 ColourSet *colourSet = ColourSet::instance(); | 240 ColourSet *colourSet = ColourSet::instance(); |
238 QColor branchColour = colourSet->getColourFor(m_changeset->branch()); | 241 QColor branchColour = colourSet->getColourFor(m_changeset->branch()); |