Merge "Handle multiple child revisions of same parent"

This commit is contained in:
Jenkins 2014-06-04 15:09:14 +00:00 committed by Gerrit Code Review
commit 58dea593fc

View File

@ -521,27 +521,29 @@ This Screen
self.depends_on.contents[:] = [] self.depends_on.contents[:] = []
# Handle needed-by # Handle needed-by
children = [r.change for r in session.getRevisionsByParent(revision.commit) if r.change.status != 'MERGED'] children = dict((r.change.key, r.change.subject)
for r in session.getRevisionsByParent(revision.commit)
if r.change.status != 'MERGED')
if children: if children:
if len(self.needed_by.contents) == 0: if len(self.needed_by.contents) == 0:
self.needed_by.contents.append((urwid.Text(('table-header', 'Needed by:')), self.needed_by.contents.append((urwid.Text(('table-header', 'Needed by:')),
self.needed_by.options('pack'))) self.needed_by.options('pack')))
unseen_keys = set(self.needed_by_rows.keys()) unseen_keys = set(self.needed_by_rows.keys())
i = 1 i = 1
for c in children: for key, subject in children.items():
row = self.needed_by_rows.get(c.key) row = self.needed_by_rows.get(key)
if not row: if not row:
row = urwid.AttrMap(urwid.Padding(ChangeButton(self, c.key, c.subject), width='pack'), row = urwid.AttrMap(urwid.Padding(ChangeButton(self, key, subject), width='pack'),
'link', focus_map={None: 'focused-link'}) 'link', focus_map={None: 'focused-link'})
self.needed_by.contents.insert(i, (row, self.depends_on.options())) self.needed_by.contents.insert(i, (row, self.depends_on.options()))
if not self.needed_by.focus.selectable(): if not self.needed_by.focus.selectable():
self.needed_by.set_focus(i) self.needed_by.set_focus(i)
if not self.left_column.focus.selectable(): if not self.left_column.focus.selectable():
self.left_column.set_focus(self.needed_by) self.left_column.set_focus(self.needed_by)
self.needed_by_rows[c.key] = row self.needed_by_rows[key] = row
else: else:
row.original_widget.original_widget.set_label(c.subject) row.original_widget.original_widget.set_label(subject)
unseen_keys.remove(c.key) unseen_keys.remove(key)
i += 1 i += 1
for key in unseen_keys: for key in unseen_keys:
row = self.needed_by_rows[key] row = self.needed_by_rows[key]