From 8b0d5907e1f03a370a22ec8c0849ccf3da01ac9b Mon Sep 17 00:00:00 2001 From: Nico Alt <nicoalt@posteo.org> Date: Fri, 27 Mar 2020 12:00:00 +0000 Subject: [PATCH] Move about dialog into own widget class --- briar-gtk/briar_gtk/containers/main_window.py | 39 ++---------- briar-gtk/briar_gtk/widgets/about_dialog.py | 59 +++++++++++++++++++ 2 files changed, 64 insertions(+), 34 deletions(-) create mode 100644 briar-gtk/briar_gtk/widgets/about_dialog.py diff --git a/briar-gtk/briar_gtk/containers/main_window.py b/briar-gtk/briar_gtk/containers/main_window.py index 150a03c..e49c422 100644 --- a/briar-gtk/briar_gtk/containers/main_window.py +++ b/briar-gtk/briar_gtk/containers/main_window.py @@ -5,23 +5,21 @@ # Initial version based on GNOME Fractal # https://gitlab.gnome.org/GNOME/fractal/-/tags/4.2.2 -from gettext import gettext as _ - from gi.repository import GLib from briar_wrapper.models.contacts import Contacts from briar_gtk.container import Container -from briar_gtk.widgets.contact_row import ContactRowWidget from briar_gtk.containers.private_chat import PrivateChatContainer from briar_gtk.define import APP +from briar_gtk.widgets.about_dialog import AboutDialogWidget +from briar_gtk.widgets.contact_row import ContactRowWidget class MainWindowContainer(Container): CONTAINER_UI = "main_window.ui" MENU_UI = "main_menu.ui" - ABOUT_UI = "about_dialog.ui" def __init__(self): super().__init__() @@ -64,37 +62,10 @@ class MainWindowContainer(Container): def chat_entry(self): return self.builder.get_object("chat_entry") - # pylint: disable=line-too-long - def open_about_page(self): - self._add_from_resource(self.ABOUT_UI) - about_dialog = self.builder.get_object("about_dialog") - about_dialog.set_transient_for(APP().window) - - code_use_title = _("Using code by") - code_use_list = [ - "GNOME Fractal https://wiki.gnome.org/Apps/Fractal", - "GNOME Lollypop https://wiki.gnome.org/Apps/Lollypop", - ] - about_dialog.add_credit_section( - code_use_title, code_use_list - ) - - briar_functionality_title = _("Briar functionality by") - briar_functionality_list = [ - "Briar REST API https://code.briarproject.org/briar/briar/tree/master/briar-headless", # noqa - "Briar Python Wrapper https://code.briarproject.org/briar/python-briar-wrapper", # noqa - ] - about_dialog.add_credit_section( - briar_functionality_title, briar_functionality_list - ) - - about_dialog.connect("response", self._on_about_response) - about_dialog.show() - @staticmethod - # pylint: disable=unused-argument - def _on_about_response(dialog, response_id): - dialog.destroy() + def open_about_page(): + about_dialog = AboutDialogWidget() + about_dialog.show() def open_private_chat(self, contact_id): contact_name = self._get_contact_name(contact_id) diff --git a/briar-gtk/briar_gtk/widgets/about_dialog.py b/briar-gtk/briar_gtk/widgets/about_dialog.py new file mode 100644 index 0000000..e51daac --- /dev/null +++ b/briar-gtk/briar_gtk/widgets/about_dialog.py @@ -0,0 +1,59 @@ +# Copyright (c) 2020 Nico Alt +# SPDX-License-Identifier: AGPL-3.0-only +# License-Filename: LICENSE.md + +from gettext import gettext as _ + +from gi.repository import Gtk + +from briar_gtk.define import APP, RESOURCES_DIR + + +# pylint: disable=too-few-public-methods +class AboutDialogWidget(): + + ABOUT_UI = "about_dialog.ui" + + def __init__(self): + self._about_dialog = self._load_from_builder() + self._extend_about_dialog() + + def show(self): + self._about_dialog.show() + + def _load_from_builder(self): + builder = Gtk.Builder() + builder.add_from_resource(RESOURCES_DIR + self.ABOUT_UI) + return builder.get_object("about_dialog") + + def _extend_about_dialog(self): + self._about_dialog.set_transient_for(APP().window) + self._add_code_section() + self._add_briar_section() + self._about_dialog.connect("response", self._on_about_response) + + def _add_code_section(self): + code_use_title = _("Using code by") + code_use_list = [ + "GNOME Fractal https://wiki.gnome.org/Apps/Fractal", + "GNOME Lollypop https://wiki.gnome.org/Apps/Lollypop", + ] + self._about_dialog.add_credit_section( + code_use_title, code_use_list + ) + + # pylint: disable=line-too-long + def _add_briar_section(self): + briar_functionality_title = _("Briar functionality by") + briar_functionality_list = [ + "Briar REST API https://code.briarproject.org/briar/briar/tree/master/briar-headless", # noqa + "Briar Python Wrapper https://code.briarproject.org/briar/python-briar-wrapper", # noqa + ] + self._about_dialog.add_credit_section( + briar_functionality_title, briar_functionality_list + ) + + @staticmethod + # pylint: disable=unused-argument + def _on_about_response(dialog, response_id): + dialog.destroy() -- GitLab