def _set_contact_info(self, contact_item, contact): '''Fills the contact Item with data''' display_name = Utils.escape(unicode(contact.display_name)) message = Utils.escape(unicode(contact.message)) sort_role = self.sort_role_dict[contact.status] + display_name contact_item.setData(display_name, Role.DisplayRole) contact_item.setData(message, Role.MessageRole) contact_item.setData(contact.picture, Role.DecorationRole) contact_item.setData(contact.media, Role.MediaRole) contact_item.setData(contact.status, Role.StatusRole) contact_item.setData(contact.blocked, Role.BlockedRole) contact_item.setData(contact.account, Role.ToolTipRole) contact_item.setData(sort_role, Role.SortRole) contact_item.setData(contact, Role.DataRole)
def _set_information(self, lines): message, account = lines message = Utils.escape(message) message = Utils.parse_emotes(unicode(message)) message = u'%s<br /><span style="font-size: small;">%s</span>' % ( message, account) self._message_lbl.setText(message)
def send_message(self, formatter, my_account, text, cedict, cedir, first): '''This method is called from the core, when a message is sent by us. It shows the message''' self._append_to_chat('<b>ME:</b>') self._append_to_chat(Utils.parse_emotes(Utils.escape(unicode(text)))) self._append_to_chat('<br/>')
def set_message(self, message): '''Updates the message''' message = Utils.escape(message) message = Utils.parse_emotes(unicode(message)) message = message + ( u'<br /><span style="font-size: small;">[%s]</span>' % self._account) self._message_lbl.setText(message)
def _set_contact_info(self, contact_item, contact): """Fills the contact Item with data""" # TODO: handle moving contact between groups # in particular: online/offiline display_name = Utils.escape(unicode(contact.display_name)) message = Utils.escape(unicode(contact.message)) sort_role = self.sort_role_dict[contact.status] + display_name contact_item.setData(display_name, Role.DisplayRole) contact_item.setData(message, Role.MessageRole) contact_item.setData(contact.picture, Role.DecorationRole) contact_item.setData(contact.media, Role.MediaRole) contact_item.setData(contact.status, Role.StatusRole) contact_item.setData(contact.blocked, Role.BlockedRole) contact_item.setData(contact.account, Role.ToolTipRole) contact_item.setData(sort_role, Role.SortRole) contact_item.setData(contact, Role.DataRole)
def _set_contact_info(self, contact_item, contact): '''Fills the contact Item with data''' # TODO: handle moving contact between groups # in particular: online/offiline display_name = Utils.escape(unicode(contact.display_name)) message = Utils.escape(unicode(contact.message)) sort_role = self.sort_role_dict[contact.status] + display_name contact_item.setData(display_name, Role.DisplayRole) contact_item.setData(message, Role.MessageRole) contact_item.setData(contact.picture, Role.DecorationRole) contact_item.setData(contact.media, Role.MediaRole) contact_item.setData(contact.status, Role.StatusRole) contact_item.setData(contact.blocked, Role.BlockedRole) contact_item.setData(contact.account, Role.ToolTipRole) contact_item.setData(sort_role, Role.SortRole) contact_item.setData(contact, Role.DataRole)
def _format_contact_display_role(text): """Formats correctly a string part of a display role. Parses emotes, and scales them.""" # TODO: calculate smiley size from text's size. smiley_size = 16 text = Utils.escape(text) text = replace_markup(text) text = Utils.parse_emotes(unicode(text)) text = text.replace("<img src", '<img width="%d" height="%d" src' % (smiley_size, smiley_size)) return text
def add_group(self, group): """Add a group.""" if not self._config.b_order_by_group: return new_group_item = QtGui.QStandardItem(Utils.escape(unicode(group.name))) new_group_item.setData(group.identifier, Role.UidRole) new_group_item.setData(0, Role.TotalCountRole) new_group_item.setData(0, Role.OnlCountRole) new_group_item.setData(group, Role.DataRole) self.appendRow(new_group_item)
def add_group(self, group, force=False): '''Add a group.''' if not (force or self._order_by_group): return new_group_item = QtGui.QStandardItem(Utils.escape(unicode(group.name))) new_group_item.setData(group.identifier, Role.UidRole) new_group_item.setData(group, Role.DataRole) self.appendRow(new_group_item) return new_group_item
def add_group(self, group): '''Add a group.''' if not self._config.b_order_by_group: return new_group_item = QtGui.QStandardItem(Utils.escape(unicode(group.name))) new_group_item.setData(group.identifier, Role.UidRole) new_group_item.setData(0, Role.TotalCountRole) new_group_item.setData(0, Role.OnlCountRole) new_group_item.setData(group, Role.DataRole) self.appendRow(new_group_item)
def add_group(self, group, force=False): '''Add a group.''' if not (force or self._order_by_group): return new_group_item = QtGui.QStandardItem( Utils.escape(unicode(group.name))) new_group_item.setData(group.identifier, Role.UidRole) new_group_item.setData(group, Role.DataRole) self.appendRow(new_group_item) return new_group_item
def _show_record(self, record): '''Appends a record in the view''' time_string = time.localtime(float(record.created)) time_string = time.strftime("%H:%M:%S", time_string) html = u'<small>(%s): [<b>%s</b>] : ' html = html % (time_string, record.name) try: html = html + '%s</small><br />' % Utils.escape(record.msg.strip()) except AttributeError as detail: html = html + '<small><i><<message insertion failed [%s:%s]>></i></small><br>' % (type(record.msg), str(record.msg)) self._cursor.insertHtml(html)
def _show_record(self, record): '''Appends a record in the view''' time_string = time.localtime(float(record.created)) time_string = time.strftime("%H:%M:%S", time_string) html = u'<small>(%s): [<b>%s</b>] : ' html = html % (time_string, record.name) try: html = html + '%s</small><br />' % Utils.escape(record.msg.strip()) except AttributeError as detail: html = html + '<small><i><<message insertion failed [%s:%s]>></i></small><br>' % ( type(record.msg), str(record.msg)) self._cursor.insertHtml(html)
def set_text(self, text): '''Displays the given text''' #NOTE: do we have to set also the QLineEdit's text? #<-> method could be called while the QLEdit is active? self._text = unicode(text) text = Utils.escape(unicode(text)) parsed_text = Utils.parse_emotes(text) text = QtCore.QString(text) if not text.isEmpty(): self._is_empty_message_displayed = False self.label.setText(parsed_text) elif self._allow_empty: self._is_empty_message_displayed = True self.label.setText(self._empty_message)
def receive_message(self, formatter, contact, message, cedict, cedir, first): '''This method is called from the core (e3 or base class or whatever when a new message arrives. It shows the new message''' log.debug('%s, %s, %s, %s, %s, %s' % (formatter,contact, message.type, message.account, cedict, first) ) self._append_to_chat( Utils.parse_emotes(u'<b>' + contact.display_name + u':</b>')) self._append_to_chat( Utils.parse_emotes(Utils.escape(unicode(message.body))), message.style) self._append_to_chat('<br>')
def receive_message(self, formatter, contact, message, cedict, cedir, first): '''This method is called from the core (e3 or base class or whatever when a new message arrives. It shows the new message''' log.debug( '%s, %s, %s, %s, %s, %s' % (formatter, contact, message.type, message.account, cedict, first)) self._append_to_chat( Utils.parse_emotes(u'<b>' + contact.display_name + u':</b>')) self._append_to_chat( Utils.parse_emotes(Utils.escape(unicode(message.body))), message.style) self._append_to_chat('<br>')
def _build_display_role(self, index, is_group=False): """Build a string to be used as item's display role""" model = index.model() data_role = model.data(index, Role.DataRole).toPyObject() if is_group: name = model.data(index, Role.DisplayRole).toPyObject() name = Utils.escape(name) online = model.data(index, Role.OnlCountRole).toPyObject() total = model.data(index, Role.TotalCountRole).toPyObject() display_role = self._config.group_template display_role = replace_markup(display_role) display_role = display_role.replace("[$NAME]", name) display_role = display_role.replace("[$ONLINE_COUNT]", str(online)) display_role = display_role.replace("[$TOTAL_COUNT]", str(total)) else: # TODO: consider changing how data is stored inside the model, # if useful display_role = self._format_nick( data_role, ( str(model.data(index, Role.DisplayRole).toPyObject()), data_role.nick, str(model.data(index, Role.MessageRole).toPyObject()), ), ) display_role = _format_contact_display_role(display_role) # message = model.data(index, Role.MessageRole).toString() # if not message.isEmpty(): # display_role += u'<p style="-qt-paragraph-type:empty; ' \ # u'margin-top:5px; margin-bottom:0px; ' \ # u'margin-left:0px; margin-right:0px; ' \ # u'-qt-block-indent:0; text-indent:0px;"></p>' # message = u'<i>' + message + u'</i>' # display_role += _format_contact_display_role(message) # display_role = _format_contact_display_role(display_role) # display_role += '</table>' return display_role
def information(self, formatter, contact, message): '''This method is called by the core, when there's the need to display an information message''' self._append_to_chat( Utils.parse_emotes('<p align="right"><i>' + Utils.escape(unicode(message)) + '</i></p>'))
def set_message(self, message): '''Updates the message''' message = Utils.escape(message) message = Utils.parse_emotes(unicode(message)) message = message + (u'<br /><span style="font-size: small;">[%s]</span>' % self._account) self._message_lbl.setText(message)
def _set_information(self, lines): message, account = lines message = Utils.escape(message) message = Utils.parse_emotes(unicode(message)) message = u'%s<br /><span style="font-size: small;">%s</span>' % (message, account) self._message_lbl.setText(message)
def information(self, formatter, contact, message): '''This method is called by the core, when there's the need to display an information message''' self._append_to_chat(Utils.parse_emotes('<p align="right"><i>' + Utils.escape(unicode(message)) + '</i></p>'))
def set_message(self, message): '''Updates the message''' message = Utils.escape(message) message = Utils.parse_emotes(unicode(message)) self._message_lbl.setText(message)
def set_nick(self, nick): '''Updates the nick''' nick = Utils.escape(nick) nick = Utils.parse_emotes(unicode(nick)) nick = nick + (u' [%s]' % self._account) self._display_name_lbl.setText(nick)