Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVilem Duha <vilem.duha@gmail.com>2021-07-23 16:09:17 +0300
committerVilem Duha <vilem.duha@gmail.com>2021-07-23 16:09:28 +0300
commit7ebbe0f3093deb78bcfe6b5c614e7419630f3568 (patch)
tree704f4702cf5349d8abf0d061743cffb715c88122
parent0a34d11883bb9c3095c6a46739aefda86784b423 (diff)
BlenderKit: make it clear when a filter is used
this required a new icon for filters and an update function.
-rw-r--r--blenderkit/__init__.py5
-rw-r--r--blenderkit/asset_bar_op.py2
-rw-r--r--blenderkit/icons.py2
-rw-r--r--blenderkit/search.py25
-rw-r--r--blenderkit/thumbnails/filter.pngbin0 -> 525 bytes
-rw-r--r--blenderkit/thumbnails/filter_active.pngbin0 -> 525 bytes
-rw-r--r--blenderkit/ui.py2
-rw-r--r--blenderkit/ui_panels.py13
8 files changed, 40 insertions, 9 deletions
diff --git a/blenderkit/__init__.py b/blenderkit/__init__.py
index 7bd5fe8d..37e91a0a 100644
--- a/blenderkit/__init__.py
+++ b/blenderkit/__init__.py
@@ -459,8 +459,8 @@ class BlenderKitCommonSearchProps(object):
default=False)
own_only: BoolProperty(name="My Assets Only", description="Search only for your assets",
default=False, update=search.search_update)
- search_advanced: BoolProperty(name="Advanced Search Options", description="use advanced search properties",
- default=False, update=search.search_update)
+ use_filters: BoolProperty(name="Filters are on", description="some filters are used",
+ default=False)
search_error: BoolProperty(name="Search Error", description="last search had an error", default=False)
report: StringProperty(
@@ -574,6 +574,7 @@ class BlenderKitCommonSearchProps(object):
default=0, min=0, max=10, update=search.search_update)
+
def name_update(self, context):
''' checks for name change, because it decides if whole asset has to be re-uploaded. Name is stored in the blend file
and that's the reason.'''
diff --git a/blenderkit/asset_bar_op.py b/blenderkit/asset_bar_op.py
index 9c12b0f2..19f51682 100644
--- a/blenderkit/asset_bar_op.py
+++ b/blenderkit/asset_bar_op.py
@@ -605,7 +605,7 @@ class BlenderKitAssetBarOperator(BL_UI_OT_draw_operator):
self.scroll_offset = min(self.scroll_offset, len(sr) - (self.wcount * self.hcount))
self.scroll_offset = max(self.scroll_offset, 0)
self.update_images()
- if len(sr) - self.scroll_offset < (self.wcount * self.hcount) + 10:
+ if len(sr) - self.scroll_offset < (self.wcount * self.hcount) + 15:
self.search_more()
def search_by_author(self, asset_index):
diff --git a/blenderkit/icons.py b/blenderkit/icons.py
index b8b86cba..09a1ba19 100644
--- a/blenderkit/icons.py
+++ b/blenderkit/icons.py
@@ -31,6 +31,8 @@ icons_read = {
'dumbbell.png': 'dumbbell',
'cc0.png': 'cc0',
'royalty_free.png': 'royalty_free',
+ 'filter.png': 'filter',
+ 'filter_active.png': 'filter_active',
}
verification_icons = {
diff --git a/blenderkit/search.py b/blenderkit/search.py
index 59f9f838..940375fa 100644
--- a/blenderkit/search.py
+++ b/blenderkit/search.py
@@ -1083,7 +1083,7 @@ def build_query_common(query, props):
if props.quality_limit > 0:
query["quality_gte"] = props.quality_limit
-
+
query.update(query_common)
@@ -1106,7 +1106,6 @@ def build_query_model():
# if props.free_only:
# query["is_free"] = True
- # if props.search_advanced:
if props.search_condition != 'UNSPECIFIED':
query["condition"] = props.search_condition
@@ -1387,7 +1386,7 @@ def search(category='', get_next=False, author_id=''):
# utils.p('searching')
props.is_searching = True
- page_size = min(40, ui_props.wcount * user_preferences.max_assetbar_rows)
+ page_size = min(30, ui_props.wcount * user_preferences.max_assetbar_rows)
params = {
'scene_uuid': bpy.context.scene.get('uuid', None),
@@ -1406,10 +1405,30 @@ def search(category='', get_next=False, author_id=''):
props.report = 'BlenderKit searching....'
+def update_filters():
+ sprops = utils.get_search_props()
+ ui_props = bpy.context.scene.blenderkitUI
+ fcommon = sprops.own_only or \
+ sprops.search_texture_resolution or\
+ sprops.search_file_size or \
+ sprops.search_procedural != 'BOTH' or \
+ sprops.free_only or \
+ sprops.quality_limit>0
+
+ if ui_props.asset_type =='MODEL':
+ sprops.use_filters = fcommon or \
+ sprops.search_style != 'ANY' or \
+ sprops.search_condition != 'UNSPECIFIED' or \
+ sprops.search_design_year or \
+ sprops.search_polycount
+ elif ui_props.asset_type == 'MATERIAL':
+ sprops.use_filters = fcommon
+
def search_update(self, context):
utils.p('search updater')
# if self.search_keywords != '':
+ update_filters()
ui_props = bpy.context.scene.blenderkitUI
if ui_props.down_up != 'SEARCH':
ui_props.down_up = 'SEARCH'
diff --git a/blenderkit/thumbnails/filter.png b/blenderkit/thumbnails/filter.png
new file mode 100644
index 00000000..e128c35e
--- /dev/null
+++ b/blenderkit/thumbnails/filter.png
Binary files differ
diff --git a/blenderkit/thumbnails/filter_active.png b/blenderkit/thumbnails/filter_active.png
new file mode 100644
index 00000000..de4fb3be
--- /dev/null
+++ b/blenderkit/thumbnails/filter_active.png
Binary files differ
diff --git a/blenderkit/ui.py b/blenderkit/ui.py
index 5b4160c5..f402de51 100644
--- a/blenderkit/ui.py
+++ b/blenderkit/ui.py
@@ -1298,7 +1298,7 @@ class AssetBarOperator(bpy.types.Operator):
# If there aren't any results, we need no interaction(yet)
if sr is None:
return {'PASS_THROUGH'}
- if len(sr) - ui_props.scrolloffset < (ui_props.wcount * user_preferences.max_assetbar_rows) + 10:
+ if len(sr) - ui_props.scrolloffset < (ui_props.wcount * user_preferences.max_assetbar_rows) + 15:
self.search_more()
if event.type == 'WHEELUPMOUSE' or event.type == 'WHEELDOWNMOUSE' or event.type == 'TRACKPADPAN':
diff --git a/blenderkit/ui_panels.py b/blenderkit/ui_panels.py
index f09f0b2a..d5b0e66b 100644
--- a/blenderkit/ui_panels.py
+++ b/blenderkit/ui_panels.py
@@ -2205,10 +2205,19 @@ def header_search_draw(self, context):
layout.prop(props, "search_keywords", text="", icon='VIEWZOOM')
draw_assetbar_show_hide(layout, props)
layout.popover(panel="VIEW3D_PT_blenderkit_categories", text="", icon = 'OUTLINER')
+
+ pcoll = icons.icon_collections["main"]
+
+ if props.use_filters:
+ icon_id = pcoll['filter_active'].icon_id
+ else:
+ icon_id = pcoll['filter'].icon_id
+
if ui_props.asset_type=='MODEL':
- layout.popover(panel="VIEW3D_PT_blenderkit_advanced_model_search", text="", icon = 'FILTER')
+ layout.popover(panel="VIEW3D_PT_blenderkit_advanced_model_search", text="", icon_value = icon_id)
+
elif ui_props.asset_type=='MATERIAL':
- layout.popover(panel="VIEW3D_PT_blenderkit_advanced_material_search", text="", icon = 'FILTER')
+ layout.popover(panel="VIEW3D_PT_blenderkit_advanced_material_search", text="", icon_value = icon_id)
def ui_message(title, message):