Daniel Brötzmann pushed to branch gtk4 at gajim / gajim


Commits:
ccacc310 by wurstsalat at 2024-10-20T15:28:14+02:00
refactor: ChatListRow: Use SignalManager

- - - - -


2 changed files:

- gajim/data/gui/chat_list_row.ui
- gajim/gtk/chat_list_row.py


Changes:

=====================================
gajim/data/gui/chat_list_row.ui
=====================================
@@ -147,7 +147,6 @@
                 <property name="receives-default">1</property>
                 <property name="valign">center</property>
                 <property name="margin-end">6</property>
-                <signal name="clicked" handler="_on_close_button_clicked" 
swapped="no"/>
                 <child>
                   <object class="GtkImage">
                     <property name="icon-name">window-close-symbolic</property>


=====================================
gajim/gtk/chat_list_row.py
=====================================
@@ -42,9 +42,10 @@
 from gajim.gtk.builder import get_builder
 from gajim.gtk.menus import get_chat_list_row_menu
 from gajim.gtk.util import GajimPopover
+from gajim.gtk.util import SignalManager
 
 
-class ChatListRow(Gtk.ListBoxRow):
+class ChatListRow(Gtk.ListBoxRow, SignalManager):
 
     __gsignals__ = {
         'unread-changed': (
@@ -67,6 +68,7 @@ def __init__(self,
                  ) -> None:
 
         Gtk.ListBoxRow.__init__(self)
+        SignalManager.__init__(self)
 
         self.account = account
         self.jid = jid
@@ -96,21 +98,22 @@ def __init__(self,
 
         self.get_style_context().add_class('chatlist-row')
 
-        self._ui = get_builder('chat_list_row.ui', self)
+        self._ui = get_builder('chat_list_row.ui')
         self.set_child(self._ui.mainbox)
 
+        self._connect(self._ui.close_button, 'clicked', 
self._on_close_button_clicked)
+
         self._menu_popover = GajimPopover(None)
         self._ui.mainbox.append(self._menu_popover)
 
-        self.connect('state-flags-changed', self._on_state_flags_changed)
-        self.connect('destroy', self._on_destroy)
+        self._connect(self, 'state-flags-changed', 
self._on_state_flags_changed)
 
         gesture_middle_click = Gtk.GestureClick(button=Gdk.BUTTON_MIDDLE)
-        gesture_middle_click.connect('pressed', self._on_row_clicked)
+        self._connect(gesture_middle_click, 'pressed', self._on_row_clicked)
         self.add_controller(gesture_middle_click)
 
         gesture_secondary_click = Gtk.GestureClick(button=Gdk.BUTTON_SECONDARY)
-        gesture_secondary_click.connect('pressed', self._on_row_clicked)
+        self._connect(gesture_secondary_click, 'pressed', self._on_row_clicked)
         self.add_controller(gesture_secondary_click)
 
         app.settings.connect_signal(
@@ -124,9 +127,9 @@ def __init__(self,
         self._drag_hotspot_y: float = 0
 
         drag_source = Gtk.DragSource(actions=Gdk.DragAction.MOVE)
-        drag_source.connect('prepare', self._on_prepare)
-        drag_source.connect('drag-begin', self._on_drag_begin)
-        drag_source.connect('drag-end', self._on_drag_end)
+        self._connect(drag_source, 'prepare', self._on_prepare)
+        self._connect(drag_source, 'drag-begin', self._on_drag_begin)
+        self._connect(drag_source, 'drag-end', self._on_drag_end)
         self.add_controller(drag_source)
 
         if self.type == 'groupchat':
@@ -443,7 +446,9 @@ def _on_state_flags_changed(self,
             self._ui.revealer.set_reveal_child(False)
             self._ui.close_button.hide()
 
-    def _on_destroy(self, _row: ChatListRow) -> None:
+    def do_unroot(self) -> None:
+        Gtk.ListBoxRow.do_unroot(self)
+        self._disconnect_all()
         app.settings.disconnect_signals(self)
         self.contact.disconnect_all_from_obj(self)
         if isinstance(self.contact, GroupchatParticipant):
@@ -463,6 +468,7 @@ def _on_row_clicked(
         x: float,
         y: float,
     ) -> int:
+
         if gesture_click.get_current_button() == Gdk.BUTTON_MIDDLE:
             app.window.activate_action(
                 'win.remove-chat',



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/ccacc310d0efd482290b14354b0deff507697d25

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/ccacc310d0efd482290b14354b0deff507697d25
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to