From fbca056a90490efa8090b219c22fae41d42d6a17 Mon Sep 17 00:00:00 2001 From: RicardoMusch <54025297+RicardoMusch@users.noreply.github.com> Date: Tue, 1 Nov 2022 13:20:04 +0000 Subject: [PATCH 1/4] Register engine command from settings instead of hardcoded. --- app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.py b/app.py index 6fc38598..13288741 100644 --- a/app.py +++ b/app.py @@ -34,7 +34,7 @@ def init_app(self): # Register a menu entry on the ShotGrid menu so that users can launch the panel. self.engine.register_command( - "Scene Breakdown...", + self.get_setting("display_name"), self.create_panel, {"type": "panel", "short_name": "breakdown"}, ) From 7bbfeb77de3639899b422ae76d9b170530c7560e Mon Sep 17 00:00:00 2001 From: RicardoMusch <54025297+RicardoMusch@users.noreply.github.com> Date: Mon, 6 Feb 2023 12:19:38 +0000 Subject: [PATCH 2/4] Added setting to chose between panel or dialog engine registration. --- app.py | 33 ++++++++++++++++++++++++--------- info.yml | 5 +++++ 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/app.py b/app.py index 13288741..a705943d 100644 --- a/app.py +++ b/app.py @@ -29,15 +29,30 @@ def init_app(self): self._current_dialog = None self._current_panel = None - # Register the app as a panel. - self._unique_panel_id = self.engine.register_panel(self.create_panel) - - # Register a menu entry on the ShotGrid menu so that users can launch the panel. - self.engine.register_command( - self.get_setting("display_name"), - self.create_panel, - {"type": "panel", "short_name": "breakdown"}, - ) + if self.get_setting("app_display_mode") == "panel": + + # Register the app as a panel. + self._unique_panel_id = self.engine.register_panel(self.create_panel) + + # Register a menu entry on the ShotGrid menu so that users can launch the panel. + self.engine.register_command( + self.get_setting("display_name"), + self.create_panel, + {"type": "panel", "short_name": "breakdown"}, + ) + + elif self.get_setting("app_display_mode") == "dialog": + + # Register a menu entry on the ShotGrid menu so that users can launch the dialog. + self.engine.register_command( + self.get_setting("display_name"), + lambda: self.create_dialog(), + {"type": "dialog", "short_name": "breakdown"}, + ) + + else: + self.logger.error("An invalid app_display_mode was configured. " + "`{}` is not a valid app_display_mode setting!".format(self.get_setting("app_display_mode"))) def show_dialog(self): """Show the Scene Breakdown 2 App dialog.""" diff --git a/info.yml b/info.yml index 8f5a7845..8fce079c 100644 --- a/info.yml +++ b/info.yml @@ -10,6 +10,11 @@ configuration: + app_display_mode: + type: str + default_value: panel + description: Specify if the app should launch as `panel` or `dialog`. Not all engines support panels. + hook_scene_operations: type: hook default_value: "{self}/{engine_name}_scene_operations.py" From b9e3d8b80c45d436c4364215ac22a259738f9d08 Mon Sep 17 00:00:00 2001 From: RicardoMusch <54025297+RicardoMusch@users.noreply.github.com> Date: Mon, 6 Feb 2023 14:37:59 +0000 Subject: [PATCH 3/4] Added setting to chose between panel or dialog engine registration. --- app.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app.py b/app.py index a705943d..98473ed1 100644 --- a/app.py +++ b/app.py @@ -36,23 +36,24 @@ def init_app(self): # Register a menu entry on the ShotGrid menu so that users can launch the panel. self.engine.register_command( - self.get_setting("display_name"), + "Scene Breakdown...", self.create_panel, {"type": "panel", "short_name": "breakdown"}, ) elif self.get_setting("app_display_mode") == "dialog": + # Register the app as a dialog # Register a menu entry on the ShotGrid menu so that users can launch the dialog. self.engine.register_command( - self.get_setting("display_name"), + "Scene Breakdown...", lambda: self.create_dialog(), {"type": "dialog", "short_name": "breakdown"}, ) else: - self.logger.error("An invalid app_display_mode was configured. " - "`{}` is not a valid app_display_mode setting!".format(self.get_setting("app_display_mode"))) + self.logger.error("An invalid app_display_mode was configured. `{}` is not a valid app_display_mode " + "setting!".format(self.get_setting("app_display_mode"))) def show_dialog(self): """Show the Scene Breakdown 2 App dialog.""" From df1f966abecdc2e9fa884b04283a12f864e5d803 Mon Sep 17 00:00:00 2001 From: Ricardo Musch <54025297+RicardoMusch@users.noreply.github.com> Date: Tue, 7 Feb 2023 00:20:59 +0000 Subject: [PATCH 4/4] Update app.py --- app.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app.py b/app.py index 98473ed1..85f175a1 100644 --- a/app.py +++ b/app.py @@ -52,8 +52,10 @@ def init_app(self): ) else: - self.logger.error("An invalid app_display_mode was configured. `{}` is not a valid app_display_mode " - "setting!".format(self.get_setting("app_display_mode"))) + self.logger.error( + "An invalid app_display_mode was configured. `{}` is not a valid app_display_mode " + "setting!".format(self.get_setting("app_display_mode")) + ) def show_dialog(self): """Show the Scene Breakdown 2 App dialog."""