Philipp Hörist pushed to branch master at gajim / gajim
Commits: 8beaab56 by lovetox at 2022-01-23T21:04:19+01:00 Application: Add type annotations
- - - - - edde11c6 by lovetox at 2022-01-23T21:09:45+01:00 Gajim: Refactor installing signal handlers
- This makes type annotations easier
- - - - - 4f76a5b1 by lovetox at 2022-01-23T21:10:40+01:00 Update pyrightconfig.json
- - - - -
3 changed files:
- gajim/gajim.py - gajim/gtk/application.py - pyrightconfig.json
Changes:
===================================== gajim/gajim.py ===================================== @@ -118,7 +118,17 @@ def _init_gtk() -> None: def _run_app() -> None: from gajim.gui.application import GajimApplication application = GajimApplication() - _install_signal_handlers(application) + + def sigint_cb(num: int, stack: Optional[FrameType]) -> None: + print(' SIGINT/SIGTERM received') + application.quit() + + # ^C exits the application normally + signal.signal(signal.SIGINT, sigint_cb) + signal.signal(signal.SIGTERM, sigint_cb) + if sys.platform != 'win32': + signal.signal(signal.SIGPIPE, signal.SIG_DFL) + application.run(sys.argv)
@@ -140,17 +150,6 @@ def _set_proc_title() -> None: libc.setproctitle('gajim')
-def _install_signal_handlers(application): - def sigint_cb(num: int, stack: Optional[FrameType]): - print(' SIGINT/SIGTERM received') - application.quit() - # ^C exits the application normally - signal.signal(signal.SIGINT, sigint_cb) - signal.signal(signal.SIGTERM, sigint_cb) - if sys.platform != 'win32': - signal.signal(signal.SIGPIPE, signal.SIG_DFL) - - def main() -> None: if sys.platform != 'win32': if os.geteuid() == 0:
===================================== gajim/gtk/application.py ===================================== @@ -56,6 +56,7 @@ import gajim from gajim.common import app from gajim.common import configpaths +from gajim.common import events from gajim.common import ged from gajim.common import idle from gajim.common import logging_helpers @@ -63,7 +64,6 @@ from gajim.common.const import GAJIM_FAQ_URI from gajim.common.const import GAJIM_WIKI_URI from gajim.common.dbus import music_track -from gajim.common.events import ApplicationEvent from gajim.common.exceptions import GajimGeneralException from gajim.common.helpers import load_json from gajim.common.helpers import open_uri @@ -78,6 +78,7 @@ from gajim.gui.dialogs import ConfirmationDialog from gajim.gui.dialogs import ShortcutsWindow from gajim.gui.discovery import ServiceDiscoveryWindow +from gajim.gui.start_chat import StartChatDialog from gajim.gui.util import get_app_window from gajim.gui.util import load_user_iconsets from gajim.gui.util import open_window @@ -515,7 +516,7 @@ def _load_shortcuts(self) -> None: for action, accels in shortcuts.items(): self.set_accels_for_action(action, accels)
- def _on_feature_discovered(self, event: ApplicationEvent) -> None: + def _on_feature_discovered(self, event: events.FeatureDiscovered) -> None: if event.feature == Namespace.MAM_2: action = '%s-archive' % event.account self.set_action_state(action, True) @@ -767,8 +768,8 @@ def _on_ipython_action(_action: Gio.SimpleAction, """ Show/hide the ipython window """ - win = app.ipython_window - if win and win.window.is_visible(): + win = cast(Gtk.Window, app.ipython_window) + if win and win.is_visible(): win.present() else: app.interface.create_ipython_window() @@ -829,7 +830,7 @@ def _on_forget_groupchat_action(_action: Gio.SimpleAction, params: structs.ForgetGroupchatActionParams ) -> None:
- window = get_app_window('StartChatDialog') + window = cast(StartChatDialog, get_app_window('StartChatDialog')) window.remove_row(params.account, str(params.jid))
client = app.get_client(params.account)
===================================== pyrightconfig.json ===================================== @@ -3,6 +3,7 @@ "pythonVersion": "3.9", "typeCheckingMode": "strict", "include": [ + "gajim/gajim.py", "gajim/common/application.py", "gajim/common/cert_store.py", "gajim/common/configpaths.py", @@ -19,10 +20,12 @@ "gajim/common/regex.py", "gajim/common/sound.py", "gajim/common/storage/", + "gajim/gtk/about.py", "gajim/gtk/account_page.py", "gajim/gtk/account_side_bar.py", "gajim/gtk/app_page.py", "gajim/gtk/app_side_bar.py", + "gajim/gtk/application.py", "gajim/gtk/blocking.py", "gajim/gtk/bookmarks.py", "gajim/gtk/builder.py",
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/compare/28847ed8bc9d177d160fc8abc498f67e...