diff --git a/briar-gtk/briar_gtk/actions/actions.py b/briar-gtk/briar_gtk/actions/actions.py index d2fc7c9349978bf7fea04e1618579e0fe78756b1..4b34067cca0e924b0b133e6d5916386040227972 100644 --- a/briar-gtk/briar_gtk/actions/actions.py +++ b/briar-gtk/briar_gtk/actions/actions.py @@ -5,10 +5,24 @@ from gi.repository import Gio +# pylint: disable=too-few-public-methods class Actions: - # pylint: disable=no-member - def _setup_action(self, key, parameter, callback): + def __init__(self, widget): + self.widget = widget + + def _create_action(self, key, parameter, callback): action = Gio.SimpleAction.new(key, parameter) action.connect("activate", callback) - self.add_action(action) + return action + + def _setup_action(self, key, parameter, callback): + action = self._create_action(key, parameter, callback) + self.actions.add_action(action) + + def _setup_global_action_group(self): + self.actions = self.widget + + def _setup_simple_action_group(self, name): + self.actions = Gio.SimpleActionGroup.new() + self.widget.insert_action_group(name, self.actions) diff --git a/briar-gtk/briar_gtk/actions/application.py b/briar-gtk/briar_gtk/actions/application.py index 93a85eefd36e34f7a5aba5121736f10decebf288..50b9e9615b9fb048e0584754c81167d898fc6aad 100644 --- a/briar-gtk/briar_gtk/actions/application.py +++ b/briar-gtk/briar_gtk/actions/application.py @@ -12,17 +12,18 @@ from briar_gtk.actions.actions import Actions # pylint: disable=too-few-public-methods class ApplicationActions(Actions): - def __init__(self): + def __init__(self, widget): + super().__init__(widget) + self._setup_global_action_group() self._setup_actions() def _setup_actions(self): self._setup_quit_action() - # pylint: disable=no-member def _setup_quit_action(self): self._setup_action("quit", None, self._quit) - self.set_accels_for_action("app.quit", ["<Ctrl>q"]) + self.widget.set_accels_for_action("app.quit", ["<Ctrl>q"]) # pylint: disable=unused-argument def _quit(self, action, parameter): - self.quit() + self.widget.quit() diff --git a/briar-gtk/briar_gtk/actions/window.py b/briar-gtk/briar_gtk/actions/window.py index 66ab67de5eed87a754bfddfc89a58ba240984aa1..1ffc61715d4febe4caa7787b68f04c37126b2f2f 100644 --- a/briar-gtk/briar_gtk/actions/window.py +++ b/briar-gtk/briar_gtk/actions/window.py @@ -16,7 +16,9 @@ from briar_gtk.define import APP # pylint: disable=too-few-public-methods class WindowActions(Actions): - def __init__(self): + def __init__(self, widget): + super().__init__(widget) + self._setup_global_action_group() self._setup_actions() def _setup_actions(self): @@ -41,17 +43,17 @@ class WindowActions(Actions): # pylint: disable=unused-argument def _back_to_sidebar(self, action, parameter): - if isinstance(self.current_container, MainWindowContainer): - self.current_container.show_sidebar() + if isinstance(self.widget.current_container, MainWindowContainer): + self.widget.current_container.show_sidebar() # pylint: disable=unused-argument def _open_about_page(self, action, parameter): - self.current_container.open_about_page() + self.widget.current_container.open_about_page() # pylint: disable=unused-argument def _open_add_contact(self, action, parameter): - self.show_add_contact_container() + self.widget.show_add_contact_container() # pylint: disable=unused-argument def _open_private_chat(self, action, contact_id): - self.current_container.open_private_chat(contact_id.get_int32()) + self.widget.current_container.open_private_chat(contact_id.get_int32()) diff --git a/briar-gtk/briar_gtk/application.py b/briar-gtk/briar_gtk/application.py index 39e80ecfe7c2dbada6607cf83ac4bb1105756c19..1dc959d37a4407c44d6a71f89f42a4249a4c2ef3 100644 --- a/briar-gtk/briar_gtk/application.py +++ b/briar-gtk/briar_gtk/application.py @@ -20,12 +20,12 @@ from briar_gtk.define import APPLICATION_STYLING_PATH, BRIAR_HEADLESS_JAR from briar_gtk.window import Window -class Application(Gtk.Application, ApplicationActions): +class Application(Gtk.Application): def __init__(self): Application._set_application_name(APPLICATION_NAME) super().__init__(application_id=APPLICATION_ID) - ApplicationActions.__init__(self) + ApplicationActions(self) # pylint: disable=arguments-differ def do_startup(self): diff --git a/briar-gtk/briar_gtk/window.py b/briar-gtk/briar_gtk/window.py index f45998ab4fce2ee2c0ba9212e4dcbf68e682f5cf..851664c80c476dd145d67ff3bd50ff7e4000298e 100644 --- a/briar-gtk/briar_gtk/window.py +++ b/briar-gtk/briar_gtk/window.py @@ -11,13 +11,13 @@ from briar_gtk.containers.startup import StartupContainer from briar_gtk.define import APP, APPLICATION_ID, APPLICATION_NAME -class Window(Gtk.ApplicationWindow, WindowActions): +class Window(Gtk.ApplicationWindow): DEFAULT_WINDOW_SIZE = (900, 600) def __init__(self): self._initialize_gtk_application_window() - WindowActions.__init__(self) + WindowActions(self) self._setup_content() def show_main_container(self):