From 8c2f4876c9a2fb3a65cc498508796e08d06d5495 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 11 Dec 2020 12:52:48 +0100 Subject: [PATCH] added settings module --- pype/modules/__init__.py | 4 ++- pype/modules/base.py | 3 +- pype/modules/settings_module.py | 53 +++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 pype/modules/settings_module.py diff --git a/pype/modules/__init__.py b/pype/modules/__init__.py index 11157f24b1..00303aafc6 100644 --- a/pype/modules/__init__.py +++ b/pype/modules/__init__.py @@ -7,7 +7,7 @@ from .base import ( ModulesManager, TrayModulesManager ) - +from .settings_module import SettingsModule from .rest_api import ( RestApiModule, IRestApi @@ -44,6 +44,8 @@ __all__ = ( "ModulesManager", "TrayModulesManager", + "SettingsModule", + "UserModule", "IUserModule", diff --git a/pype/modules/base.py b/pype/modules/base.py index 72d0eb4503..0176384a59 100644 --- a/pype/modules/base.py +++ b/pype/modules/base.py @@ -390,7 +390,8 @@ class TrayModulesManager(ModulesManager): "Avalon", "Clockify", "Standalone Publish", - "Logging" + "Logging", + "settings" ) def __init__(self): diff --git a/pype/modules/settings_module.py b/pype/modules/settings_module.py new file mode 100644 index 0000000000..dbc28786a0 --- /dev/null +++ b/pype/modules/settings_module.py @@ -0,0 +1,53 @@ +from . import PypeModule, ITrayModule + + +class SettingsModule(PypeModule, ITrayModule): + name = "settings" + + def initialize(self, _modules_settings): + # This module is always enabled + self.enabled = True + + # User role + # TODO should be changeable + self.user_role = "manager" + + # Tray attributes + self.settings_window = None + + def connect_with_modules(self, *_a, **_kw): + return + + def create_settings_window(self): + if self.settings_window: + return + from pype.tools.settings import MainWidget + self.settings_window = MainWidget(self.user_role) + + def show_settings_window(self): + if not self.settings_window: + raise AssertionError("Window is not initialized.") + + self.settings_window.show() + + # Pull window to the front. + self.settings_window.raise_() + self.settings_window.activateWindow() + + def tray_init(self): + self.create_settings_window() + + def tray_menu(self, tray_menu): + """Add **change credentials** option to tray menu.""" + from Qt import QtWidgets + + # Actions + action = QtWidgets.QAction("Settings", tray_menu) + action.triggered.connect(self.show_settings_window) + tray_menu.addAction(action) + + def tray_start(self): + return + + def tray_exit(self): + return