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]