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
|
@message.setter
|
||||||
def message(self, value):
|
def message(self, value):
|
||||||
self.mess_data.message = {'':value}
|
self.mess_data.message = {'':value}
|
||||||
self._w.set_text(self.markup)
|
self.redraw()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def type(self):
|
def type(self):
|
||||||
|
|
@ -90,6 +90,9 @@ class MessageWidget(urwid.WidgetWrap):
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
return C.MESS_TYPE_INFO
|
return C.MESS_TYPE_INFO
|
||||||
|
|
||||||
|
def redraw(self):
|
||||||
|
self._w.set_text(self.markup)
|
||||||
|
|
||||||
def selectable(self):
|
def selectable(self):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
@ -241,12 +244,10 @@ class Chat(PrimitivusWidget, quick_chat.QuickChat):
|
||||||
self._appendOccupantsPanel()
|
self._appendOccupantsPanel()
|
||||||
elif key == a_key['TIMESTAMP_HIDE']: # user wants to (un)hide timestamp
|
elif key == a_key['TIMESTAMP_HIDE']: # user wants to (un)hide timestamp
|
||||||
self.show_timestamp = not self.show_timestamp
|
self.show_timestamp = not self.show_timestamp
|
||||||
for wid in self.mess_walker:
|
self.redraw()
|
||||||
wid._invalidate()
|
|
||||||
elif key == a_key['SHORT_NICKNAME']: # user wants to (not) use short nick
|
elif key == a_key['SHORT_NICKNAME']: # user wants to (not) use short nick
|
||||||
self.show_short_nick = not self.show_short_nick
|
self.show_short_nick = not self.show_short_nick
|
||||||
for wid in self.mess_walker:
|
self.redraw()
|
||||||
wid._invalidate()
|
|
||||||
elif key == a_key['SUBJECT_SWITCH']: # user wants to (un)hide group's subject or change its apperance
|
elif key == a_key['SUBJECT_SWITCH']: # user wants to (un)hide group's subject or change its apperance
|
||||||
if self.subject:
|
if self.subject:
|
||||||
self.show_title = (self.show_title + 1) % 3
|
self.show_title = (self.show_title + 1) % 3
|
||||||
|
|
@ -313,9 +314,7 @@ class Chat(PrimitivusWidget, quick_chat.QuickChat):
|
||||||
lang = args[0][5:].strip()
|
lang = args[0][5:].strip()
|
||||||
self.filters.append(lambda mess_data: lang in mess_data.message)
|
self.filters.append(lambda mess_data: lang in mess_data.message)
|
||||||
|
|
||||||
del self.mess_walker[:]
|
self.printMessages()
|
||||||
for message in self.messages.itervalues():
|
|
||||||
self.appendMessage(message)
|
|
||||||
|
|
||||||
def presenceListener(self, entity, show, priority, statuses, profile):
|
def presenceListener(self, entity, show, priority, statuses, profile):
|
||||||
"""Update entity's presence status
|
"""Update entity's presence status
|
||||||
|
|
@ -476,6 +475,24 @@ class Chat(PrimitivusWidget, quick_chat.QuickChat):
|
||||||
|
|
||||||
## Messages
|
## 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@'):
|
def updateHistory(self, size=C.HISTORY_LIMIT_DEFAULT, search='', profile='@NONE@'):
|
||||||
del self.mess_walker[:]
|
del self.mess_walker[:]
|
||||||
if search:
|
if search:
|
||||||
|
|
@ -485,8 +502,7 @@ class Chat(PrimitivusWidget, quick_chat.QuickChat):
|
||||||
|
|
||||||
def _onHistoryPrinted(self):
|
def _onHistoryPrinted(self):
|
||||||
"""Refresh or scroll down the focus after the history is printed"""
|
"""Refresh or scroll down the focus after the history is printed"""
|
||||||
for message in self.messages.itervalues():
|
self.printMessages(clear=False)
|
||||||
self.appendMessage(message)
|
|
||||||
super(Chat, self)._onHistoryPrinted()
|
super(Chat, self)._onHistoryPrinted()
|
||||||
|
|
||||||
def onPrivateCreated(self, widget):
|
def onPrivateCreated(self, widget):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue