diff --git a/gertty/view/change.py b/gertty/view/change.py index 8d1bb8a..86cf473 100644 --- a/gertty/view/change.py +++ b/gertty/view/change.py @@ -262,6 +262,7 @@ This Screen =========== Checkout the most recent revision. Show the diff of the mont recent revision. + Toggle the hidden flag for the current change. Leave a review for the most recent revision. Toggle the reviewed flag for the current change. """ @@ -321,7 +322,11 @@ This Screen reviewed = ' (reviewed)' else: reviewed = '' - self.title = 'Change %s%s' % (change.number, reviewed) + if change.hidden: + hidden = ' (hidden)' + else: + hidden = '' + self.title = 'Change %s%s%s' % (change.number, reviewed, hidden) self.app.status.update(title=self.title) self.project_key = change.project.key @@ -418,12 +423,21 @@ This Screen change = session.getChange(self.change_key) change.reviewed = not change.reviewed + def toggleHidden(self): + with self.app.db.getSession() as session: + change = session.getChange(self.change_key) + change.hidden = not change.hidden + def keypress(self, size, key): r = super(ChangeView, self).keypress(size, key) if r == 'v': self.toggleReviewed() self.refresh() return None + if r == 'k': + self.toggleHidden() + self.refresh() + return None if r == 'r': row = self.revision_rows[self.last_revision_key] row.review_button.openReview() diff --git a/gertty/view/change_list.py b/gertty/view/change_list.py index 82a6086..6cec924 100644 --- a/gertty/view/change_list.py +++ b/gertty/view/change_list.py @@ -38,7 +38,7 @@ class ChangeRow(urwid.Button): self.update(change) def update(self, change): - if change.reviewed: + if change.reviewed or change.hidden: style = 'reviewed-change' else: style = 'unreviewed-change' @@ -68,6 +68,7 @@ class ChangeListView(urwid.WidgetWrap): help = mywid.GLOBAL_HELP + """ This Screen =========== + Toggle the hidden flag for the currently selected change. Toggle whether only unreviewed or all changes are displayed. Toggle the reviewed flag for the currently selected change. """ @@ -124,6 +125,13 @@ This Screen ret = change.reviewed return ret + def toggleHidden(self, change_key): + with self.app.db.getSession() as session: + change = session.getChange(change_key) + change.hidden = not change.hidden + ret = change.hidden + return ret + def keypress(self, size, key): if key=='l': self.unreviewed = not self.unreviewed @@ -136,6 +144,13 @@ This Screen reviewed = self.toggleReviewed(self.listbox.body[pos].change_key) self.refresh() return None + if key=='k': + if not len(self.listbox.body): + return None + pos = self.listbox.focus_position + hidden = self.toggleHidden(self.listbox.body[pos].change_key) + self.refresh() + return None return super(ChangeListView, self).keypress(size, key) def onSelect(self, button, change_key):