Philipp Hörist pushed to branch master at gajim / gajim

Commits:

9 changed files:

Changes:

  • gajim/common/events.py
    ... ... @@ -44,20 +44,17 @@
    44 44
         from gajim.plugins.pluginmanager import PluginManifest
    
    45 45
     
    
    46 46
     
    
    47
    -MainEventT = Union['PresenceReceived',
    
    48
    -                   'MessageSent',
    
    49
    -                   'MessageReceived',
    
    50
    -                   'MamMessageReceived',
    
    51
    -                   'GcMessageReceived',
    
    52
    -                   'MessageUpdated',
    
    53
    -                   'ReceiptReceived',
    
    54
    -                   'DisplayedReceived',
    
    55
    -                   'MessageError',
    
    56
    -                   'MucDiscoUpdate',
    
    57
    -                   'JingleConnectedReceived',
    
    58
    -                   'JingleDisconnectedReceived',
    
    59
    -                   'JingleErrorReceived',
    
    60
    -                   'FileRequestSent']
    
    47
    +ChatListEventT = Union[
    
    48
    +    'MessageReceived',
    
    49
    +    'MamMessageReceived',
    
    50
    +    'GcMessageReceived',
    
    51
    +    'MessageUpdated',
    
    52
    +    'MessageModerated',
    
    53
    +    'PresenceReceived',
    
    54
    +    'MessageSent',
    
    55
    +    'JingleRequestReceived',
    
    56
    +    'FileRequestReceivedEvent'
    
    57
    +]
    
    61 58
     
    
    62 59
     
    
    63 60
     @dataclass
    

  • gajim/gtk/app_page.py
    ... ... @@ -21,7 +21,6 @@
    21 21
     from gi.repository import Gtk
    
    22 22
     
    
    23 23
     from gajim.common import app
    
    24
    -from gajim.common.events import ApplicationEvent
    
    25 24
     from gajim.common.helpers import open_uri
    
    26 25
     from gajim.common.i18n import _
    
    27 26
     from gajim.plugins.pluginmanager import PluginManifest
    
    ... ... @@ -91,9 +90,6 @@ def remove_app_message(self) -> None:
    91 90
             self._unread_count -= 1
    
    92 91
             self.emit('unread-count-changed', self._unread_count)
    
    93 92
     
    
    94
    -    def process_event(self, event: ApplicationEvent) -> None:
    
    95
    -        pass
    
    96
    -
    
    97 93
     
    
    98 94
     class AppMessageListBox(Gtk.ListBox):
    
    99 95
         def __init__(self) -> None:
    

  • gajim/gtk/chat_list.py
    ... ... @@ -366,7 +366,7 @@ def update_time(self) -> None:
    366 366
             for _key, row in self._chats.items():
    
    367 367
                 row.update_time()
    
    368 368
     
    
    369
    -    def process_event(self, event: events.ApplicationEvent) -> None:
    
    369
    +    def process_event(self, event: events.ChatListEventT) -> None:
    
    370 370
             if isinstance(event, (events.MessageReceived,
    
    371 371
                                   events.MamMessageReceived,
    
    372 372
                                   events.GcMessageReceived)):
    
    ... ... @@ -381,7 +381,7 @@ def process_event(self, event: events.ApplicationEvent) -> None:
    381 381
                 self._on_message_sent(event)
    
    382 382
             elif isinstance(event, events.JingleRequestReceived):
    
    383 383
                 self._on_jingle_request_received(event)
    
    384
    -        elif isinstance(event, events.FileRequestReceivedEvent):
    
    384
    +        elif isinstance(event, events.FileRequestReceivedEvent):  # pyright: ignore [reportUnnecessaryIsInstance] # noqa
    
    385 385
                 self._on_file_request_received(event)
    
    386 386
             else:
    
    387 387
                 log.warning('Unhandled Event: %s', event.name)
    

  • gajim/gtk/chat_list_stack.py
    ... ... @@ -27,6 +27,8 @@
    27 27
     
    
    28 28
     from gajim.common import app
    
    29 29
     from gajim.common import events
    
    30
    +from gajim.common import ged
    
    31
    +from gajim.common.ged import EventHelper
    
    30 32
     from gajim.common.i18n import _
    
    31 33
     
    
    32 34
     from . import structs
    
    ... ... @@ -37,20 +39,7 @@
    37 39
     from .dialogs import ConfirmationCheckDialog
    
    38 40
     
    
    39 41
     
    
    40
    -HANDLED_EVENTS = (
    
    41
    -    events.MessageReceived,
    
    42
    -    events.MamMessageReceived,
    
    43
    -    events.GcMessageReceived,
    
    44
    -    events.MessageUpdated,
    
    45
    -    events.MessageModerated,
    
    46
    -    events.PresenceReceived,
    
    47
    -    events.MessageSent,
    
    48
    -    events.JingleRequestReceived,
    
    49
    -    events.FileRequestReceivedEvent
    
    50
    -)
    
    51
    -
    
    52
    -
    
    53
    -class ChatListStack(Gtk.Stack):
    
    42
    +class ChatListStack(Gtk.Stack, EventHelper):
    
    54 43
     
    
    55 44
         __gsignals__ = {
    
    56 45
             'unread-count-changed': (GObject.SignalFlags.RUN_LAST,
    
    ... ... @@ -72,6 +61,7 @@ def __init__(self,
    72 61
                      search_entry: Gtk.SearchEntry
    
    73 62
                      ) -> None:
    
    74 63
             Gtk.Stack.__init__(self)
    
    64
    +        EventHelper.__init__(self)
    
    75 65
             self.set_hexpand(True)
    
    76 66
             self.set_vexpand(True)
    
    77 67
             self.set_vhomogeneous(False)
    
    ... ... @@ -89,6 +79,18 @@ def __init__(self,
    89 79
             self._add_actions()
    
    90 80
             self.show_all()
    
    91 81
     
    
    82
    +        self.register_events([
    
    83
    +            ('message-received', ged.GUI2, self._on_event),
    
    84
    +            ('mam-message-received', ged.GUI2, self._on_event),
    
    85
    +            ('gc-message-received', ged.GUI2, self._on_event),
    
    86
    +            ('message-updated', ged.GUI2, self._on_event),
    
    87
    +            ('message-moderated', ged.GUI2, self._on_event),
    
    88
    +            ('presence-received', ged.GUI2, self._on_event),
    
    89
    +            ('message-sent', ged.GUI2, self._on_event),
    
    90
    +            ('file-request-received', ged.GUI2, self._on_event),
    
    91
    +            ('jingle-request-received', ged.GUI2, self._on_event),
    
    92
    +        ])
    
    93
    +
    
    92 94
         def _add_actions(self) -> None:
    
    93 95
             actions = [
    
    94 96
                 ('toggle-chat-pinned', 'a{sv}', self._toggle_chat_pinned),
    
    ... ... @@ -332,10 +334,7 @@ def mark_as_read(self, account: str, jid: JID) -> None:
    332 334
             for chat_list in self._chat_lists.values():
    
    333 335
                 chat_list.mark_as_read(account, jid)
    
    334 336
     
    
    335
    -    def process_event(self, event: events.ApplicationEvent) -> None:
    
    336
    -        if not isinstance(event, HANDLED_EVENTS):
    
    337
    -            return
    
    338
    -
    
    337
    +    def _on_event(self, event: events.ChatListEventT) -> None:
    
    339 338
             jid = JID.from_string(event.jid)
    
    340 339
     
    
    341 340
             chat_list = self.find_chat(event.account, jid)
    

  • gajim/gtk/chat_page.py
    ... ... @@ -26,7 +26,6 @@
    26 26
     from nbxmpp import JID
    
    27 27
     
    
    28 28
     from gajim.common import app
    
    29
    -from gajim.common.events import ApplicationEvent
    
    30 29
     
    
    31 30
     from .builder import get_builder
    
    32 31
     from .chat_filter import ChatFilter
    
    ... ... @@ -182,10 +181,6 @@ def _on_chat_list_changed(self,
    182 181
             self._ui.workspace_label.set_text(name)
    
    183 182
             self._ui.search_entry.set_text('')
    
    184 183
     
    
    185
    -    def process_event(self, event: ApplicationEvent):
    
    186
    -        self._chat_stack.process_event(event)
    
    187
    -        self._chat_list_stack.process_event(event)
    
    188
    -
    
    189 184
         def add_chat_list(self, workspace_id: str) -> None:
    
    190 185
             self._chat_list_stack.add_chat_list(workspace_id)
    
    191 186
     
    

  • gajim/gtk/chat_stack.py
    ... ... @@ -14,7 +14,6 @@
    14 14
     
    
    15 15
     from __future__ import annotations
    
    16 16
     
    
    17
    -from typing import Any
    
    18 17
     from typing import Optional
    
    19 18
     
    
    20 19
     import sys
    
    ... ... @@ -139,6 +138,11 @@ def __init__(self):
    139 138
             self._connect_actions()
    
    140 139
             self.show_all()
    
    141 140
     
    
    141
    +        self.register_events([
    
    142
    +            ('message-received', 85, self._on_message_received),
    
    143
    +            ('muc-disco-update', 85, self._on_muc_disco_update),
    
    144
    +        ])
    
    145
    +
    
    142 146
         def _get_current_contact(self) -> ChatContactT:
    
    143 147
             assert self._current_contact is not None
    
    144 148
             return self._current_contact
    
    ... ... @@ -305,14 +309,13 @@ def _on_user_affiliation_changed(self,
    305 309
             self._update_group_chat_actions(contact)
    
    306 310
     
    
    307 311
         def _on_muc_disco_update(self, event: events.MucDiscoUpdate) -> None:
    
    308
    -        if self._current_contact is None:
    
    312
    +        if not isinstance(self._current_contact, GroupchatContact):
    
    309 313
                 return
    
    310 314
     
    
    311 315
             if event.jid != self._current_contact.jid:
    
    312 316
                 return
    
    313 317
     
    
    314
    -        if isinstance(self._current_contact, GroupchatContact):
    
    315
    -            self._update_group_chat_actions(self._current_contact)
    
    318
    +        self._update_group_chat_actions(self._current_contact)
    
    316 319
     
    
    317 320
         def _on_message_received(self, event: events.MessageReceived) -> None:
    
    318 321
             if not event.msgtxt or event.properties.is_sent_carbon:
    
    ... ... @@ -725,15 +728,6 @@ def clear(self) -> None:
    725 728
             self._message_action_box.clear()
    
    726 729
             self._chat_control.clear()
    
    727 730
     
    
    728
    -    def process_event(self, event: Any) -> None:
    
    729
    -        if isinstance(event, events.MucDiscoUpdate):
    
    730
    -            self._on_muc_disco_update(event)
    
    731
    -
    
    732
    -        if isinstance(event, events.MessageReceived):
    
    733
    -            self._on_message_received(event)
    
    734
    -
    
    735
    -        self._message_action_box.process_event(event)
    
    736
    -
    
    737 731
     
    
    738 732
     class ChatPlaceholderBox(Gtk.Box):
    
    739 733
         def __init__(self):
    

  • gajim/gtk/main.py
    ... ... @@ -109,23 +109,11 @@ def __init__(self) -> None:
    109 109
             self._ui.connect_signals(self)
    
    110 110
     
    
    111 111
             self.register_events([
    
    112
    -            ('presence-received', ged.GUI1, self._on_event),
    
    113
    -            ('message-sent', ged.GUI1, self._on_event),
    
    114
    -            ('message-received', ged.CORE, self._on_message_received),
    
    115
    -            ('mam-message-received', ged.CORE, self._on_event),
    
    116
    -            ('gc-message-received', ged.CORE, self._on_event),
    
    117
    -            ('message-updated', ged.CORE, self._on_event),
    
    118
    -            ('message-moderated', ged.CORE, self._on_event),
    
    119
    -            ('receipt-received', ged.GUI1, self._on_event),
    
    120
    -            ('displayed-received', ged.GUI1, self._on_event),
    
    112
    +            ('message-received', ged.GUI1, self._on_message_received),
    
    121 113
                 ('read-state-sync', ged.GUI1, self._on_read_state_sync),
    
    122
    -            ('message-error', ged.GUI1, self._on_event),
    
    123
    -            ('muc-disco-update', ged.GUI1, self._on_event),
    
    124 114
                 ('call-started', ged.GUI1, self._on_call_started),
    
    125
    -            ('call-stopped', ged.GUI1, self._on_event),
    
    126 115
                 ('jingle-request-received', ged.GUI1, self._on_jingle_request),
    
    127 116
                 ('file-request-received', ged.GUI1, self._on_file_request),
    
    128
    -            ('file-request-sent', ged.GUI1, self._on_event),
    
    129 117
                 ('account-enabled', ged.GUI1, self._on_account_enabled),
    
    130 118
                 ('account-disabled', ged.GUI1, self._on_account_disabled),
    
    131 119
                 ('allow-gajim-update-check', ged.GUI1, self._on_allow_gajim_update),
    
    ... ... @@ -907,12 +895,6 @@ def _load_chats(self) -> None:
    907 895
     
    
    908 896
             self._set_startup_finished()
    
    909 897
     
    
    910
    -    def _on_event(self, event: events.MainEventT) -> None:
    
    911
    -        if not self.chat_exists(event.account, event.jid):
    
    912
    -            return
    
    913
    -
    
    914
    -        self._main_stack.process_event(event)
    
    915
    -
    
    916 898
         def _on_message_received(self, event: events.MessageReceived) -> None:
    
    917 899
             if not self.chat_exists(event.account, event.jid):
    
    918 900
                 if not event.properties.body:
    
    ... ... @@ -927,8 +909,6 @@ def _on_message_received(self, event: events.MessageReceived) -> None:
    927 909
                     jid = event.properties.jid.new_as_bare()
    
    928 910
                     self.add_chat(event.account, jid, 'contact')
    
    929 911
     
    
    930
    -        self._main_stack.process_event(event)
    
    931
    -
    
    932 912
         def _on_read_state_sync(self, event: events.ReadStateSync) -> None:
    
    933 913
             if event.is_muc_pm:
    
    934 914
                 jid = JID.from_string(event.jid.bare)
    
    ... ... @@ -960,14 +940,10 @@ def _on_jingle_request(self, event: events.JingleRequestReceived) -> None:
    960 940
                     self.add_chat(event.account, event.jid, 'contact')
    
    961 941
                     break
    
    962 942
     
    
    963
    -        self._main_stack.process_event(event)
    
    964
    -
    
    965 943
         def _on_file_request(self, event: events.FileRequestReceivedEvent) -> None:
    
    966 944
             if not self.chat_exists(event.account, event.jid):
    
    967 945
                 self.add_chat(event.account, event.jid, 'contact')
    
    968 946
     
    
    969
    -        self._main_stack.process_event(event)
    
    970
    -
    
    971 947
         def quit(self) -> None:
    
    972 948
             save_main_window_position()
    
    973 949
             window_width, window_height = self.get_size()
    

  • gajim/gtk/main_stack.py
    ... ... @@ -15,14 +15,12 @@
    15 15
     from __future__ import annotations
    
    16 16
     
    
    17 17
     from typing import Union
    
    18
    -from typing import cast
    
    19 18
     
    
    20 19
     from nbxmpp.protocol import JID
    
    21 20
     
    
    22 21
     from gi.repository import Gtk
    
    23 22
     
    
    24 23
     from gajim.common import app
    
    25
    -from gajim.common.events import ApplicationEvent
    
    26 24
     
    
    27 25
     from .app_page import AppPage
    
    28 26
     from .chat_list import ChatList
    
    ... ... @@ -88,18 +86,6 @@ def get_chat_page(self) -> ChatPage:
    88 86
             assert isinstance(chat_page, ChatPage)
    
    89 87
             return chat_page
    
    90 88
     
    
    91
    -    def process_event(self, event: ApplicationEvent) -> None:
    
    92
    -        empty_box = self.get_child_by_name('empty')
    
    93
    -        pages = cast(list[PageT], self.get_children())
    
    94
    -        for page in pages:
    
    95
    -            if page is empty_box:
    
    96
    -                continue
    
    97
    -
    
    98
    -            if isinstance(page, AccountPage):
    
    99
    -                continue
    
    100
    -
    
    101
    -            page.process_event(event)
    
    102
    -
    
    103 89
         def _on_chat_selected(self,
    
    104 90
                               _chat_list: ChatList,
    
    105 91
                               _workspace_id: str,
    

  • gajim/gtk/message_actions_box.py
    ... ... @@ -37,6 +37,7 @@
    37 37
     from gajim.common import app
    
    38 38
     from gajim.common import events
    
    39 39
     from gajim.common import i18n
    
    40
    +from gajim.common import ged
    
    40 41
     from gajim.common.i18n import _
    
    41 42
     from gajim.common.client import Client
    
    42 43
     from gajim.common.const import SimpleClientState
    
    ... ... @@ -65,9 +66,10 @@
    65 66
     log = logging.getLogger('gajim.gui.messageactionsbox')
    
    66 67
     
    
    67 68
     
    
    68
    -class MessageActionsBox(Gtk.Grid):
    
    69
    +class MessageActionsBox(Gtk.Grid, ged.EventHelper):
    
    69 70
         def __init__(self) -> None:
    
    70 71
             Gtk.Grid.__init__(self)
    
    72
    +        ged.EventHelper.__init__(self)
    
    71 73
     
    
    72 74
             self._client: Optional[Client] = None
    
    73 75
             self._contact: Optional[ChatContactT] = None
    
    ... ... @@ -120,6 +122,10 @@ def __init__(self) -> None:
    120 122
     
    
    121 123
             self._connect_actions()
    
    122 124
     
    
    125
    +        self.register_events([
    
    126
    +            ('message-sent', ged.GUI2, self._on_message_sent)
    
    127
    +        ])
    
    128
    +
    
    123 129
         def get_current_contact(self) -> ChatContactT:
    
    124 130
             assert self._contact is not None
    
    125 131
             return self._contact
    
    ... ... @@ -689,7 +695,3 @@ def _on_message_sent(self, event: events.MessageSent) -> None:
    689 695
     
    
    690 696
             self.msg_textview.get_style_context().remove_class(
    
    691 697
                 'gajim-msg-correcting')
    692
    -
    
    693
    -    def process_event(self, event: events.ApplicationEvent) -> None:
    
    694
    -        if isinstance(event, events.MessageSent):
    
    695
    -            self._on_message_sent(event)