use Gtk.Grid instead of deprecated Gtk.Table in tooltips
This commit is contained in:
		
							parent
							
								
									b70d08a513
								
							
						
					
					
						commit
						0ee35f0395
					
				
					 1 changed files with 63 additions and 68 deletions
				
			
		
							
								
								
									
										131
									
								
								src/tooltips.py
									
										
									
									
									
								
							
							
						
						
									
										131
									
								
								src/tooltips.py
									
										
									
									
									
								
							| 
						 | 
					@ -222,7 +222,10 @@ class StatusTable:
 | 
				
			||||||
        self.spacer_label = '   '
 | 
					        self.spacer_label = '   '
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def create_table(self):
 | 
					    def create_table(self):
 | 
				
			||||||
        self.table = Gtk.Table(4, 1)
 | 
					        self.table = Gtk.Grid()
 | 
				
			||||||
 | 
					        self.table.insert_row(0)
 | 
				
			||||||
 | 
					        self.table.insert_row(0)
 | 
				
			||||||
 | 
					        self.table.insert_column(0)
 | 
				
			||||||
        self.table.set_property('column-spacing', 2)
 | 
					        self.table.set_property('column-spacing', 2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def add_text_row(self, text, col_inc = 0):
 | 
					    def add_text_row(self, text, col_inc = 0):
 | 
				
			||||||
| 
						 | 
					@ -232,8 +235,8 @@ class StatusTable:
 | 
				
			||||||
        self.text_label.set_alignment(0, 0)
 | 
					        self.text_label.set_alignment(0, 0)
 | 
				
			||||||
        self.text_label.set_selectable(False)
 | 
					        self.text_label.set_selectable(False)
 | 
				
			||||||
        self.text_label.set_markup(text)
 | 
					        self.text_label.set_markup(text)
 | 
				
			||||||
        self.table.attach(self.text_label, 1 + col_inc, 4, self.current_row,
 | 
					        self.table.attach(self.text_label, 1 + col_inc, self.current_row,
 | 
				
			||||||
                self.current_row + 1)
 | 
					            3 - col_inc, 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_status_info(self, resource, priority, show, status):
 | 
					    def get_status_info(self, resource, priority, show, status):
 | 
				
			||||||
        str_status = resource + ' (' + str(priority) + ')'
 | 
					        str_status = resource + ' (' + str(priority) + ')'
 | 
				
			||||||
| 
						 | 
					@ -248,10 +251,12 @@ class StatusTable:
 | 
				
			||||||
        return str_status
 | 
					        return str_status
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def add_status_row(self, file_path, show, str_status, status_time=None,
 | 
					    def add_status_row(self, file_path, show, str_status, status_time=None,
 | 
				
			||||||
                    show_lock=False, indent=True):
 | 
					    show_lock=False, indent=True):
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        Append a new row with status icon to the table
 | 
					        Append a new row with status icon to the table
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
 | 
					        self.table.insert_row(0)
 | 
				
			||||||
 | 
					        self.table.insert_row(0)
 | 
				
			||||||
        self.current_row += 1
 | 
					        self.current_row += 1
 | 
				
			||||||
        state_file = show.replace(' ', '_')
 | 
					        state_file = show.replace(' ', '_')
 | 
				
			||||||
        files = []
 | 
					        files = []
 | 
				
			||||||
| 
						 | 
					@ -266,22 +271,18 @@ class StatusTable:
 | 
				
			||||||
        spacer = Gtk.Label(label=self.spacer_label)
 | 
					        spacer = Gtk.Label(label=self.spacer_label)
 | 
				
			||||||
        image.set_alignment(1, 0.5)
 | 
					        image.set_alignment(1, 0.5)
 | 
				
			||||||
        if indent:
 | 
					        if indent:
 | 
				
			||||||
            self.table.attach(spacer, 1, 2, self.current_row,
 | 
					            self.table.attach(spacer, 1, self.current_row, 1, 1)
 | 
				
			||||||
                    self.current_row + 1, 0, 0, 0, 0)
 | 
					        self.table.attach(image, 2, self.current_row, 1, 1)
 | 
				
			||||||
        self.table.attach(image, 2, 3, self.current_row,
 | 
					 | 
				
			||||||
                self.current_row + 1, Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL, 2, 0)
 | 
					 | 
				
			||||||
        status_label = Gtk.Label()
 | 
					        status_label = Gtk.Label()
 | 
				
			||||||
        status_label.set_markup(str_status)
 | 
					        status_label.set_markup(str_status)
 | 
				
			||||||
        status_label.set_alignment(0, 0)
 | 
					        status_label.set_alignment(0, 0)
 | 
				
			||||||
        status_label.set_line_wrap(True)
 | 
					        status_label.set_line_wrap(True)
 | 
				
			||||||
        self.table.attach(status_label, 3, 4, self.current_row,
 | 
					        self.table.attach(status_label, 3, self.current_row, 1, 1)
 | 
				
			||||||
                self.current_row + 1, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, 0, 0, 0)
 | 
					 | 
				
			||||||
        if show_lock:
 | 
					        if show_lock:
 | 
				
			||||||
            lock_image = Gtk.Image()
 | 
					            lock_image = Gtk.Image()
 | 
				
			||||||
            lock_image.set_from_stock(Gtk.STOCK_DIALOG_AUTHENTICATION,
 | 
					            lock_image.set_from_stock(Gtk.STOCK_DIALOG_AUTHENTICATION,
 | 
				
			||||||
                    Gtk.IconSize.MENU)
 | 
					                Gtk.IconSize.MENU)
 | 
				
			||||||
            self.table.attach(lock_image, 4, 5, self.current_row,
 | 
					            self.table.attach(lock_image, 4, self.current_row, 1, 1)
 | 
				
			||||||
                    self.current_row + 1, 0, 0, 0, 0)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
class NotificationAreaTooltip(BaseTooltip, StatusTable):
 | 
					class NotificationAreaTooltip(BaseTooltip, StatusTable):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
| 
						 | 
					@ -322,7 +323,6 @@ class NotificationAreaTooltip(BaseTooltip, StatusTable):
 | 
				
			||||||
        self.create_table()
 | 
					        self.create_table()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        accounts = helpers.get_notification_icon_tooltip_dict()
 | 
					        accounts = helpers.get_notification_icon_tooltip_dict()
 | 
				
			||||||
        self.table.resize(2, 1)
 | 
					 | 
				
			||||||
        self.fill_table_with_accounts(accounts)
 | 
					        self.fill_table_with_accounts(accounts)
 | 
				
			||||||
        self.hbox = Gtk.HBox()
 | 
					        self.hbox = Gtk.HBox()
 | 
				
			||||||
        self.table.set_property('column-spacing', 1)
 | 
					        self.table.set_property('column-spacing', 1)
 | 
				
			||||||
| 
						 | 
					@ -349,9 +349,12 @@ class GCTooltip(BaseTooltip):
 | 
				
			||||||
        if not contact:
 | 
					        if not contact:
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
        self.create_window()
 | 
					        self.create_window()
 | 
				
			||||||
        vcard_table = Gtk.Table(3, 1)
 | 
					        vcard_table = Gtk.Grid()
 | 
				
			||||||
 | 
					        vcard_table.insert_row(0)
 | 
				
			||||||
 | 
					        vcard_table.insert_row(0)
 | 
				
			||||||
 | 
					        vcard_table.insert_row(0)
 | 
				
			||||||
 | 
					        vcard_table.insert_column(0)
 | 
				
			||||||
        vcard_table.set_property('column-spacing', 2)
 | 
					        vcard_table.set_property('column-spacing', 2)
 | 
				
			||||||
        vcard_table.set_homogeneous(False)
 | 
					 | 
				
			||||||
        vcard_current_row = 1
 | 
					        vcard_current_row = 1
 | 
				
			||||||
        properties = []
 | 
					        properties = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -380,17 +383,17 @@ class GCTooltip(BaseTooltip):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if contact.affiliation != 'none':
 | 
					        if contact.affiliation != 'none':
 | 
				
			||||||
            uf_affiliation = helpers.get_uf_affiliation(contact.affiliation)
 | 
					            uf_affiliation = helpers.get_uf_affiliation(contact.affiliation)
 | 
				
			||||||
            uf_affiliation =\
 | 
					            uf_affiliation = \
 | 
				
			||||||
                    _('%(owner_or_admin_or_member)s of this group chat') %\
 | 
					                _('%(owner_or_admin_or_member)s of this group chat') % \
 | 
				
			||||||
                    {'owner_or_admin_or_member': uf_affiliation}
 | 
					                {'owner_or_admin_or_member': uf_affiliation}
 | 
				
			||||||
            uf_affiliation = self.colorize_affiliation(uf_affiliation)
 | 
					            uf_affiliation = self.colorize_affiliation(uf_affiliation)
 | 
				
			||||||
            properties.append((uf_affiliation, None))
 | 
					            properties.append((uf_affiliation, None))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Add avatar
 | 
					        # Add avatar
 | 
				
			||||||
        puny_name = helpers.sanitize_filename(contact.name)
 | 
					        puny_name = helpers.sanitize_filename(contact.name)
 | 
				
			||||||
        puny_room = helpers.sanitize_filename(contact.room_jid)
 | 
					        puny_room = helpers.sanitize_filename(contact.room_jid)
 | 
				
			||||||
        file_ = helpers.get_avatar_path(os.path.join(gajim.AVATAR_PATH, puny_room,
 | 
					        file_ = helpers.get_avatar_path(os.path.join(gajim.AVATAR_PATH,
 | 
				
			||||||
                puny_name))
 | 
					            puny_room, puny_name))
 | 
				
			||||||
        if file_:
 | 
					        if file_:
 | 
				
			||||||
            self.avatar_image.set_from_file(file_)
 | 
					            self.avatar_image.set_from_file(file_)
 | 
				
			||||||
            pix = self.avatar_image.get_pixbuf()
 | 
					            pix = self.avatar_image.get_pixbuf()
 | 
				
			||||||
| 
						 | 
					@ -401,31 +404,27 @@ class GCTooltip(BaseTooltip):
 | 
				
			||||||
        while properties:
 | 
					        while properties:
 | 
				
			||||||
            property_ = properties.pop(0)
 | 
					            property_ = properties.pop(0)
 | 
				
			||||||
            vcard_current_row += 1
 | 
					            vcard_current_row += 1
 | 
				
			||||||
            vertical_fill = Gtk.AttachOptions.FILL
 | 
					 | 
				
			||||||
            if not properties:
 | 
					 | 
				
			||||||
                vertical_fill |= Gtk.AttachOptions.EXPAND
 | 
					 | 
				
			||||||
            label = Gtk.Label()
 | 
					            label = Gtk.Label()
 | 
				
			||||||
 | 
					            if not properties:
 | 
				
			||||||
 | 
					                label.set_vexpand(True)
 | 
				
			||||||
            label.set_alignment(0, 0)
 | 
					            label.set_alignment(0, 0)
 | 
				
			||||||
            if property_[1]:
 | 
					            if property_[1]:
 | 
				
			||||||
                label.set_markup(property_[0])
 | 
					                label.set_markup(property_[0])
 | 
				
			||||||
                vcard_table.attach(label, 1, 2, vcard_current_row,
 | 
					                vcard_table.attach(label, 1, vcard_current_row, 1, 1)
 | 
				
			||||||
                        vcard_current_row + 1, Gtk.AttachOptions.FILL, vertical_fill, 0, 0)
 | 
					 | 
				
			||||||
                label = Gtk.Label()
 | 
					                label = Gtk.Label()
 | 
				
			||||||
 | 
					                if not properties:
 | 
				
			||||||
 | 
					                    label.set_vexpand(True)
 | 
				
			||||||
                label.set_alignment(0, 0)
 | 
					                label.set_alignment(0, 0)
 | 
				
			||||||
                label.set_markup(property_[1])
 | 
					                label.set_markup(property_[1])
 | 
				
			||||||
                label.set_line_wrap(True)
 | 
					                label.set_line_wrap(True)
 | 
				
			||||||
                vcard_table.attach(label, 2, 3, vcard_current_row,
 | 
					                vcard_table.attach(label, 2, vcard_current_row, 1, 1)
 | 
				
			||||||
                        vcard_current_row + 1, Gtk.AttachOptions.EXPAND | Gtk.AttachOptions.FILL,
 | 
					 | 
				
			||||||
                        vertical_fill, 0, 0)
 | 
					 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                label.set_markup(property_[0])
 | 
					                label.set_markup(property_[0])
 | 
				
			||||||
                label.set_line_wrap(True)
 | 
					                label.set_line_wrap(True)
 | 
				
			||||||
                vcard_table.attach(label, 1, 3, vcard_current_row,
 | 
					                vcard_table.attach(label, 1, vcard_current_row, 2, 1)
 | 
				
			||||||
                        vcard_current_row + 1, Gtk.AttachOptions.FILL, vertical_fill, 0)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.avatar_image.set_alignment(0, 0)
 | 
					        self.avatar_image.set_alignment(0, 0)
 | 
				
			||||||
        vcard_table.attach(self.avatar_image, 3, 4, 2, vcard_current_row + 1,
 | 
					        vcard_table.attach(self.avatar_image, 3, 2, 1, vcard_current_row - 1)
 | 
				
			||||||
                Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, 3, 3)
 | 
					 | 
				
			||||||
        gajim.plugin_manager.gui_extension_point('gc_tooltip_populate',
 | 
					        gajim.plugin_manager.gui_extension_point('gc_tooltip_populate',
 | 
				
			||||||
            self, contact, vcard_table)
 | 
					            self, contact, vcard_table)
 | 
				
			||||||
        self.win.add(vcard_table)
 | 
					        self.win.add(vcard_table)
 | 
				
			||||||
| 
						 | 
					@ -451,7 +450,6 @@ class RosterTooltip(NotificationAreaTooltip):
 | 
				
			||||||
        if not contacts or len(contacts) == 0:
 | 
					        if not contacts or len(contacts) == 0:
 | 
				
			||||||
            # Tooltip for merged accounts row
 | 
					            # Tooltip for merged accounts row
 | 
				
			||||||
            accounts = helpers.get_notification_icon_tooltip_dict()
 | 
					            accounts = helpers.get_notification_icon_tooltip_dict()
 | 
				
			||||||
            self.table.resize(2, 1)
 | 
					 | 
				
			||||||
            self.spacer_label = ''
 | 
					            self.spacer_label = ''
 | 
				
			||||||
            self.fill_table_with_accounts(accounts)
 | 
					            self.fill_table_with_accounts(accounts)
 | 
				
			||||||
            self.win.add(self.table)
 | 
					            self.win.add(self.table)
 | 
				
			||||||
| 
						 | 
					@ -459,12 +457,13 @@ class RosterTooltip(NotificationAreaTooltip):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # primary contact
 | 
					        # primary contact
 | 
				
			||||||
        prim_contact = gajim.contacts.get_highest_prio_contact_from_contacts(
 | 
					        prim_contact = gajim.contacts.get_highest_prio_contact_from_contacts(
 | 
				
			||||||
                contacts)
 | 
					            contacts)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        puny_jid = helpers.sanitize_filename(prim_contact.jid)
 | 
					        puny_jid = helpers.sanitize_filename(prim_contact.jid)
 | 
				
			||||||
        table_size = 3
 | 
					        table_size = 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        file_ = helpers.get_avatar_path(os.path.join(gajim.AVATAR_PATH, puny_jid))
 | 
					        file_ = helpers.get_avatar_path(os.path.join(gajim.AVATAR_PATH,
 | 
				
			||||||
 | 
					            puny_jid))
 | 
				
			||||||
        if file_:
 | 
					        if file_:
 | 
				
			||||||
            self.avatar_image.set_from_file(file_)
 | 
					            self.avatar_image.set_from_file(file_)
 | 
				
			||||||
            pix = self.avatar_image.get_pixbuf()
 | 
					            pix = self.avatar_image.get_pixbuf()
 | 
				
			||||||
| 
						 | 
					@ -473,9 +472,11 @@ class RosterTooltip(NotificationAreaTooltip):
 | 
				
			||||||
            table_size = 4
 | 
					            table_size = 4
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            self.avatar_image.set_from_pixbuf(None)
 | 
					            self.avatar_image.set_from_pixbuf(None)
 | 
				
			||||||
        vcard_table = Gtk.Table(1,table_size)
 | 
					        vcard_table = Gtk.Grid()
 | 
				
			||||||
 | 
					        vcard_table.insert_row(0)
 | 
				
			||||||
 | 
					        for i in range(0, table_size):
 | 
				
			||||||
 | 
					            vcard_table.insert_column(0)
 | 
				
			||||||
        vcard_table.set_property('column-spacing', 2)
 | 
					        vcard_table.set_property('column-spacing', 2)
 | 
				
			||||||
        vcard_table.set_homogeneous(False)
 | 
					 | 
				
			||||||
        vcard_current_row = 1
 | 
					        vcard_current_row = 1
 | 
				
			||||||
        properties = []
 | 
					        properties = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -508,11 +509,10 @@ class RosterTooltip(NotificationAreaTooltip):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if num_resources > 1:
 | 
					        if num_resources > 1:
 | 
				
			||||||
            properties.append((_('Status: '),       ' '))
 | 
					            properties.append((_('Status: '),       ' '))
 | 
				
			||||||
            transport = gajim.get_transport_name_from_jid(
 | 
					            transport = gajim.get_transport_name_from_jid(prim_contact.jid)
 | 
				
			||||||
                    prim_contact.jid)
 | 
					 | 
				
			||||||
            if transport:
 | 
					            if transport:
 | 
				
			||||||
                file_path = os.path.join(helpers.get_transport_path(transport),
 | 
					                file_path = os.path.join(helpers.get_transport_path(transport),
 | 
				
			||||||
                        '16x16')
 | 
					                    '16x16')
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                iconset = gajim.config.get('iconset')
 | 
					                iconset = gajim.config.get('iconset')
 | 
				
			||||||
                if not iconset:
 | 
					                if not iconset:
 | 
				
			||||||
| 
						 | 
					@ -525,11 +525,11 @@ class RosterTooltip(NotificationAreaTooltip):
 | 
				
			||||||
            for priority in contact_keys:
 | 
					            for priority in contact_keys:
 | 
				
			||||||
                for acontact in contacts_dict[priority]:
 | 
					                for acontact in contacts_dict[priority]:
 | 
				
			||||||
                    status_line = self.get_status_info(acontact.resource,
 | 
					                    status_line = self.get_status_info(acontact.resource,
 | 
				
			||||||
                            acontact.priority, acontact.show, acontact.status)
 | 
					                        acontact.priority, acontact.show, acontact.status)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    icon_name = self._get_icon_name_for_tooltip(acontact)
 | 
					                    icon_name = self._get_icon_name_for_tooltip(acontact)
 | 
				
			||||||
                    self.add_status_row(file_path, icon_name, status_line,
 | 
					                    self.add_status_row(file_path, icon_name, status_line,
 | 
				
			||||||
                            acontact.last_status_time)
 | 
					                        acontact.last_status_time)
 | 
				
			||||||
            properties.append((self.table,  None))
 | 
					            properties.append((self.table,  None))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        else: # only one resource
 | 
					        else: # only one resource
 | 
				
			||||||
| 
						 | 
					@ -538,13 +538,14 @@ class RosterTooltip(NotificationAreaTooltip):
 | 
				
			||||||
                if not self.check_last_time and self.account:
 | 
					                if not self.check_last_time and self.account:
 | 
				
			||||||
                    if contact.show == 'offline':
 | 
					                    if contact.show == 'offline':
 | 
				
			||||||
                        if not contact.last_status_time:
 | 
					                        if not contact.last_status_time:
 | 
				
			||||||
                            gajim.connections[self.account].request_last_status_time(
 | 
					                            gajim.connections[self.account].\
 | 
				
			||||||
                                    contact.jid, '')
 | 
					                                request_last_status_time(contact.jid, '')
 | 
				
			||||||
                        else:
 | 
					                        else:
 | 
				
			||||||
                            self.check_last_time = contact.last_status_time
 | 
					                            self.check_last_time = contact.last_status_time
 | 
				
			||||||
                    elif contact.resource:
 | 
					                    elif contact.resource:
 | 
				
			||||||
                        gajim.connections[self.account].request_last_status_time(
 | 
					                        gajim.connections[self.account].\
 | 
				
			||||||
                                contact.jid, contact.resource)
 | 
					                            request_last_status_time(
 | 
				
			||||||
 | 
					                            contact.jid, contact.resource)
 | 
				
			||||||
                        if contact.last_activity_time:
 | 
					                        if contact.last_activity_time:
 | 
				
			||||||
                            self.check_last_time = contact.last_activity_time
 | 
					                            self.check_last_time = contact.last_activity_time
 | 
				
			||||||
                else:
 | 
					                else:
 | 
				
			||||||
| 
						 | 
					@ -556,15 +557,15 @@ class RosterTooltip(NotificationAreaTooltip):
 | 
				
			||||||
                    else:
 | 
					                    else:
 | 
				
			||||||
                        text = _(' since %s')
 | 
					                        text = _(' since %s')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    if time.strftime('%j', time.localtime())== \
 | 
					                    if time.strftime('%j', time.localtime()) == \
 | 
				
			||||||
                                    time.strftime('%j', contact.last_status_time):
 | 
					                        time.strftime('%j', contact.last_status_time):
 | 
				
			||||||
                    # it's today, show only the locale hour representation
 | 
					                        # it's today, show only the locale hour representation
 | 
				
			||||||
                        local_time = time.strftime('%X',
 | 
					                        local_time = time.strftime('%X',
 | 
				
			||||||
                                contact.last_status_time)
 | 
					                            contact.last_status_time)
 | 
				
			||||||
                    else:
 | 
					                    else:
 | 
				
			||||||
                        # time.strftime returns locale encoded string
 | 
					                        # time.strftime returns locale encoded string
 | 
				
			||||||
                        local_time = time.strftime('%c',
 | 
					                        local_time = time.strftime('%c',
 | 
				
			||||||
                                contact.last_status_time)
 | 
					                            contact.last_status_time)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    text = text % local_time
 | 
					                    text = text % local_time
 | 
				
			||||||
                    show += text
 | 
					                    show += text
 | 
				
			||||||
| 
						 | 
					@ -580,7 +581,8 @@ class RosterTooltip(NotificationAreaTooltip):
 | 
				
			||||||
                    status = contact.status.strip()
 | 
					                    status = contact.status.strip()
 | 
				
			||||||
                    if status:
 | 
					                    if status:
 | 
				
			||||||
                        # reduce long status
 | 
					                        # reduce long status
 | 
				
			||||||
                        # (no more than 300 chars on line and no more than 5 lines)
 | 
					                        # (no more than 300 chars on line and no more than
 | 
				
			||||||
 | 
					                        # 5 lines)
 | 
				
			||||||
                        # status is wrapped
 | 
					                        # status is wrapped
 | 
				
			||||||
                        status = helpers.reduce_chars_newlines(status, 300, 5)
 | 
					                        status = helpers.reduce_chars_newlines(status, 300, 5)
 | 
				
			||||||
                        # escape markup entities.
 | 
					                        # escape markup entities.
 | 
				
			||||||
| 
						 | 
					@ -641,37 +643,30 @@ class RosterTooltip(NotificationAreaTooltip):
 | 
				
			||||||
        while properties:
 | 
					        while properties:
 | 
				
			||||||
            property_ = properties.pop(0)
 | 
					            property_ = properties.pop(0)
 | 
				
			||||||
            vcard_current_row += 1
 | 
					            vcard_current_row += 1
 | 
				
			||||||
            vertical_fill = Gtk.AttachOptions.FILL
 | 
					 | 
				
			||||||
            if not properties and table_size == 4:
 | 
					 | 
				
			||||||
                vertical_fill |= Gtk.AttachOptions.EXPAND
 | 
					 | 
				
			||||||
            label = Gtk.Label()
 | 
					            label = Gtk.Label()
 | 
				
			||||||
 | 
					            if not properties and table_size == 4:
 | 
				
			||||||
 | 
					                label.set_vexpand(True)
 | 
				
			||||||
            label.set_alignment(0, 0)
 | 
					            label.set_alignment(0, 0)
 | 
				
			||||||
            if property_[1]:
 | 
					            if property_[1]:
 | 
				
			||||||
                label.set_markup(property_[0])
 | 
					                label.set_markup(property_[0])
 | 
				
			||||||
                vcard_table.attach(label, 1, 2, vcard_current_row,
 | 
					                vcard_table.attach(label, 1, vcard_current_row, 1, 1)
 | 
				
			||||||
                    vcard_current_row + 1, Gtk.AttachOptions.FILL,
 | 
					 | 
				
			||||||
                    vertical_fill, 0, 0)
 | 
					 | 
				
			||||||
                label = Gtk.Label()
 | 
					                label = Gtk.Label()
 | 
				
			||||||
 | 
					                if not properties and table_size == 4:
 | 
				
			||||||
 | 
					                    label.set_vexpand(True)
 | 
				
			||||||
                label.set_alignment(0, 0)
 | 
					                label.set_alignment(0, 0)
 | 
				
			||||||
                label.set_markup(property_[1])
 | 
					                label.set_markup(property_[1])
 | 
				
			||||||
                label.set_line_wrap(True)
 | 
					                label.set_line_wrap(True)
 | 
				
			||||||
                vcard_table.attach(label, 2, 3, vcard_current_row,
 | 
					                vcard_table.attach(label, 2, vcard_current_row, 1, 1)
 | 
				
			||||||
                    vcard_current_row + 1, Gtk.AttachOptions.EXPAND | \
 | 
					 | 
				
			||||||
                    Gtk.AttachOptions.FILL, vertical_fill, 0, 0)
 | 
					 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                if isinstance(property_[0], str):
 | 
					                if isinstance(property_[0], str):
 | 
				
			||||||
                    label.set_markup(property_[0])
 | 
					                    label.set_markup(property_[0])
 | 
				
			||||||
                    label.set_line_wrap(True)
 | 
					                    label.set_line_wrap(True)
 | 
				
			||||||
                else:
 | 
					                else:
 | 
				
			||||||
                    label = property_[0]
 | 
					                    label = property_[0]
 | 
				
			||||||
                vcard_table.attach(label, 1, 3, vcard_current_row,
 | 
					                vcard_table.attach(label, 1, vcard_current_row, 2, 1)
 | 
				
			||||||
                    vcard_current_row + 1, Gtk.AttachOptions.FILL,
 | 
					 | 
				
			||||||
                    vertical_fill, 0)
 | 
					 | 
				
			||||||
        self.avatar_image.set_alignment(0, 0)
 | 
					        self.avatar_image.set_alignment(0, 0)
 | 
				
			||||||
        if table_size == 4:
 | 
					        if table_size == 4:
 | 
				
			||||||
            vcard_table.attach(self.avatar_image, 3, 4, 2,
 | 
					            vcard_table.attach(self.avatar_image, 3, 2, 1, vcard_current_row - 1)
 | 
				
			||||||
                vcard_current_row + 1, Gtk.AttachOptions.FILL,
 | 
					 | 
				
			||||||
                Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, 3, 3)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        gajim.plugin_manager.gui_extension_point('roster_tooltip_populate',
 | 
					        gajim.plugin_manager.gui_extension_point('roster_tooltip_populate',
 | 
				
			||||||
            self, contacts, vcard_table)
 | 
					            self, contacts, vcard_table)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue