From f18f207f03b74a822ab1ab0d79f18e8a940ea7eb Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 26 Nov 2021 16:27:53 +0100 Subject: [PATCH 1/3] Fix - provider icons are pulled from a folder --- openpype/tools/utils/lib.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/openpype/tools/utils/lib.py b/openpype/tools/utils/lib.py index 4626e35a93..d38cb33029 100644 --- a/openpype/tools/utils/lib.py +++ b/openpype/tools/utils/lib.py @@ -477,6 +477,7 @@ def create_qthread(func, *args, **kwargs): def get_repre_icons(): + """Returns a dict {'provider_name': QIcon}""" try: from openpype_modules import sync_server except Exception: @@ -488,9 +489,17 @@ def get_repre_icons(): "providers", "resources" ) icons = {} - # TODO get from sync module - for provider in ['studio', 'local_drive', 'gdrive']: - pix_url = "{}/{}.png".format(resource_path, provider) + if not os.path.exists(resource_path): + print("No icons for Site Sync found") + return {} + + for file_name in os.listdir(resource_path): + if file_name and not file_name.endswith("png"): + continue + + provider, _ = os.path.splitext(file_name) + + pix_url = "{}{}{}".format(resource_path, os.path.sep, file_name) icons[provider] = QtGui.QIcon(pix_url) return icons From 216601a015ceda9def3d64eaefc803ea8280fa4b Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 26 Nov 2021 17:52:59 +0100 Subject: [PATCH 2/3] Added basic documentation for new custom provider --- openpype/modules/default_modules/sync_server/README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/openpype/modules/default_modules/sync_server/README.md b/openpype/modules/default_modules/sync_server/README.md index d7d7f3718b..e283b3bb66 100644 --- a/openpype/modules/default_modules/sync_server/README.md +++ b/openpype/modules/default_modules/sync_server/README.md @@ -56,6 +56,13 @@ representation.files.sites: `db.getCollection('MY_PROJECT').update({type:"representation"}, {$set:{"files.$[].sites.MY_CONFIGURED_REMOTE_SITE" : {}}}, true, true)` +I want to create new custom provider: +----------------------------------- +- take `providers\abstract_provider.py` as a base class +- create provider class in `providers` with a name according to a provider (eg. 'gdrive.py' for gdrive provider etc.) +- upload provider icon in png format, 24x24, into `providers\resources`, its name must follow name of provider (eg. 'gdrive.png' for gdrive provider) +- register new provider into `providers.lib.py`, test how many files could be manipulated at same time, check provider's API for limits + Needed configuration: -------------------- `pype/settings/defaults/project_settings/global.json`.`sync_server`: From 06f23af879d6272123494cb040d57be469a4c786 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 26 Nov 2021 17:54:45 +0100 Subject: [PATCH 3/3] Better path creation --- openpype/tools/utils/lib.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/tools/utils/lib.py b/openpype/tools/utils/lib.py index d38cb33029..8246d606b7 100644 --- a/openpype/tools/utils/lib.py +++ b/openpype/tools/utils/lib.py @@ -499,7 +499,7 @@ def get_repre_icons(): provider, _ = os.path.splitext(file_name) - pix_url = "{}{}{}".format(resource_path, os.path.sep, file_name) + pix_url = os.path.join(resource_path, file_name) icons[provider] = QtGui.QIcon(pix_url) return icons