diff --git a/src/tooltips.py b/src/tooltips.py index 4bc6c5542..ed588affc 100644 --- a/src/tooltips.py +++ b/src/tooltips.py @@ -166,7 +166,7 @@ class StatusTable: self.spacer_label = ' ' def create_table(self): - self.table = gtk.Table(2, 1) + self.table = gtk.Table(4, 1) self.table.set_property('column-spacing', 2) def add_text_row(self, text): @@ -185,7 +185,7 @@ class StatusTable: # make sure 'status' is unicode before we send to to reduce_chars if isinstance(status, str): status = unicode(status, encoding='utf-8') - status = gtkgui_helpers.reduce_chars_newlines(status, 35, 1) + status = gtkgui_helpers.reduce_chars_newlines(status, 130, 1) str_status += ' - ' + status return gtkgui_helpers.escape_for_pango_markup(str_status) @@ -203,15 +203,16 @@ class StatusTable: image.set_from_file(file) break spacer = gtk.Label(self.spacer_label) - image.set_alignment(1, 0) + image.set_alignment(1, 0.5) self.table.attach(spacer, 1, 2, self.current_row, self.current_row + 1, 0, 0, 0, 0) self.table.attach(image, 2, 3, self.current_row, - self.current_row + 1, gtk.FILL, 0, 2, 0) + self.current_row + 1, gtk.FILL, gtk.FILL, 2, 0) status_label = gtk.Label() status_label.set_markup(str_status) status_label.set_alignment(0, 0) - self.table.attach(status_label, 3, 5, self.current_row, + status_label.set_line_wrap(True) + self.table.attach(status_label, 3, 4, self.current_row, self.current_row + 1, gtk.FILL | gtk.EXPAND, 0, 0, 0) if status_time: self.current_row += 1 @@ -480,15 +481,10 @@ class RosterTooltip(NotificationAreaTooltip): vcard_table.set_property('column-spacing', 2) vcard_table.set_homogeneous(False) vcard_current_row = 1 - - label = gtk.Label() - label.set_alignment(0, 0) - label.set_markup('' + prim_contact.jid + '') - - vcard_table.attach(label, 1, table_size, vcard_current_row, vcard_current_row + 1, - gtk.EXPAND | gtk.FILL, gtk.FILL, 0, 0) properties = [] - properties.append(( _('Name: '), gtkgui_helpers.escape_for_pango_markup( + jid_markup = '' + prim_contact.jid + '' + properties.append((jid_markup, None)) + properties.append((_('Name: '), gtkgui_helpers.escape_for_pango_markup( prim_contact.get_shown_name()))) if prim_contact.sub: properties.append(( _('Subscription: '), @@ -511,7 +507,16 @@ class RosterTooltip(NotificationAreaTooltip): properties.append((_('Resource: '), gtkgui_helpers.escape_for_pango_markup( contact.resource) + ' (' + unicode(contact.priority) + ')')) if num_resources > 1: - properties.append((_('Status: '), '')) + properties.append((_('Status: '), ' ')) + for contact in contacts: + if contact.resource: + status_line = self.get_status_info(contact.resource, + contact.priority, contact.show, contact.status) + + icon_name = self._get_icon_name_for_tooltip(contact) + self.add_status_row(file_path, icon_name, status_line, + contact.last_status_time) + properties.append((self.table, None)) else: # only one resource if contact.show: show = helpers.get_uf_show(contact.show) @@ -560,28 +565,18 @@ class RosterTooltip(NotificationAreaTooltip): vcard_table.attach(label, 2, 3, vcard_current_row, vcard_current_row + 1, gtk.EXPAND | gtk.FILL, vertical_fill, 0, 0) else: - label.set_markup(property[0]) + if isinstance(property[0], unicode): + label.set_markup(property[0]) + else: + label = property[0] vcard_table.attach(label, 1, 3, vcard_current_row, vcard_current_row + 1, gtk.FILL, vertical_fill, 0) self.avatar_image.set_alignment(0, 0) if table_size == 4: vcard_table.attach(self.avatar_image, 3, 4, 2, vcard_current_row +1, - gtk.FILL, gtk.FILL | gtk.EXPAND, 3, 0) + gtk.FILL, gtk.FILL | gtk.EXPAND, 3, 3) self.table.resize(table_size, vcard_current_row) self.vbox.pack_start(vcard_table, True, True) - - if num_resources == 1: # only one resource - pass - else: - for contact in contacts: - if contact.resource: - status_line = self.get_status_info(contact.resource, - contact.priority, contact.show, contact.status) - - icon_name = self._get_icon_name_for_tooltip(contact) - self.add_status_row(file_path, icon_name, status_line, - contact.last_status_time) - self.vbox.pack_start(self.table, True, True) self.win.add(self.vbox) class FileTransfersTooltip(BaseTooltip):