From 48a792c58c16d0e846fd015f3ea5fdf491647a7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vil=C3=A9m=20Duha?= <vilda.novak@gmail.com> Date: Tue, 22 Dec 2020 16:29:18 +0100 Subject: [PATCH] BlenderKit: improve category upload drawing. Now this works automatically from the categories as specified on the server --- blenderkit/__init__.py | 7 ++++++- blenderkit/categories.py | 11 +++++++---- blenderkit/ui_panels.py | 6 +++--- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/blenderkit/__init__.py b/blenderkit/__init__.py index d69f3e0dd..ceca7207e 100644 --- a/blenderkit/__init__.py +++ b/blenderkit/__init__.py @@ -682,9 +682,14 @@ class BlenderKitCommonUploadProps(object): ) subcategory: EnumProperty( name="Subcategory", - description="main category to put into", + description="Subcategory to put into", items=categories.get_subcategory_enums ) + subcategory1: EnumProperty( + name="Subcategory lvl2", + description="Subcategory to put into", + items=categories.get_subcategory1_enums + ) class BlenderKitRatingProps(PropertyGroup): diff --git a/blenderkit/categories.py b/blenderkit/categories.py index 43d6f2ba9..abdfbe48a 100644 --- a/blenderkit/categories.py +++ b/blenderkit/categories.py @@ -112,8 +112,6 @@ def get_upload_asset_type(self): return asset_type - - def get_category_enums(self, context): wm = bpy.context.window_manager props = bpy.context.scene.blenderkitUI @@ -123,6 +121,8 @@ def get_category_enums(self, context): items = [] for c in asset_categories['children']: items.append((c['slug'], c['name'], c['description'])) + if len(items) == 0: + items.append(('NONE', '', 'no categories on this level defined')) return items def get_subcategory_enums(self, context): @@ -134,7 +134,9 @@ def get_subcategory_enums(self, context): asset_categories = get_category(wm['bkit_categories'], cat_path=(asset_type, self.category,)) for c in asset_categories['children']: items.append((c['slug'], c['name'], c['description'])) - + if len(items) == 0: + items.append(('NONE', '', 'no categories on this level defined')) + # print('subcategory', items) return items def get_subcategory1_enums(self, context): @@ -146,7 +148,8 @@ def get_subcategory1_enums(self, context): asset_categories = get_category(wm['bkit_categories'], cat_path=(asset_type, self.category, self.subcategory, )) for c in asset_categories['children']: items.append((c['slug'], c['name'], c['description'])) - + if len(items) == 0: + items.append(('NONE', '', 'no categories on this level defined')) return items def copy_categories(): diff --git a/blenderkit/ui_panels.py b/blenderkit/ui_panels.py index 9d5777a1a..c4ed5e40e 100644 --- a/blenderkit/ui_panels.py +++ b/blenderkit/ui_panels.py @@ -110,7 +110,6 @@ def draw_upload_common(layout, props, asset_type, context): if props.upload_state != '': utils.label_multiline(layout, text=props.upload_state, width=context.region.width) if props.uploading: - print(bpy.context.scene.name) op = layout.operator('object.kill_bg_process', text="", icon='CANCEL') op.process_source = asset_type op.process_type = 'UPLOAD' @@ -142,10 +141,11 @@ def draw_upload_common(layout, props, asset_type, context): # row = layout.row() # row.enabled = False # row.prop(props, 'id', icon='FILE_TICK') - layout.prop(props, 'category') - if asset_type == 'MODEL' and props.subcategory != '': # by now block this for other asset types. + if props.category != 'NONE' and props.subcategory != 'NONE': layout.prop(props, 'subcategory') + if props.subcategory != 'NONE' and props.subcategory1 != 'NONE': + layout.prop(props, 'subcategory1') layout.prop(props, 'is_private', expand=True) if props.is_private == 'PUBLIC': -- GitLab