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