From 7a32fa0b054b49a41e65713f3827abea0fddb63e Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Jan 2023 00:41:11 +0100 Subject: [PATCH 1/4] set enabled attribute of LoaderPlugin --- openpype/pipeline/load/plugins.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openpype/pipeline/load/plugins.py b/openpype/pipeline/load/plugins.py index 8cba8d82179..b5e55834db6 100644 --- a/openpype/pipeline/load/plugins.py +++ b/openpype/pipeline/load/plugins.py @@ -30,6 +30,7 @@ class LoaderPlugin(list): representations = list() order = 0 is_multiple_contexts_compatible = False + enabled = True options = [] @@ -73,11 +74,10 @@ def apply_settings(cls, project_settings, system_settings): print(">>> We have preset for {}".format(plugin_name)) for option, value in plugin_settings.items(): if option == "enabled" and value is False: - setattr(cls, "active", False) print(" - is disabled by preset") else: - setattr(cls, option, value) print(" - setting `{}`: `{}`".format(option, value)) + setattr(cls, option, value) @classmethod def get_representations(cls): From 5f4cad685176e34160a833cb63486c08148e013e Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Jan 2023 00:41:50 +0100 Subject: [PATCH 2/4] check if loader is enabled in loader tool --- openpype/tools/loader/widgets.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openpype/tools/loader/widgets.py b/openpype/tools/loader/widgets.py index 826c7110da8..b1619ca02b1 100644 --- a/openpype/tools/loader/widgets.py +++ b/openpype/tools/loader/widgets.py @@ -451,6 +451,8 @@ def on_context_menu(self, point): repre_loaders = [] subset_loaders = [] for loader in available_loaders: + if not loader.enabled: + continue # Skip if its a SubsetLoader. if issubclass(loader, SubsetLoaderPlugin): subset_loaders.append(loader) @@ -1352,6 +1354,8 @@ def on_context_menu(self, point): filtered_loaders = [] for loader in available_loaders: + if not loader.enabled: + continue # Skip subset loaders if issubclass(loader, SubsetLoaderPlugin): continue From 7d01590b6476786914cbcc973b4df329b6ed70d4 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Jan 2023 11:38:09 +0100 Subject: [PATCH 3/4] creators can be disabled too --- openpype/pipeline/create/legacy_create.py | 4 ++-- openpype/pipeline/workfile/workfile_template_builder.py | 2 ++ openpype/tools/creator/model.py | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/openpype/pipeline/create/legacy_create.py b/openpype/pipeline/create/legacy_create.py index 82e5de7a8f0..7380e9f9c7b 100644 --- a/openpype/pipeline/create/legacy_create.py +++ b/openpype/pipeline/create/legacy_create.py @@ -20,6 +20,7 @@ class LegacyCreator(object): family = None defaults = None maintain_selection = True + enabled = True dynamic_subset_keys = [] @@ -76,11 +77,10 @@ def apply_settings(cls, project_settings, system_settings): print(">>> We have preset for {}".format(plugin_name)) for option, value in plugin_settings.items(): if option == "enabled" and value is False: - setattr(cls, "active", False) print(" - is disabled by preset") else: - setattr(cls, option, value) print(" - setting `{}`: `{}`".format(option, value)) + setattr(cls, option, value) def process(self): pass diff --git a/openpype/pipeline/workfile/workfile_template_builder.py b/openpype/pipeline/workfile/workfile_template_builder.py index e3821bb4d7a..fe9d5dd21b6 100644 --- a/openpype/pipeline/workfile/workfile_template_builder.py +++ b/openpype/pipeline/workfile/workfile_template_builder.py @@ -239,6 +239,8 @@ def get_creators_by_name(self): if self._creators_by_name is None: self._creators_by_name = {} for creator in discover_legacy_creator_plugins(): + if not creator.enabled: + continue creator_name = creator.__name__ if creator_name in self._creators_by_name: raise KeyError( diff --git a/openpype/tools/creator/model.py b/openpype/tools/creator/model.py index 307993103bf..e0570f2bd33 100644 --- a/openpype/tools/creator/model.py +++ b/openpype/tools/creator/model.py @@ -23,6 +23,8 @@ def reset(self): items = [] creators = discover_legacy_creator_plugins() for creator in creators: + if not creator.enabled: + continue item_id = str(uuid.uuid4()) self._creators_by_id[item_id] = creator From 72ff721bd2896261060a967c71569b5a93f79612 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Jan 2023 11:41:03 +0100 Subject: [PATCH 4/4] skip disabled loaders --- openpype/pipeline/workfile/build_workfile.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openpype/pipeline/workfile/build_workfile.py b/openpype/pipeline/workfile/build_workfile.py index 87b9df158f7..26b17fa1515 100644 --- a/openpype/pipeline/workfile/build_workfile.py +++ b/openpype/pipeline/workfile/build_workfile.py @@ -120,6 +120,8 @@ def build_workfile(self): # Prepare available loaders loaders_by_name = {} for loader in discover_loader_plugins(): + if not loader.enabled: + continue loader_name = loader.__name__ if loader_name in loaders_by_name: raise KeyError(