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-10-13 15:07:09 +0300
committerVilem Duha <vilem.duha@gmail.com>2021-10-13 15:07:09 +0300
commit68ab11bdb0ab05d39c05cf530a2e136e3a056c23 (patch)
tree309cc1cd4ab31fdd30a09a9a7c080351fe5cd48b
parent7c099b03e4ff3ffffc120bbcc7f30ca466763d24 (diff)
BlenderKit: enable new asset bar
-rw-r--r--blenderkit/__init__.py8
-rw-r--r--blenderkit/asset_bar_op.py31
-rw-r--r--blenderkit/bl_ui_widgets/bl_ui_draw_op.py1
-rw-r--r--blenderkit/bl_ui_widgets/bl_ui_widget.py9
-rw-r--r--blenderkit/ui.py3
-rw-r--r--blenderkit/ui_panels.py22
6 files changed, 45 insertions, 29 deletions
diff --git a/blenderkit/__init__.py b/blenderkit/__init__.py
index bbae65f3..9ade2d73 100644
--- a/blenderkit/__init__.py
+++ b/blenderkit/__init__.py
@@ -61,6 +61,7 @@ if "bpy" in locals():
upload_bg = reload(upload_bg)
utils = reload(utils)
+ bl_ui_label = reload(bl_ui_widget)
bl_ui_label = reload(bl_ui_label)
bl_ui_button = reload(bl_ui_button)
# bl_ui_checkbox = reload(bl_ui_checkbox)
@@ -98,13 +99,14 @@ else:
from blenderkit import upload_bg
from blenderkit import utils
+ from blenderkit.bl_ui_widgets import bl_ui_widget
from blenderkit.bl_ui_widgets import bl_ui_label
from blenderkit.bl_ui_widgets import bl_ui_button
# from blenderkit.bl_ui_widgets import bl_ui_checkbox
# from blenderkit.bl_ui_widgets import bl_ui_slider
# from blenderkit.bl_ui_widgets import bl_ui_up_down
- from blenderkit.bl_ui_widgets import bl_ui_drag_panel
from blenderkit.bl_ui_widgets import bl_ui_draw_op
+ from blenderkit.bl_ui_widgets import bl_ui_drag_panel
# from blenderkit.bl_ui_widgets import bl_ui_textbox
import os
@@ -268,6 +270,10 @@ def switch_search_results(self, context):
if not (context.sculpt_object or context.image_paint_object):
ui.add_report(
'Switch to paint or sculpt mode to search in BlenderKit brushes.')
+ # if wm['search results'] == None:
+ # wm['search results'] = []
+ # if wm['search results orig'] == None:
+ # wm['search results orig'] = {'count': 0, 'results': []}
search.load_previews()
if wm['search results'] == None and props.down_up == 'SEARCH':
diff --git a/blenderkit/asset_bar_op.py b/blenderkit/asset_bar_op.py
index b3de3502..c294c351 100644
--- a/blenderkit/asset_bar_op.py
+++ b/blenderkit/asset_bar_op.py
@@ -247,10 +247,16 @@ class BlenderKitAssetBarOperator(BL_UI_OT_draw_operator):
w.visible = True
def check_new_search_results(self, context):
- sr = bpy.context.window_manager.get('search results',[])
+ sr = bpy.context.window_manager.get('search results')
if not hasattr(self, 'search_results_count'):
+ if not sr:
+ self.search_results_count = 0
+ return True
+
self.search_results_count = len(sr)
- if len(sr)!= self.search_results_count:
+ print(sr, len(sr), self.search_results_count)
+
+ if sr is not None and len(sr)!= self.search_results_count:
self.search_results_count = len(sr)
return True
return False
@@ -373,7 +379,6 @@ class BlenderKitAssetBarOperator(BL_UI_OT_draw_operator):
new_button.set_mouse_enter(self.enter_button)
new_button.set_mouse_exit(self.exit_button)
new_button.text_input = self.handle_key_input
- self.asset_buttons.append(new_button)
# add validation icon to button
icon_size = 24
validation_icon = BL_UI_Button(asset_x + self.button_size - icon_size - self.margin,
@@ -403,15 +408,17 @@ class BlenderKitAssetBarOperator(BL_UI_OT_draw_operator):
self.panel.bg_color = (0.0, 0.0, 0.0, 0.5)
sr = bpy.context.window_manager.get('search results', [])
- for a in range(0, self.wcount):
- for b in range(0, self.hcount):
-
- asset_x = self.assetbar_margin + a * (self.button_size)
- asset_y = self.assetbar_margin + b * (self.button_size)
- button_idx = a + b * self.wcount
- asset_idx = a + b * self.wcount + self.scroll_offset
- if asset_idx < len(sr):
- new_button = self.asset_button_init(asset_x, asset_y, button_idx)
+ if sr is not None:
+ for a in range(0, self.wcount):
+ for b in range(0, self.hcount):
+
+ asset_x = self.assetbar_margin + a * (self.button_size)
+ asset_y = self.assetbar_margin + b * (self.button_size)
+ button_idx = a + b * self.wcount
+ asset_idx = a + b * self.wcount + self.scroll_offset
+ if asset_idx < len(sr):
+ new_button = self.asset_button_init(asset_x, asset_y, button_idx)
+ self.asset_buttons.append(new_button)
other_button_size = 30
diff --git a/blenderkit/bl_ui_widgets/bl_ui_draw_op.py b/blenderkit/bl_ui_widgets/bl_ui_draw_op.py
index ab407f47..d54b3ab9 100644
--- a/blenderkit/bl_ui_widgets/bl_ui_draw_op.py
+++ b/blenderkit/bl_ui_widgets/bl_ui_draw_op.py
@@ -54,6 +54,7 @@ class BL_UI_OT_draw_operator(Operator):
result = False
for widget in self.widgets:
if widget.handle_event(event):
+ print(type(widget))
result = True
return result
diff --git a/blenderkit/bl_ui_widgets/bl_ui_widget.py b/blenderkit/bl_ui_widgets/bl_ui_widget.py
index c13bb33d..82782cfa 100644
--- a/blenderkit/bl_ui_widgets/bl_ui_widget.py
+++ b/blenderkit/bl_ui_widgets/bl_ui_widget.py
@@ -88,6 +88,8 @@ class BL_UI_Widget:
self.batch_panel = batch_for_shader(self.shader, 'TRIS', {"pos" : vertices}, indices=indices)
def handle_event(self, event):
+ if not self._is_visible:
+ return False
x = event.mouse_region_x
y = event.mouse_region_y
@@ -100,6 +102,7 @@ class BL_UI_Widget:
self.mouse_up(x, y)
elif (event.type == 'RIGHTMOUSE'):
+
if (event.value == 'PRESS'):
self._mouse_down_right = True
return self.mouse_down_right(x, y)
@@ -109,7 +112,6 @@ class BL_UI_Widget:
elif (event.type == 'MOUSEMOVE'):
self.mouse_move(x, y)
-
inrect = self.is_in_rect(x, y)
# we enter the rect
@@ -125,6 +127,7 @@ class BL_UI_Widget:
return False
elif event.value == 'PRESS' and (event.ascii != '' or event.type in self.get_input_keys()):
+
return self.text_input(event)
return False
@@ -143,6 +146,10 @@ class BL_UI_Widget:
(self.x_screen <= x <= (self.x_screen + self.width)) and
(widget_y >= y >= (widget_y - self.height))
):
+ print('is in rect!?')
+ print('area height', area_height)
+ print ('x sceen ',self.x_screen,'x ', x, 'width', self.width)
+ print ('widghet y', widget_y,'y', y, 'height',self.height)
return True
return False
diff --git a/blenderkit/ui.py b/blenderkit/ui.py
index d3590469..547235ac 100644
--- a/blenderkit/ui.py
+++ b/blenderkit/ui.py
@@ -1704,7 +1704,6 @@ class AssetDragOperator(bpy.types.Operator):
if not object:
return
- print('insta', object.is_from_instancer)
if object.is_library_indirect:
ui_panels.ui_message(title='This object is linked from outer file',
message="Please select the model,"
@@ -1904,7 +1903,7 @@ class RunAssetBarWithContext(bpy.types.Operator):
C_dict = utils.get_fake_context(context)
if C_dict.get('window'): # no 3d view, no asset bar.
preferences = bpy.context.preferences.addons['blenderkit'].preferences
- if preferences.experimental_features:
+ if preferences.experimental_features or 1:
bpy.ops.view3d.blenderkit_asset_bar_widget(C_dict, 'INVOKE_REGION_WIN', keep_running=self.keep_running,
do_search=self.do_search)
diff --git a/blenderkit/ui_panels.py b/blenderkit/ui_panels.py
index 6bb2f4d5..bb5c393a 100644
--- a/blenderkit/ui_panels.py
+++ b/blenderkit/ui_panels.py
@@ -334,17 +334,13 @@ def draw_assetbar_show_hide(layout, props):
ttip = 'Click to Show Asset Bar'
preferences = bpy.context.preferences.addons['blenderkit'].preferences
- if preferences.experimental_features:
+ if preferences.experimental_features or 1:
op = layout.operator('view3d.blenderkit_asset_bar_widget', text='', icon=icon)
- op.keep_running = False
- op.do_search = False
- op.tooltip = ttip
else:
op = layout.operator('view3d.blenderkit_asset_bar', text='', icon=icon)
- op.keep_running = False
- op.do_search = False
-
- op.tooltip = ttip
+ op.keep_running = False
+ op.do_search = False
+ op.tooltip = ttip
def draw_panel_model_search(self, context):
@@ -2236,14 +2232,14 @@ def draw_panel_categories(self, context):
ctext = '%s (%i)' % (c['name'], c['assetCount'])
preferences = bpy.context.preferences.addons['blenderkit'].preferences
- if preferences.experimental_features:
+ if preferences.experimental_features or 1:
op = row.operator('view3d.blenderkit_asset_bar_widget', text=ctext)
else:
op = row.operator('view3d.blenderkit_asset_bar', text=ctext)
- op.do_search = True
- op.keep_running = True
- op.tooltip = f"Browse {c['name']} category"
- op.category = c['slug']
+ op.do_search = True
+ op.keep_running = True
+ op.tooltip = f"Browse {c['name']} category"
+ op.category = c['slug']
if len(c['children']) > 0 and c['assetCount'] > 15 or (
utils.profile_is_validator() and user_preferences.categories_fix):
# row = row.split()