[Bf-extensions-cvs] [6f5f5609] master: BlenderKit: several fixes

Vilém Duha noreply at git.blender.org
Wed Sep 16 11:56:05 CEST 2020


Commit: 6f5f56095219a3c9490974764d0f9d2e0a2cba02
Author: Vilém Duha
Date:   Tue Sep 15 23:10:01 2020 +0200
Branches: master
https://developer.blender.org/rBA6f5f56095219a3c9490974764d0f9d2e0a2cba02

BlenderKit: several fixes

Files size was drawn wrong when more pages were loaded
Trying to fix crashes with timers (probablility is now lower in testing, but might still happen) - don't access context at all.

===================================================================

M	blenderkit/download.py
M	blenderkit/search.py
M	blenderkit/ui.py
M	blenderkit/utils.py

===================================================================

diff --git a/blenderkit/download.py b/blenderkit/download.py
index 545b06f2..1e028e4a 100644
--- a/blenderkit/download.py
+++ b/blenderkit/download.py
@@ -624,14 +624,14 @@ class Downloader(threading.Thread):
             else:
                 tcom.file_size = int(total_length)
                 dl = 0
-                for data in response.iter_content(chunk_size=4096):
+                totdata = []
+                for data in response.iter_content(chunk_size=4096*32): #crashed here... why? investigate:
                     dl += len(data)
                     tcom.downloaded = dl
                     tcom.progress = int(100 * tcom.downloaded / tcom.file_size)
                     f.write(data)
                     if self.stopped():
                         utils.p('stopping download: ' + asset_data['name'])
-                        f.close()
                         os.remove(file_name)
                         return;
 
diff --git a/blenderkit/search.py b/blenderkit/search.py
index 25d85d88..b72ade93 100644
--- a/blenderkit/search.py
+++ b/blenderkit/search.py
@@ -211,10 +211,10 @@ def parse_result(r):
 
     # TODO remove this fix when filesSize is fixed.
     # this is a temporary fix for too big numbers from the server.
-    try:
-        r['filesSize'] = int(r['filesSize'] / 1024)
-    except:
-        utils.p('asset with no files-size')
+    # try:
+    #     r['filesSize'] = int(r['filesSize'] / 1024)
+    # except:
+    #     utils.p('asset with no files-size')
     asset_type = r['assetType']
     if len(r['files']) > 0:
 
@@ -560,7 +560,7 @@ def generate_tooltip(mdata):
     # write files size - this doesn't reflect true file size, since files size is computed from all asset files, including resolutions.
     if mdata.get('filesSize'):
         fs = mdata['filesSize']
-        fsmb = fs // 1024
+        fsmb = fs // (1024 * 1024)
         fskb = fs % 1024
         if fsmb == 0:
             t += 'files size: %iKB\n' % fskb
diff --git a/blenderkit/ui.py b/blenderkit/ui.py
index 5333b65e..76d4352e 100644
--- a/blenderkit/ui.py
+++ b/blenderkit/ui.py
@@ -377,7 +377,7 @@ def draw_tooltip(x, y, text='', author='', img=None, gravatar=None):
 
     texth = line_height * nlines + nameline_height
 
-    if max(img.size[0], img.size[1]) == 0:
+    if not img or max(img.size[0], img.size[1]) == 0:
         return;
     isizex = int(512 * scale * img.size[0] / max(img.size[0], img.size[1]))
     isizey = int(512 * scale * img.size[1] / max(img.size[0], img.size[1]))
@@ -1024,7 +1024,7 @@ def is_rating_possible():
                 if ad is not None:
 
                     s['assets rated'] = s.get('assets rated',{})
-                    rated = s['assets rated'].get(ad['assetBaseId'])
+                    rated = s['assets rated'].get(ad.get(['assetBaseId']))
                     # originally hidden for already rated assets
                     return True, rated, ao_check, ad
                 elif ao_check.parent is not None:
@@ -1800,6 +1800,11 @@ class UndoWithContext(bpy.types.Operator):
 
     def execute(self, context):
         C_dict = utils.get_fake_context(context)
+        #w, a, r = get_largest_area(area_type=area_type)
+        # wm = bpy.context.window_manager#bpy.data.window_managers[0]
+        # w = wm.windows[0]
+        #
+        # C_dict = {'window': w, 'screen': w.screen}
         bpy.ops.ed.undo_push(C_dict, 'INVOKE_REGION_WIN', message=self.message)
         return {'FINISHED'}
 
diff --git a/blenderkit/utils.py b/blenderkit/utils.py
index 5236aabb..bd15c72e 100644
--- a/blenderkit/utils.py
+++ b/blenderkit/utils.py
@@ -631,7 +631,7 @@ def get_largest_area(area_type='VIEW_3D'):
     maxa = None
     maxw = None
     region = None
-    for w in bpy.context.window_manager.windows:
+    for w in bpy.data.window_managers[0].windows:
         for a in w.screen.areas:
             if a.type == area_type:
                 asurf = a.width * a.height



More information about the Bf-extensions-cvs mailing list