Merge "Always refresh the screen on pop"
This commit is contained in:
commit
bfb5deff32
@ -212,7 +212,7 @@ class App(object):
|
||||
if hasattr(widget, 'title'):
|
||||
self.status.update(title=widget.title)
|
||||
self.loop.widget = widget
|
||||
self.refresh()
|
||||
self.refresh(force=True)
|
||||
|
||||
def findChangeList(self):
|
||||
for widget in reversed(self.screens):
|
||||
@ -226,17 +226,21 @@ class App(object):
|
||||
widget = self.screens.pop()
|
||||
self.loop.widget = widget
|
||||
|
||||
def refresh(self, data=None):
|
||||
def refresh(self, data=None, force=False):
|
||||
self.status.refresh()
|
||||
widget = self.loop.widget
|
||||
while isinstance(widget, urwid.Overlay):
|
||||
widget = widget.contents[0][0]
|
||||
interested = force
|
||||
try:
|
||||
while True:
|
||||
event = self.sync.result_queue.get(0)
|
||||
widget.refresh(event)
|
||||
if widget.interested(event):
|
||||
interested = True
|
||||
except Queue.Empty:
|
||||
pass
|
||||
if interested:
|
||||
widget.refresh()
|
||||
|
||||
def popup(self, widget,
|
||||
relative_width=50, relative_height=25,
|
||||
|
@ -524,15 +524,18 @@ class ChangeView(urwid.WidgetWrap):
|
||||
if not succeeded:
|
||||
raise gertty.view.DisplayError("Git commits not present in local repository")
|
||||
|
||||
def refresh(self, event=None):
|
||||
if event and not ((isinstance(event, sync.ChangeAddedEvent) and
|
||||
self.change_key in event.related_change_keys)
|
||||
or
|
||||
(isinstance(event, sync.ChangeUpdatedEvent) and
|
||||
self.change_key in event.related_change_keys)):
|
||||
def interested(self, event):
|
||||
if not ((isinstance(event, sync.ChangeAddedEvent) and
|
||||
self.change_key in event.related_change_keys)
|
||||
or
|
||||
(isinstance(event, sync.ChangeUpdatedEvent) and
|
||||
self.change_key in event.related_change_keys)):
|
||||
self.log.debug("Ignoring refresh change due to event %s" % (event,))
|
||||
return
|
||||
return False
|
||||
self.log.debug("Refreshing change due to event %s" % (event,))
|
||||
return True
|
||||
|
||||
def refresh(self):
|
||||
change_info = []
|
||||
with self.app.db.getSession() as session:
|
||||
change = session.getChange(self.change_key)
|
||||
|
@ -142,20 +142,22 @@ class ChangeListView(urwid.WidgetWrap):
|
||||
self._w.contents.append((self.listbox, ('weight', 1)))
|
||||
self._w.set_focus(3)
|
||||
|
||||
def refresh(self, event=None):
|
||||
if event and not ((self.project_key is not None and
|
||||
isinstance(event, sync.ChangeAddedEvent) and
|
||||
self.project_key == event.project_key)
|
||||
or
|
||||
(self.project_key is None and
|
||||
isinstance(event, sync.ChangeAddedEvent))
|
||||
or
|
||||
(isinstance(event, sync.ChangeUpdatedEvent) and
|
||||
event.change_key in self.change_rows.keys())):
|
||||
def interested(self, event):
|
||||
if not ((self.project_key is not None and
|
||||
isinstance(event, sync.ChangeAddedEvent) and
|
||||
self.project_key == event.project_key)
|
||||
or
|
||||
(self.project_key is None and
|
||||
isinstance(event, sync.ChangeAddedEvent))
|
||||
or
|
||||
(isinstance(event, sync.ChangeUpdatedEvent) and
|
||||
event.change_key in self.change_rows.keys())):
|
||||
self.log.debug("Ignoring refresh change list due to event %s" % (event,))
|
||||
return
|
||||
return False
|
||||
self.log.debug("Refreshing change list due to event %s" % (event,))
|
||||
return True
|
||||
|
||||
def refresh(self):
|
||||
unseen_keys = set(self.change_rows.keys())
|
||||
with self.app.db.getSession() as session:
|
||||
lst = session.getChanges(self.query, self.unreviewed,
|
||||
|
@ -341,17 +341,20 @@ class BaseDiffView(urwid.WidgetWrap):
|
||||
def makeFileHeader(self, diff, comment_lists):
|
||||
raise NotImplementedError
|
||||
|
||||
def refresh(self, event=None):
|
||||
if event and not ((isinstance(event, sync.ChangeAddedEvent) and
|
||||
self.change_key in event.related_change_keys)
|
||||
or
|
||||
(isinstance(event, sync.ChangeUpdatedEvent) and
|
||||
self.change_key in event.related_change_keys)):
|
||||
def interested(self, event):
|
||||
if not ((isinstance(event, sync.ChangeAddedEvent) and
|
||||
self.change_key in event.related_change_keys)
|
||||
or
|
||||
(isinstance(event, sync.ChangeUpdatedEvent) and
|
||||
self.change_key in event.related_change_keys)):
|
||||
#self.log.debug("Ignoring refresh diff due to event %s" % (event,))
|
||||
return
|
||||
return False
|
||||
#self.log.debug("Refreshing diff due to event %s" % (event,))
|
||||
return True
|
||||
|
||||
def refresh(self, event=None):
|
||||
#TODO
|
||||
return
|
||||
pass
|
||||
|
||||
def keypress(self, size, key):
|
||||
old_focus = self.listbox.focus
|
||||
|
@ -97,17 +97,19 @@ class ProjectListView(urwid.WidgetWrap):
|
||||
self._w.contents.append((self.listbox, ('weight', 1)))
|
||||
self._w.set_focus(3)
|
||||
|
||||
def refresh(self, event=None):
|
||||
if event and not (isinstance(event, sync.ProjectAddedEvent)
|
||||
or
|
||||
isinstance(event, sync.ChangeAddedEvent)
|
||||
or
|
||||
(isinstance(event, sync.ChangeUpdatedEvent) and
|
||||
(event.status_changed or event.review_flag_changed))):
|
||||
def interested(self, event):
|
||||
if not (isinstance(event, sync.ProjectAddedEvent)
|
||||
or
|
||||
isinstance(event, sync.ChangeAddedEvent)
|
||||
or
|
||||
(isinstance(event, sync.ChangeUpdatedEvent) and
|
||||
(event.status_changed or event.review_flag_changed))):
|
||||
self.log.debug("Ignoring refresh project list due to event %s" % (event,))
|
||||
return
|
||||
return False
|
||||
self.log.debug("Refreshing project list due to event %s" % (event,))
|
||||
return True
|
||||
|
||||
def refresh(self):
|
||||
if self.subscribed:
|
||||
self.title = u'Subscribed projects'
|
||||
if self.unreviewed:
|
||||
|
Loading…
x
Reference in New Issue
Block a user