Mercurial > hg > easyhg
comparison grapher.cpp @ 55:261bfb9481fe
* Make changeset item boxes wider if they have no neighbours.
Changeset item code is horrible -- items generally need
refactoring to take out hardcoded dimensions.
author | Chris Cannam |
---|---|
date | Fri, 12 Nov 2010 17:30:53 +0000 |
parents | 3c46b2ac45d3 |
children | f583e44d9d31 |
comparison
equal
deleted
inserted
replaced
54:0e5fba6750c2 | 55:261bfb9481fe |
---|---|
184 | 184 |
185 foreach (QString childId, cs->children()) { | 185 foreach (QString childId, cs->children()) { |
186 if (!m_changesets.contains(childId)) continue; | 186 if (!m_changesets.contains(childId)) continue; |
187 Changeset *child = m_changesets[childId]; | 187 Changeset *child = m_changesets[childId]; |
188 int childRow = m_items[childId]->row(); | 188 int childRow = m_items[childId]->row(); |
189 if (child->parents().size() > 1 || child->branch() == cs->branch()) { | 189 if (child->parents().size() > 1 || |
190 for (int r = row; r > childRow; --r) { | 190 child->branch() == cs->branch()) { |
191 for (int r = row-1; r > childRow; --r) { | |
191 m_alloc[r].insert(col); | 192 m_alloc[r].insert(col); |
192 } | 193 } |
193 } | 194 } |
194 } | 195 } |
195 | 196 |
209 } | 210 } |
210 if (special.size() == 2) { | 211 if (special.size() == 2) { |
211 for (int i = 0; i < 2; ++i) { | 212 for (int i = 0; i < 2; ++i) { |
212 int off = i * 2 - 1; // 0 -> -1, 1 -> 1 | 213 int off = i * 2 - 1; // 0 -> -1, 1 -> 1 |
213 ChangesetItem *it = m_items[special[i]]; | 214 ChangesetItem *it = m_items[special[i]]; |
214 m_alloc[it->row()].insert(col); // avoid our column | |
215 it->setColumn(findAvailableColumn(it->row(), col + off, true)); | 215 it->setColumn(findAvailableColumn(it->row(), col + off, true)); |
216 for (int r = row; r >= it->row(); --r) { | 216 for (int r = row-1; r >= it->row(); --r) { |
217 m_alloc[r].insert(it->column()); | 217 m_alloc[r].insert(it->column()); |
218 } | 218 } |
219 m_handled.insert(special[i]); | 219 m_handled.insert(special[i]); |
220 } | 220 } |
221 } | 221 } |
382 } | 382 } |
383 } | 383 } |
384 layoutCol(cs->id()); | 384 layoutCol(cs->id()); |
385 } | 385 } |
386 | 386 |
387 foreach (Changeset *cs, csets) { | |
388 ChangesetItem *item = m_items[cs->id()]; | |
389 if (!m_alloc[item->row()].contains(item->column()-1) && | |
390 !m_alloc[item->row()].contains(item->column()+1)) { | |
391 item->setWide(true); | |
392 } | |
393 } | |
394 | |
387 // we know that 0 is an upper bound on row, and that mincol must | 395 // we know that 0 is an upper bound on row, and that mincol must |
388 // be <= 0 and maxcol >= 0, so these initial values are good | 396 // be <= 0 and maxcol >= 0, so these initial values are good |
389 int minrow = 0, maxrow = 0; | 397 int minrow = 0, maxrow = 0; |
390 int mincol = 0, maxcol = 0; | 398 int mincol = 0, maxcol = 0; |
391 | 399 |