diff options
author | Vilém Duha <vilda.novak@gmail.com> | 2020-09-16 00:10:01 +0300 |
---|---|---|
committer | Vilém Duha <vilda.novak@gmail.com> | 2020-09-16 12:55:19 +0300 |
commit | 6f5f56095219a3c9490974764d0f9d2e0a2cba02 (patch) | |
tree | a0f6dbd96dd1e1ae79b9dd7059391e8e261477c8 /blenderkit | |
parent | d97d22c0749841b38cd2e0e701d1c5b7666daaf2 (diff) |
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.
Diffstat (limited to 'blenderkit')
-rw-r--r-- | blenderkit/download.py | 4 | ||||
-rw-r--r-- | blenderkit/search.py | 10 | ||||
-rw-r--r-- | blenderkit/ui.py | 9 | ||||
-rw-r--r-- | blenderkit/utils.py | 2 |
4 files changed, 15 insertions, 10 deletions
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 |