From 312e153a23a56d32547ed384a557d4711ac5e538 Mon Sep 17 00:00:00 2001 From: Nico Alt <nicoalt@posteo.org> Date: Tue, 29 Dec 2020 12:00:00 +0000 Subject: [PATCH] Rename "controller" to "presenter" I think the Model-View-Presenter pattern is better for this than the Model-View-Controller pattern. --- briar-gtk/briar_gtk/actions/window.py | 18 ++++----- briar-gtk/briar_gtk/handlers/__init__.py | 2 +- .../{controllers => presenters}/__init__.py | 2 +- .../main_window.py | 38 +++++++++---------- .../private_chat.py | 14 +++---- .../{controllers => presenters}/sidebar.py | 2 +- briar-gtk/briar_gtk/views/__init__.py | 2 +- briar-gtk/briar_gtk/views/add_contact.py | 2 +- briar-gtk/briar_gtk/views/login.py | 2 +- briar-gtk/briar_gtk/views/private_chat.py | 2 +- briar-gtk/briar_gtk/views/registration.py | 2 +- briar-gtk/briar_gtk/views/sidebar.py | 2 +- briar-gtk/briar_gtk/window.py | 10 ++--- 13 files changed, 49 insertions(+), 49 deletions(-) rename briar-gtk/briar_gtk/{controllers => presenters}/__init__.py (55%) rename briar-gtk/briar_gtk/{controllers => presenters}/main_window.py (62%) rename briar-gtk/briar_gtk/{controllers => presenters}/private_chat.py (95%) rename briar-gtk/briar_gtk/{controllers => presenters}/sidebar.py (98%) diff --git a/briar-gtk/briar_gtk/actions/window.py b/briar-gtk/briar_gtk/actions/window.py index b18d7c5..58e071d 100644 --- a/briar-gtk/briar_gtk/actions/window.py +++ b/briar-gtk/briar_gtk/actions/window.py @@ -10,7 +10,7 @@ from gi.repository import GLib from briar_gtk.actions.actions import Actions from briar_gtk.actions.prefixes import WINDOW_PREFIX -from briar_gtk.controllers.main_window import MainWindowController +from briar_gtk.presenters.main_window import MainWindowPresenter from briar_gtk.define import APP @@ -64,25 +64,25 @@ class WindowActions(Actions): # pylint: disable=unused-argument def _back_to_sidebar(self, action, parameter): - if isinstance(self.widget.main_window_controller, - MainWindowController): - self.widget.main_window_controller.close_private_chat() + if isinstance(self.widget.main_window_presenter, + MainWindowPresenter): + self.widget.main_window_presenter.close_private_chat() # pylint: disable=unused-argument def _delete_all_messages_dialog(self, action, parameter): - self.widget.main_window_controller.open_delete_all_messages_dialog() + self.widget.main_window_presenter.open_delete_all_messages_dialog() # pylint: disable=unused-argument def _delete_contact_dialog(self, action, parameter): - self.widget.main_window_controller.open_delete_contact_dialog() + self.widget.main_window_presenter.open_delete_contact_dialog() # pylint: disable=unused-argument def _change_alias_contact_dialog(self, action, parameter): - self.widget.main_window_controller.open_change_contact_alias_dialog() + self.widget.main_window_presenter.open_change_contact_alias_dialog() # pylint: disable=unused-argument def _open_about_page(self, action, parameter): - self.widget.main_window_controller.open_about_page() + self.widget.main_window_presenter.open_about_page() # pylint: disable=unused-argument def _open_add_contact(self, action, parameter): @@ -94,5 +94,5 @@ class WindowActions(Actions): # pylint: disable=unused-argument def _open_private_chat(self, action, contact_id): - self.widget.main_window_controller.open_private_chat( + self.widget.main_window_presenter.open_private_chat( contact_id.get_int32()) diff --git a/briar-gtk/briar_gtk/handlers/__init__.py b/briar-gtk/briar_gtk/handlers/__init__.py index 57c1513..09832ee 100644 --- a/briar-gtk/briar_gtk/handlers/__init__.py +++ b/briar-gtk/briar_gtk/handlers/__init__.py @@ -2,6 +2,6 @@ # SPDX-License-Identifier: AGPL-3.0-only # License-Filename: LICENSE.md """ -Similar to controllers, handlers react to input, but they aren't attached +Similar to presenters, handlers react to input, but they aren't attached to a view """ diff --git a/briar-gtk/briar_gtk/controllers/__init__.py b/briar-gtk/briar_gtk/presenters/__init__.py similarity index 55% rename from briar-gtk/briar_gtk/controllers/__init__.py rename to briar-gtk/briar_gtk/presenters/__init__.py index fb84ada..d793e06 100644 --- a/briar-gtk/briar_gtk/controllers/__init__.py +++ b/briar-gtk/briar_gtk/presenters/__init__.py @@ -2,5 +2,5 @@ # SPDX-License-Identifier: AGPL-3.0-only # License-Filename: LICENSE.md """ -Controllers reacting to user input in Briar GTK +Presenters (of MVP pattern) reacting to user input and model/data updates in Briar GTK """ diff --git a/briar-gtk/briar_gtk/controllers/main_window.py b/briar-gtk/briar_gtk/presenters/main_window.py similarity index 62% rename from briar-gtk/briar_gtk/controllers/main_window.py rename to briar-gtk/briar_gtk/presenters/main_window.py index 186e436..cb81cd1 100644 --- a/briar-gtk/briar_gtk/controllers/main_window.py +++ b/briar-gtk/briar_gtk/presenters/main_window.py @@ -3,15 +3,15 @@ # License-Filename: LICENSE.md from briar_gtk.handlers.notification import NotificationHandler -from briar_gtk.controllers.private_chat import PrivateChatController -from briar_gtk.controllers.sidebar import SidebarController +from briar_gtk.presenters.private_chat import PrivateChatPresenter +from briar_gtk.presenters.sidebar import SidebarPresenter from briar_gtk.define import APP from briar_gtk.views.private_chat import PrivateChatView from briar_gtk.views.sidebar import SidebarView from briar_gtk.widgets.about_dialog import AboutDialogWidget -class MainWindowController: +class MainWindowPresenter: def __init__(self, main_window_view, builder): self._main_window_view = main_window_view @@ -27,41 +27,41 @@ class MainWindowController: about_dialog.show() def open_change_contact_alias_dialog(self): - if self._private_chat_controller is not None: - self._private_chat_controller.open_change_contact_alias_dialog() + if self._private_chat_presenter is not None: + self._private_chat_presenter.open_change_contact_alias_dialog() def open_delete_all_messages_dialog(self): - if self._private_chat_controller is not None: - self._private_chat_controller.open_delete_all_messages_dialog() + if self._private_chat_presenter is not None: + self._private_chat_presenter.open_delete_all_messages_dialog() def open_delete_contact_dialog(self): - if self._private_chat_controller is not None: - self._private_chat_controller.open_delete_contact_dialog() + if self._private_chat_presenter is not None: + self._private_chat_presenter.open_delete_contact_dialog() def close_private_chat(self): - if self._private_chat_controller is not None: - self._private_chat_controller.close_private_chat() - self._private_chat_controller = None + if self._private_chat_presenter is not None: + self._private_chat_presenter.close_private_chat() + self._private_chat_presenter = None def open_private_chat(self, contact_id): private_chat_view = PrivateChatView(self._builder) - self._private_chat_controller = PrivateChatController( - contact_id, private_chat_view, self._sidebar_controller, + self._private_chat_presenter = PrivateChatPresenter( + contact_id, private_chat_view, self._sidebar_presenter, self._builder, APP().api) def _setup_children(self): self._setup_notification_handler() - self._setup_sidebar_controller() - self._private_chat_controller = None + self._setup_sidebar_presenter() + self._private_chat_presenter = None contact_name_label = self._builder.get_object("contact_name") contact_name_label.set_text("") def _setup_notification_handler(self): self._notification_handler = NotificationHandler() - def _setup_sidebar_controller(self): + def _setup_sidebar_presenter(self): sidebar_view = SidebarView(self._builder) - self._sidebar_controller = SidebarController( + self._sidebar_presenter = SidebarPresenter( sidebar_view, APP().api) def _setup_destroy_listener(self): @@ -72,7 +72,7 @@ class MainWindowController: self._disconnect_signals() def _disconnect_signals(self): - self._sidebar_controller.disconnect_signals() + self._sidebar_presenter.disconnect_signals() self._notification_handler.disconnect_signals() for signal in self._signals: APP().api.socket_listener.disconnect(signal) diff --git a/briar-gtk/briar_gtk/controllers/private_chat.py b/briar-gtk/briar_gtk/presenters/private_chat.py similarity index 95% rename from briar-gtk/briar_gtk/controllers/private_chat.py rename to briar-gtk/briar_gtk/presenters/private_chat.py index 185a8b8..6af1ca5 100644 --- a/briar-gtk/briar_gtk/controllers/private_chat.py +++ b/briar-gtk/briar_gtk/presenters/private_chat.py @@ -13,13 +13,13 @@ from briar_gtk.widgets.edit_dialog import EditDialog # pylint: disable=too-many-arguments -class PrivateChatController: +class PrivateChatPresenter: _current_contact_id = 0 - def __init__(self, contact_id, private_chat_view, sidebar_controller, + def __init__(self, contact_id, private_chat_view, sidebar_presenter, builder, api): self._private_chat_view = private_chat_view - self._sidebar_controller = sidebar_controller + self._sidebar_presenter = sidebar_presenter self._builder = builder self._api = api self.open_private_chat(contact_id) @@ -67,7 +67,7 @@ class PrivateChatController: Contacts(APP().api).set_alias(self._current_contact_id, user_alias) contact_name_label = self._builder.get_object("contact_name") contact_name_label.set_text(user_alias) - self._sidebar_controller.refresh_contacts() + self._sidebar_presenter.refresh_contacts() # TODO: Update name in chat history def open_delete_all_messages_dialog(self): @@ -128,14 +128,14 @@ class PrivateChatController: if response_id == Gtk.ResponseType.OK: private_chat = PrivateChat(APP().api, self._current_contact_id) private_chat.delete_all_messages() - self._sidebar_controller.refresh_contacts() + self._sidebar_presenter.refresh_contacts() self.close_private_chat() widget.destroy() def _delete_contact(self, widget, response_id): if response_id == Gtk.ResponseType.OK: Contacts(APP().api).delete(self._current_contact_id) - self._sidebar_controller.refresh_contacts() + self._sidebar_presenter.refresh_contacts() self.close_private_chat() widget.destroy() @@ -195,4 +195,4 @@ class PrivateChatController: if len(widget.get_text()) == 0: return self._private_chat_view.send_message(widget) - self._sidebar_controller.refresh_contacts() + self._sidebar_presenter.refresh_contacts() diff --git a/briar-gtk/briar_gtk/controllers/sidebar.py b/briar-gtk/briar_gtk/presenters/sidebar.py similarity index 98% rename from briar-gtk/briar_gtk/controllers/sidebar.py rename to briar-gtk/briar_gtk/presenters/sidebar.py index 98198bd..dfbecf6 100644 --- a/briar-gtk/briar_gtk/controllers/sidebar.py +++ b/briar-gtk/briar_gtk/presenters/sidebar.py @@ -7,7 +7,7 @@ from gi.repository import GLib from briar_wrapper.models.contacts import Contacts -class SidebarController: +class SidebarPresenter: def __init__(self, sidebar_view, api): self._sidebar_view = sidebar_view diff --git a/briar-gtk/briar_gtk/views/__init__.py b/briar-gtk/briar_gtk/views/__init__.py index 687b248..485f798 100644 --- a/briar-gtk/briar_gtk/views/__init__.py +++ b/briar-gtk/briar_gtk/views/__init__.py @@ -2,5 +2,5 @@ # SPDX-License-Identifier: AGPL-3.0-only # License-Filename: LICENSE.md """ -Views displaying data in Briar GTK +Views (of MVP pattern) displaying data in Briar GTK """ diff --git a/briar-gtk/briar_gtk/views/add_contact.py b/briar-gtk/briar_gtk/views/add_contact.py index 76adb3a..5e6cfb4 100644 --- a/briar-gtk/briar_gtk/views/add_contact.py +++ b/briar-gtk/briar_gtk/views/add_contact.py @@ -14,7 +14,7 @@ from briar_gtk.define import APP, RESOURCES_DIR class AddContactView(Gtk.Overlay): - # TODO: Move more logic into AddContactController + # TODO: Move more logic into AddContactPresenter ADD_CONTACT_UI = "add_contact.ui" STACK_NAME = "add_contact_flow_stack" diff --git a/briar-gtk/briar_gtk/views/login.py b/briar-gtk/briar_gtk/views/login.py index 06e3dc7..0812716 100644 --- a/briar-gtk/briar_gtk/views/login.py +++ b/briar-gtk/briar_gtk/views/login.py @@ -13,7 +13,7 @@ from briar_gtk.define import APP, RESOURCES_DIR class LoginView(Gtk.Overlay): - # TODO: Move more logic into LoginController + # TODO: Move more logic into LoginPresenter LOGIN_UI = "login.ui" STACK_NAME = "login_flow_stack" diff --git a/briar-gtk/briar_gtk/views/private_chat.py b/briar-gtk/briar_gtk/views/private_chat.py index a3071ad..27ec4ae 100644 --- a/briar-gtk/briar_gtk/views/private_chat.py +++ b/briar-gtk/briar_gtk/views/private_chat.py @@ -18,7 +18,7 @@ from briar_gtk.widgets.private_message import PrivateMessageWidget # pylint: disable=too-many-instance-attributes class PrivateChatView(Gtk.Overlay): - # TODO: Move more logic into PrivateChatController + # TODO: Move more logic into PrivateChatPresenter CONTAINER_UI = "private_chat.ui" diff --git a/briar-gtk/briar_gtk/views/registration.py b/briar-gtk/briar_gtk/views/registration.py index 4ef9246..fc075da 100644 --- a/briar-gtk/briar_gtk/views/registration.py +++ b/briar-gtk/briar_gtk/views/registration.py @@ -13,7 +13,7 @@ from briar_gtk.define import APP, RESOURCES_DIR class RegistrationView(Gtk.Overlay): - # TODO: Move more logic into RegistrationController + # TODO: Move more logic into RegistrationPresenter REGISTRATION_UI = "registration.ui" STACK_NAME = "registration_flow_stack" diff --git a/briar-gtk/briar_gtk/views/sidebar.py b/briar-gtk/briar_gtk/views/sidebar.py index a3146a0..710a7fa 100644 --- a/briar-gtk/briar_gtk/views/sidebar.py +++ b/briar-gtk/briar_gtk/views/sidebar.py @@ -7,7 +7,7 @@ from briar_gtk.widgets.contact_row import ContactRowWidget class SidebarView: - # TODO: Move more logic into SidebarController + # TODO: Move more logic into SidebarPresenter def __init__(self, builder): self._builder = builder diff --git a/briar-gtk/briar_gtk/window.py b/briar-gtk/briar_gtk/window.py index 3358249..cd4fa4d 100644 --- a/briar-gtk/briar_gtk/window.py +++ b/briar-gtk/briar_gtk/window.py @@ -9,7 +9,7 @@ from gi.repository import Gio, Gtk from briar_gtk.actions.window import WindowActions from briar_gtk.views.add_contact import AddContactView -from briar_gtk.controllers.main_window import MainWindowController +from briar_gtk.presenters.main_window import MainWindowPresenter from briar_gtk.views.main_window import MainWindowView from briar_gtk.views.startup import StartupView from briar_gtk.define import APP, APPLICATION_ID, APPLICATION_NAME @@ -22,7 +22,7 @@ class Window(Gtk.ApplicationWindow): DEFAULT_WINDOW_SIZE = (900, 600) def __init__(self): - self.main_window_controller = None + self.main_window_presenter = None self._initialize_gtk_application_window() WindowActions(self) self._setup_content() @@ -34,8 +34,8 @@ class Window(Gtk.ApplicationWindow): def show_add_contact_view(self): self._current_view.destroy() - if self.main_window_controller is not None: - self.main_window_controller = None + if self.main_window_presenter is not None: + self.main_window_presenter = None self._setup_add_contact_view() # pylint: disable=arguments-differ,unused-argument @@ -107,7 +107,7 @@ class Window(Gtk.ApplicationWindow): def _setup_main_window_view(self): builder = self._setup_builder() main_window_view = MainWindowView(builder, self) - self.main_window_controller = MainWindowController( + self.main_window_presenter = MainWindowPresenter( main_window_view, builder) self._setup_view(main_window_view) builder.get_object("chat_menu_button").hide() # TODO: Make default -- GitLab