Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
 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)
Exemple #4
0
 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/>')
Exemple #5
0
 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)
Exemple #6
0
    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)
Exemple #7
0
    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
Exemple #9
0
 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)
Exemple #10
0
    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
Exemple #11
0
 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)
Exemple #12
0
    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
Exemple #13
0
 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>&lt;&lt;message insertion failed [%s:%s]&gt;&gt;</i></small><br>' % (type(record.msg), str(record.msg))
     self._cursor.insertHtml(html)
Exemple #14
0
 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>&lt;&lt;message insertion failed [%s:%s]&gt;&gt;</i></small><br>' % (
             type(record.msg), str(record.msg))
     self._cursor.insertHtml(html)
Exemple #15
0
 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)
Exemple #16
0
 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>')
Exemple #17
0
    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>')
Exemple #18
0
 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 _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
Exemple #20
0
 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>'))
Exemple #21
0
 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/>')
Exemple #22
0
 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)
Exemple #23
0
 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)
Exemple #24
0
 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>'))
Exemple #25
0
 def set_message(self, message):
     '''Updates the message'''
     message = Utils.escape(message)
     message = Utils.parse_emotes(unicode(message))
     self._message_lbl.setText(message)
Exemple #26
0
 def set_nick(self, nick):
     '''Updates the nick'''
     nick = Utils.escape(nick)
     nick = Utils.parse_emotes(unicode(nick))
     nick = nick + (u'&nbsp;&nbsp;&nbsp;&nbsp;[%s]' % self._account)
     self._display_name_lbl.setText(nick)