diff --git a/blenderkit/__init__.py b/blenderkit/__init__.py index 7b22279d1e93bffd0191c4aa60c93c18313ccc50..7bd5fe8da46909432e056bec57862f5ae13619f8 100644 --- a/blenderkit/__init__.py +++ b/blenderkit/__init__.py @@ -569,6 +569,9 @@ class BlenderKitCommonSearchProps(object): unrated_only: BoolProperty(name="Unrated only", description="Show only unrated models", default=False, update=search.search_update) + quality_limit: IntProperty(name="Quality limit", + description = 'Only show assets with a higher quality', + default=0, min=0, max=10, update=search.search_update) def name_update(self, context): diff --git a/blenderkit/ratings_utils.py b/blenderkit/ratings_utils.py index 37c1c971b0b3fe607f2074a65bb2ac18f27aa59a..67a791394734f143466e32b8489d9cd33a00583c 100644 --- a/blenderkit/ratings_utils.py +++ b/blenderkit/ratings_utils.py @@ -70,8 +70,8 @@ def send_rating_to_thread_work_hours(url, ratings, headers): def store_rating_local_empty(asset_id): context = bpy.context - context.window_manager['asset ratings'] = context.window_manager.get('asset ratings', {}) - context.window_manager['asset ratings'][asset_id] = context.window_manager['asset ratings'].get(asset_id, {}) + ar = context.window_manager['asset ratings'] + ar[asset_id] = ar.get(asset_id, {}) def store_rating_local(asset_id, type='quality', value=0): diff --git a/blenderkit/search.py b/blenderkit/search.py index b58dd28db9c13c570820eb529f0e62d35f00b996..59f9f8388bfb4e051c4e3f379b91eb4875275b4c 100644 --- a/blenderkit/search.py +++ b/blenderkit/search.py @@ -1081,6 +1081,9 @@ def build_query_common(query, props): query_common["files_size_gte"] = props.search_file_size_min * 1024 * 1024 query_common["files_size_lte"] = props.search_file_size_max * 1024 * 1024 + if props.quality_limit > 0: + query["quality_gte"] = props.quality_limit + query.update(query_common) @@ -1106,6 +1109,7 @@ def build_query_model(): # if props.search_advanced: if props.search_condition != 'UNSPECIFIED': query["condition"] = props.search_condition + if props.search_design_year: query["designYear_gte"] = props.search_design_year_min query["designYear_lte"] = props.search_design_year_max diff --git a/blenderkit/ui_panels.py b/blenderkit/ui_panels.py index bc20169f452d570eb564ac1285c7b13853382146..f09f0b2ad8bf404e99972cf6abe3631721ec9f00 100644 --- a/blenderkit/ui_panels.py +++ b/blenderkit/ui_panels.py @@ -819,6 +819,7 @@ class VIEW3D_PT_blenderkit_advanced_model_search(Panel): # AGE layout.prop(props, "search_condition", text='Condition') # , text ='condition of object new/old e.t.c.') + layout.prop(props, "quality_limit", slider=True) # , text ='condition of object new/old e.t.c.') # layout.prop(props, "search_procedural", expand=True) # ADULT @@ -867,7 +868,7 @@ class VIEW3D_PT_blenderkit_advanced_material_search(Panel): row = layout.row(align=True) row.prop(props, "search_file_size_min", text='Min') row.prop(props, "search_file_size_max", text='Max') - + layout.prop(props, "quality_limit", slider=True) class VIEW3D_PT_blenderkit_categories(Panel): bl_category = "BlenderKit"