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:
authorVilém Duha <vilda.novak@gmail.com>2020-11-05 01:48:26 +0300
committerVilém Duha <vilda.novak@gmail.com>2020-11-05 01:48:26 +0300
commit40e0792c3cae2cb95eef8d08d23364ca2e091eca (patch)
treed774b631d3cadf5751af8be8557bf1bab27f002c
parente7545e59529c7b322e46cfffe111972ec0fb574f (diff)
BlenderKit: fix a border case with generating context for assetbar (opening a file with no 3d view)
-rw-r--r--blenderkit/search.py1
-rw-r--r--blenderkit/ui.py4
-rw-r--r--blenderkit/utils.py11
3 files changed, 9 insertions, 7 deletions
diff --git a/blenderkit/search.py b/blenderkit/search.py
index f1230eb7..b681134c 100644
--- a/blenderkit/search.py
+++ b/blenderkit/search.py
@@ -140,7 +140,6 @@ def update_assets_data(): # updates assets data on scene load.
for bkdict in dicts:
d = s.get(bkdict)
- print(d)
if not d:
continue;
diff --git a/blenderkit/ui.py b/blenderkit/ui.py
index 130e66ab..56dd1fee 100644
--- a/blenderkit/ui.py
+++ b/blenderkit/ui.py
@@ -1820,7 +1820,6 @@ class UndoWithContext(bpy.types.Operator):
return {'FINISHED'}
-
class RunAssetBarWithContext(bpy.types.Operator):
"""Regenerate cobweb"""
bl_idname = "object.run_assetbar_fix_context"
@@ -1833,7 +1832,8 @@ class RunAssetBarWithContext(bpy.types.Operator):
def execute(self, context):
C_dict = utils.get_fake_context(context)
- bpy.ops.view3d.blenderkit_asset_bar(C_dict, 'INVOKE_REGION_WIN', keep_running=True, do_search=False)
+ if C_dict.get('window'): # no 3d view, no asset bar.
+ bpy.ops.view3d.blenderkit_asset_bar(C_dict, 'INVOKE_REGION_WIN', keep_running=True, do_search=False)
return {'FINISHED'}
diff --git a/blenderkit/utils.py b/blenderkit/utils.py
index 8ddd7e7d..d03140b7 100644
--- a/blenderkit/utils.py
+++ b/blenderkit/utils.py
@@ -656,14 +656,17 @@ def get_fake_context(context, area_type='VIEW_3D'):
try:
context = context.copy()
- except:
+ except Exception as e:
+ print(e)
+ print('BlenderKit: context.copy() failed. probably a colliding addon.')
context = {}
if context.get('area') is None or context.get('area').type != area_type:
w, a, r = get_largest_area(area_type=area_type)
-
- override = {'window': w, 'screen': w.screen, 'area': a, 'region': r}
- C_dict.update(override)
+ if w:
+ #sometimes there is no area of the requested type. Let's face it, some people use Blender without 3d view.
+ override = {'window': w, 'screen': w.screen, 'area': a, 'region': r}
+ C_dict.update(override)
# print(w,a,r)
return C_dict