[Bf-extensions-cvs] [0d6b2e87] master: BlenderKit: move search props to window manager
Vilem Duha
noreply at git.blender.org
Mon Jul 26 23:28:00 CEST 2021
Commit: 0d6b2e8767fdec2cb77e1a9ae92003a496b01837
Author: Vilem Duha
Date: Mon Jul 26 16:38:05 2021 +0200
Branches: master
https://developer.blender.org/rBA0d6b2e8767fdec2cb77e1a9ae92003a496b01837
BlenderKit: move search props to window manager
===================================================================
M blenderkit/__init__.py
M blenderkit/download.py
M blenderkit/search.py
M blenderkit/ui.py
M blenderkit/ui_panels.py
M blenderkit/utils.py
===================================================================
diff --git a/blenderkit/__init__.py b/blenderkit/__init__.py
index 37e91a0a..574349b1 100644
--- a/blenderkit/__init__.py
+++ b/blenderkit/__init__.py
@@ -1841,7 +1841,7 @@ def register():
type=BlenderKitUIProps)
# MODELS
- bpy.types.Scene.blenderkit_models = PointerProperty(
+ bpy.types.WindowManager.blenderkit_models = PointerProperty(
type=BlenderKitModelSearchProps)
bpy.types.Object.blenderkit = PointerProperty( # for uploads, not now...
type=BlenderKitModelUploadProps)
@@ -1849,7 +1849,7 @@ def register():
type=BlenderKitRatingProps)
# SCENES
- bpy.types.Scene.blenderkit_scene = PointerProperty(
+ bpy.types.WindowManager.blenderkit_scene = PointerProperty(
type=BlenderKitSceneSearchProps)
bpy.types.Scene.blenderkit = PointerProperty( # for uploads, not now...
type=BlenderKitSceneUploadProps)
@@ -1857,7 +1857,7 @@ def register():
type=BlenderKitRatingProps)
# HDRs
- bpy.types.Scene.blenderkit_HDR = PointerProperty(
+ bpy.types.WindowManager.blenderkit_HDR = PointerProperty(
type=BlenderKitHDRSearchProps)
bpy.types.Image.blenderkit = PointerProperty( # for uploads, not now...
type=BlenderKitHDRUploadProps)
@@ -1865,7 +1865,7 @@ def register():
type=BlenderKitRatingProps)
# MATERIALS
- bpy.types.Scene.blenderkit_mat = PointerProperty(
+ bpy.types.WindowManager.blenderkit_mat = PointerProperty(
type=BlenderKitMaterialSearchProps)
bpy.types.Material.blenderkit = PointerProperty( # for uploads, not now...
type=BlenderKitMaterialUploadProps)
@@ -1873,7 +1873,7 @@ def register():
type=BlenderKitRatingProps)
# BRUSHES
- bpy.types.Scene.blenderkit_brush = PointerProperty(
+ bpy.types.WindowManager.blenderkit_brush = PointerProperty(
type=BlenderKitBrushSearchProps)
bpy.types.Brush.blenderkit = PointerProperty( # for uploads, not now...
type=BlenderKitBrushUploadProps)
@@ -1930,11 +1930,11 @@ def unregister():
tasks_queue.unregister()
asset_bar_op.unregister()
- del bpy.types.Scene.blenderkit_models
- del bpy.types.Scene.blenderkit_scene
- del bpy.types.Scene.blenderkit_HDR
- del bpy.types.Scene.blenderkit_brush
- del bpy.types.Scene.blenderkit_mat
+ del bpy.types.WindowManager.blenderkit_models
+ del bpy.types.WindowManager.blenderkit_scene
+ del bpy.types.WindowManager.blenderkit_HDR
+ del bpy.types.WindowManager.blenderkit_brush
+ del bpy.types.WindowManager.blenderkit_mat
del bpy.types.Scene.blenderkit
del bpy.types.Object.blenderkit
diff --git a/blenderkit/download.py b/blenderkit/download.py
index 4d7cfa52..d0b6cc98 100644
--- a/blenderkit/download.py
+++ b/blenderkit/download.py
@@ -305,14 +305,14 @@ def append_asset(asset_data, **kwargs): # downloaders=[], location=None,
# how to do particle drop:
# link the group we are interested in( there are more groups in File!!!! , have to get the correct one!)
s = bpy.context.scene
-
+ wm = bpy.context.window_manager
user_preferences = bpy.context.preferences.addons['blenderkit'].preferences
if user_preferences.api_key == '':
user_preferences.asset_counter += 1
if asset_data['assetType'] == 'scene':
- sprops = s.blenderkit_scene
+ sprops = wm.blenderkit_scene
scene = append_link.append_scene(file_names[0], link=sprops.append_link == 'LINK', fake_user=False)
# print('scene appended')
@@ -330,7 +330,7 @@ def append_asset(asset_data, **kwargs): # downloaders=[], location=None,
if asset_data['assetType'] == 'model':
downloaders = kwargs.get('downloaders')
- sprops = s.blenderkit_models
+ sprops = wm.blenderkit_models
# TODO this is here because combinations of linking objects or appending groups are rather not-usefull
if sprops.append_method == 'LINK_COLLECTION':
sprops.append_link = 'LINK'
@@ -468,7 +468,7 @@ def append_asset(asset_data, **kwargs): # downloaders=[], location=None,
elif asset_data['assetType'] == 'material':
inscene = False
- sprops = s.blenderkit_mat
+ sprops = wm.blenderkit_mat
for m in bpy.data.materials:
if m.blenderkit.id == asset_data['id']:
diff --git a/blenderkit/search.py b/blenderkit/search.py
index 940375fa..ed295e79 100644
--- a/blenderkit/search.py
+++ b/blenderkit/search.py
@@ -447,7 +447,6 @@ def search_timer():
wm[search_name + ' orig'] = rdata
wm['search results orig'] = rdata
- # load_previews()
if len(result_field) < ui_props.scrolloffset or not (thread[0].params.get('get_next')):
# jump back
ui_props.scrolloffset = 0
@@ -1090,7 +1089,7 @@ def build_query_common(query, props):
def build_query_model():
'''use all search input to request results from server'''
- props = bpy.context.scene.blenderkit_models
+ props = bpy.context.window_manager.blenderkit_models
query = {
"asset_type": 'model',
# "engine": props.search_engine,
@@ -1127,7 +1126,7 @@ def build_query_model():
def build_query_scene():
'''use all search input to request results from server'''
- props = bpy.context.scene.blenderkit_scene
+ props = bpy.context.window_manager.blenderkit_scene
query = {
"asset_type": 'scene',
# "engine": props.search_engine,
@@ -1140,7 +1139,7 @@ def build_query_scene():
def build_query_HDR():
'''use all search input to request results from server'''
- props = bpy.context.scene.blenderkit_HDR
+ props = bpy.context.window_manager.blenderkit_HDR
query = {
"asset_type": 'hdr',
# "engine": props.search_engine,
@@ -1151,7 +1150,7 @@ def build_query_HDR():
def build_query_material():
- props = bpy.context.scene.blenderkit_mat
+ props = bpy.context.window_manager.blenderkit_mat
query = {
"asset_type": 'material',
@@ -1206,7 +1205,7 @@ def build_query_texture():
def build_query_brush():
- props = bpy.context.scene.blenderkit_brush
+ props = bpy.context.window_manager.blenderkit_brush
brush_type = ''
if bpy.context.sculpt_object is not None:
@@ -1317,38 +1316,39 @@ def search(category='', get_next=False, author_id=''):
search_start_time = time.time()
# mt('start')
scene = bpy.context.scene
+ wm = bpy.context.window_manager
ui_props = scene.blenderkitUI
props = utils.get_search_props()
if ui_props.asset_type == 'MODEL':
- if not hasattr(scene, 'blenderkit'):
+ if not hasattr(wm, 'blenderkit_models'):
return;
query = build_query_model()
if ui_props.asset_type == 'SCENE':
- if not hasattr(scene, 'blenderkit_scene'):
+ if not hasattr(wm, 'blenderkit_scene'):
return;
query = build_query_scene()
if ui_props.asset_type == 'HDR':
- if not hasattr(scene, 'blenderkit_HDR'):
+ if not hasattr(wm, 'blenderkit_HDR'):
return;
query = build_query_HDR()
if ui_props.asset_type == 'MATERIAL':
- if not hasattr(scene, 'blenderkit_mat'):
+ if not hasattr(wm, 'blenderkit_mat'):
return;
query = build_query_material()
if ui_props.asset_type == 'TEXTURE':
- if not hasattr(scene, 'blenderkit_tex'):
+ if not hasattr(wm, 'blenderkit_tex'):
return;
# props = scene.blenderkit_tex
# query = build_query_texture()
if ui_props.asset_type == 'BRUSH':
- if not hasattr(scene, 'blenderkit_brush'):
+ if not hasattr(wm, 'blenderkit_brush'):
return;
query = build_query_brush()
@@ -1464,7 +1464,7 @@ def search_update(self, context):
# return here since writing into search keywords triggers this update function once more.
return
- print('search update search')
+ # print('search update search')
search()
diff --git a/blenderkit/ui.py b/blenderkit/ui.py
index f402de51..a21cff91 100644
--- a/blenderkit/ui.py
+++ b/blenderkit/ui.py
@@ -818,7 +818,7 @@ def mouse_raycast(context, mx, my):
# rote = mathutils.Euler((0, 0, math.pi))
randoffset = math.pi
if has_hit:
- props = bpy.context.scene.blenderkit_models
+ props = bpy.context.window_manager.blenderkit_models
up = Vector((0, 0, 1))
if props.perpendicular_snap:
@@ -874,7 +874,7 @@ def floor_raycast(context, mx, my):
object = None
matrix = None
snapped_rotation = snapped_normal.to_track_quat('Z', 'Y').to_euler()
- props = bpy.context.scene.blenderkit_models
+ props = bpy.context.window_manager.blenderkit_models
if props.randomize_rotation:
randoffset = props.offset_rotation_amount + math.pi + (
random.random() - 0.5) * props.randomize_rotation_amount
@@ -1680,7 +1680,8 @@ class AssetDragOperator(bpy.types.Operator):
target_object = object.name
target_slot = object.active_material_index
self.snapped_location = object.location
- elif self.object_name is not None:
+ elif self.object_name is not None and self.has_hit:
+
# first, test if object can have material applied.
object = bpy.data.objects[self.object_name]
# this enables to run Bring to scene automatically when dropping on a linked objects.
@@ -1696,9 +1697,7 @@ class AssetDragOperator(bpy.types.Operator):
# create final mesh to extract correct material slot
depsgraph = bpy.context.evaluated_depsgraph_get()
object_eval = object.evaluated_get(depsgraph)
- temp_mesh = object_eval.to_mesh()
- target_slot = temp_mesh.polygons[self.face_index].material_index
- object_eval.to_mesh_clear()
+
if object.type == 'MESH':
temp_mesh = object_eval.to_mesh()
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list