diff --git a/client/ayon_core/pipeline/actions.py b/client/ayon_core/pipeline/actions.py index eae2fc94b5..860fed5e8b 100644 --- a/client/ayon_core/pipeline/actions.py +++ b/client/ayon_core/pipeline/actions.py @@ -3,6 +3,7 @@ import warnings import ayon_api +from ayon_core.settings import get_studio_settings, get_project_settings from ayon_core.pipeline.plugin_discover import ( discover, register_plugin, @@ -40,7 +41,8 @@ class LauncherActionSelection: task_name=None, project_entity=None, folder_entity=None, - task_entity=None + task_entity=None, + project_settings=None, ): self._project_name = project_name self._folder_id = folder_id @@ -53,6 +55,8 @@ class LauncherActionSelection: self._folder_entity = folder_entity self._task_entity = task_entity + self._project_settings = project_settings + def __getitem__(self, key): warnings.warn( ( @@ -255,6 +259,22 @@ class LauncherActionSelection: ) return self._task_entity + def get_project_settings(self): + """Project settings for the selection. + + Returns: + dict[str, Any]: Project settings or studio settings if + project is not selected. + + """ + if self._project_settings is None: + if self._project_name is None: + settings = get_studio_settings() + else: + settings = get_project_settings(self._project_name) + self._project_settings = settings + return self._project_settings + @property def is_project_selected(self): """Return whether a project is selected.