Philipp Hörist pushed to branch master at gajim / gajim
Commits:
-
c890931a
by lovetox at 2021-12-19T12:45:42+01:00
-
245c5f6a
by lovetox at 2021-12-19T12:48:14+01:00
-
9c0fbd21
by lovetox at 2021-12-19T13:09:49+01:00
4 changed files:
Changes:
| ... | ... | @@ -113,12 +113,6 @@ def _unregister_new_handlers(self, con): |
| 113 | 113 |
con.UnregisterHandler(*handler)
|
| 114 | 114 |
self.handlers_registered = False
|
| 115 | 115 |
|
| 116 |
- def dispatch(self, event, data):
|
|
| 117 |
- """
|
|
| 118 |
- Always passes account name as first param
|
|
| 119 |
- """
|
|
| 120 |
- app.ged.raise_event(event, self.name, data)
|
|
| 121 |
- |
|
| 122 | 116 |
def get_module(self, name):
|
| 123 | 117 |
return modules.get(self.name, name)
|
| 124 | 118 |
|
| ... | ... | @@ -22,12 +22,19 @@ |
| 22 | 22 |
:license: GPL
|
| 23 | 23 |
'''
|
| 24 | 24 |
|
| 25 |
+from __future__ import annotations
|
|
| 26 |
+ |
|
| 27 |
+from typing import Any
|
|
| 28 |
+from typing import Callable
|
|
| 29 |
+ |
|
| 25 | 30 |
import logging
|
| 26 | 31 |
import traceback
|
| 27 | 32 |
import inspect
|
| 28 | 33 |
|
| 29 | 34 |
from nbxmpp import NodeProcessed
|
| 30 | 35 |
|
| 36 |
+from gajim.common.nec import NetworkEvent
|
|
| 37 |
+ |
|
| 31 | 38 |
log = logging.getLogger('gajim.c.ged')
|
| 32 | 39 |
|
| 33 | 40 |
PRECORE = 10
|
| ... | ... | @@ -54,12 +61,20 @@ |
| 54 | 61 |
OUT_CORE = 100
|
| 55 | 62 |
OUT_POSTCORE = 110
|
| 56 | 63 |
|
| 64 |
+ |
|
| 65 |
+HandlerFuncT = Callable[[NetworkEvent], Any]
|
|
| 66 |
+ |
|
| 67 |
+ |
|
| 57 | 68 |
class GlobalEventsDispatcher:
|
| 58 | 69 |
|
| 59 | 70 |
def __init__(self):
|
| 60 |
- self.handlers = {}
|
|
| 71 |
+ self.handlers: dict[str, list[tuple[int, HandlerFuncT]]] = {}
|
|
| 72 |
+ |
|
| 73 |
+ def register_event_handler(self,
|
|
| 74 |
+ event_name: str,
|
|
| 75 |
+ priority: int,
|
|
| 76 |
+ handler: HandlerFuncT) -> None:
|
|
| 61 | 77 |
|
| 62 |
- def register_event_handler(self, event_name, priority, handler):
|
|
| 63 | 78 |
if event_name in self.handlers:
|
| 64 | 79 |
handlers_list = self.handlers[event_name]
|
| 65 | 80 |
i = 0
|
| ... | ... | @@ -74,7 +89,11 @@ def register_event_handler(self, event_name, priority, handler): |
| 74 | 89 |
else:
|
| 75 | 90 |
self.handlers[event_name] = [(priority, handler)]
|
| 76 | 91 |
|
| 77 |
- def remove_event_handler(self, event_name, priority, handler):
|
|
| 92 |
+ def remove_event_handler(self,
|
|
| 93 |
+ event_name: str,
|
|
| 94 |
+ priority: int,
|
|
| 95 |
+ handler: HandlerFuncT) -> None:
|
|
| 96 |
+ |
|
| 78 | 97 |
if event_name in self.handlers:
|
| 79 | 98 |
try:
|
| 80 | 99 |
self.handlers[event_name].remove((priority, handler))
|
| ... | ... | @@ -84,7 +103,8 @@ def remove_event_handler(self, event_name, priority, handler): |
| 84 | 103 |
registered as handler of event "%s". Couldn\'t remove.
|
| 85 | 104 |
Error: %s''', handler, priority, event_name, error)
|
| 86 | 105 |
|
| 87 |
- def raise_event(self, event_name, *args, **kwargs):
|
|
| 106 |
+ def raise_event(self, event_name: str, event_obj: NetworkEvent) -> Any:
|
|
| 107 |
+ |
|
| 88 | 108 |
log.debug('Raise event: %s', event_name)
|
| 89 | 109 |
if event_name in self.handlers:
|
| 90 | 110 |
node_processed = False
|
| ... | ... | @@ -98,7 +118,7 @@ def raise_event(self, event_name, *args, **kwargs): |
| 98 | 118 |
handler.__self__)
|
| 99 | 119 |
else:
|
| 100 | 120 |
log.debug('Call handler %s', handler.__name__)
|
| 101 |
- if handler(*args, **kwargs):
|
|
| 121 |
+ if handler(event_obj):
|
|
| 102 | 122 |
return True
|
| 103 | 123 |
except NodeProcessed:
|
| 104 | 124 |
node_processed = True
|
| ... | ... | @@ -182,10 +182,6 @@ def _migrate(self) -> None: |
| 182 | 182 |
]
|
| 183 | 183 |
self._execute_multiple(statements)
|
| 184 | 184 |
|
| 185 |
- @staticmethod
|
|
| 186 |
- def dispatch(event, error):
|
|
| 187 |
- app.ged.raise_event(event, None, str(error))
|
|
| 188 |
- |
|
| 189 | 185 |
@staticmethod
|
| 190 | 186 |
def _get_timeout() -> int:
|
| 191 | 187 |
"""
|
| ... | ... | @@ -11,6 +11,6 @@ |
| 11 | 11 |
],
|
| 12 | 12 |
"typeCheckingMode": "strict",
|
| 13 | 13 |
"include": [
|
| 14 |
- "gajim/gtk/chat_page.py"
|
|
| 14 |
+ "gajim/gtk/chat_filter.py"
|
|
| 15 | 15 |
],
|
| 16 | 16 |
}
|