primitivus (chat): fixed timestamp/nick (un)hiding + new redraw and printMessages methods
This commit is contained in:
parent
96afcb28d3
commit
2e204f182a
1 changed files with 26 additions and 10 deletions
|
|
@ -81,7 +81,7 @@ class MessageWidget(urwid.WidgetWrap):
|
|||
@message.setter
|
||||
def message(self, value):
|
||||
self.mess_data.message = {'':value}
|
||||
self._w.set_text(self.markup)
|
||||
self.redraw()
|
||||
|
||||
@property
|
||||
def type(self):
|
||||
|
|
@ -90,6 +90,9 @@ class MessageWidget(urwid.WidgetWrap):
|
|||
except AttributeError:
|
||||
return C.MESS_TYPE_INFO
|
||||
|
||||
def redraw(self):
|
||||
self._w.set_text(self.markup)
|
||||
|
||||
def selectable(self):
|
||||
return True
|
||||
|
||||
|
|
@ -241,12 +244,10 @@ class Chat(PrimitivusWidget, quick_chat.QuickChat):
|
|||
self._appendOccupantsPanel()
|
||||
elif key == a_key['TIMESTAMP_HIDE']: # user wants to (un)hide timestamp
|
||||
self.show_timestamp = not self.show_timestamp
|
||||
for wid in self.mess_walker:
|
||||
wid._invalidate()
|
||||
self.redraw()
|
||||
elif key == a_key['SHORT_NICKNAME']: # user wants to (not) use short nick
|
||||
self.show_short_nick = not self.show_short_nick
|
||||
for wid in self.mess_walker:
|
||||
wid._invalidate()
|
||||
self.redraw()
|
||||
elif key == a_key['SUBJECT_SWITCH']: # user wants to (un)hide group's subject or change its apperance
|
||||
if self.subject:
|
||||
self.show_title = (self.show_title + 1) % 3
|
||||
|
|
@ -313,9 +314,7 @@ class Chat(PrimitivusWidget, quick_chat.QuickChat):
|
|||
lang = args[0][5:].strip()
|
||||
self.filters.append(lambda mess_data: lang in mess_data.message)
|
||||
|
||||
del self.mess_walker[:]
|
||||
for message in self.messages.itervalues():
|
||||
self.appendMessage(message)
|
||||
self.printMessages()
|
||||
|
||||
def presenceListener(self, entity, show, priority, statuses, profile):
|
||||
"""Update entity's presence status
|
||||
|
|
@ -476,6 +475,24 @@ class Chat(PrimitivusWidget, quick_chat.QuickChat):
|
|||
|
||||
## Messages
|
||||
|
||||
def printMessages(self, clear=True):
|
||||
"""generate message widgets
|
||||
|
||||
@param clear(bool): clear message before printing if true
|
||||
"""
|
||||
if clear:
|
||||
del self.mess_walker[:]
|
||||
for message in self.messages.itervalues():
|
||||
self.appendMessage(message)
|
||||
|
||||
def redraw(self):
|
||||
"""redraw all messages"""
|
||||
for w in self.mess_walker:
|
||||
try:
|
||||
w.redraw()
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
def updateHistory(self, size=C.HISTORY_LIMIT_DEFAULT, search='', profile='@NONE@'):
|
||||
del self.mess_walker[:]
|
||||
if search:
|
||||
|
|
@ -485,8 +502,7 @@ class Chat(PrimitivusWidget, quick_chat.QuickChat):
|
|||
|
||||
def _onHistoryPrinted(self):
|
||||
"""Refresh or scroll down the focus after the history is printed"""
|
||||
for message in self.messages.itervalues():
|
||||
self.appendMessage(message)
|
||||
self.printMessages(clear=False)
|
||||
super(Chat, self)._onHistoryPrinted()
|
||||
|
||||
def onPrivateCreated(self, widget):
|
||||
|
|
|
|||
Loading…
Reference in a new issue