[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