[Bf-extensions-cvs] [19f03356] master: BlenderKit: switch to pointers when checking UI areas

Vilém Duha noreply at git.blender.org
Sat Dec 5 19:33:22 CET 2020


Commit: 19f033560da7e93dfdde573a8e918cff4a2f7082
Author: Vilém Duha
Date:   Sat Dec 5 19:33:05 2020 +0100
Branches: master
https://developer.blender.org/rBA19f033560da7e93dfdde573a8e918cff4a2f7082

BlenderKit: switch to pointers when checking UI areas

improve tooltip for resolutions

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

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

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

diff --git a/blenderkit/search.py b/blenderkit/search.py
index 5e4c41d9..c90bacf6 100644
--- a/blenderkit/search.py
+++ b/blenderkit/search.py
@@ -339,7 +339,7 @@ def timer_update():
             # preferences.first_run = False
         if preferences.tips_on_start:
             utils.get_largest_area()
-            ui.update_ui_size(ui.active_area, ui.active_region)
+            ui.update_ui_size(ui.active_area_pointer, ui.active_region_pointer)
             ui.add_report(text='BlenderKit Tip: ' + random.choice(rtips), timeout=12, color=colors.GREEN)
         return 3.0
 
@@ -622,8 +622,9 @@ def generate_tooltip(mdata):
     # t += '\n'
     t = writeblockm(t, mdata, key='license', width=col_w)
 
+    fs = mdata.get('files')
+
     if utils.profile_is_validator():
-        fs = mdata.get('files')
         if fs:
             resolutions = 'resolutions:'
             for f in fs:
@@ -633,7 +634,11 @@ def generate_tooltip(mdata):
             t += resolutions
 
         t = writeblockm(t, mdata, key='isFree', width=col_w)
-
+    else:
+        for f in fs:
+            if f['fileType'].find('resolution')>-1:
+                t+= 'Asset has lower resolutions available\n'
+                break;
     # generator is for both upload preview and search, this is only after search
     # if mdata.get('versionNumber'):
     #     # t = writeblockm(t, mdata, key='versionNumber', pretext='version', width = col_w)
diff --git a/blenderkit/ui.py b/blenderkit/ui.py
index a4af023e..38aa46ac 100644
--- a/blenderkit/ui.py
+++ b/blenderkit/ui.py
@@ -51,10 +51,9 @@ import os
 
 handler_2d = None
 handler_3d = None
-active_area = None
-active_area = None
-active_window = None
-active_region = None
+active_area_pointer = None
+active_window_pointer = None
+active_region_pointer = None
 
 reports = []
 
@@ -139,7 +138,7 @@ class Report():
                     pass;
 
     def draw(self, x, y):
-        if bpy.context.area == active_area:
+        if bpy.context.area.as_pointer() == active_area_pointer:
             ui_bgl.draw_text(self.text, x, y + 8, 16, self.draw_color)
 
 
@@ -1207,7 +1206,7 @@ def mouse_in_region(r, mx, my):
 
 
 def update_ui_size(area, region):
-    if bpy.app.background:
+    if bpy.app.background or not area:
         return
     ui = bpy.context.scene.blenderkitUI
     user_preferences = bpy.context.preferences.addons['blenderkit'].preferences
@@ -1798,10 +1797,10 @@ class AssetBarOperator(bpy.types.Operator):
             if r.type == 'WINDOW':
                 self.region = r
 
-        global active_window, active_area, active_region
-        active_window = self.window
-        active_area = self.area
-        active_region = self.region
+        global active_window_pointer, active_area_pointer, active_region_pointer
+        active_window_pointer = self.window.as_pointer()
+        active_area_pointer = self.area.as_pointer()
+        active_region_pointer = self.region.as_pointer()
 
         update_ui_size(self.area, self.region)
 
diff --git a/blenderkit/ui_panels.py b/blenderkit/ui_panels.py
index a5de1a64..a1f990cb 100644
--- a/blenderkit/ui_panels.py
+++ b/blenderkit/ui_panels.py
@@ -1181,6 +1181,9 @@ def draw_asset_context_menu(self, context, asset_data, from_panel=False):
                     if o['asset_data']['assetBaseId'] == bpy.context.scene['search results'][ui_props.active_index]:
                         op.model_location = o.location
                         op.model_rotation = o.rotation_euler
+                    else:
+                        op.model_location = (0,0,0)
+                        op.model_rotation = (0,0,0)
                 op.max_resolution = asset_data.get('max_resolution',
                                                    0)  # str(utils.get_param(asset_data, 'textureResolutionMax'))
 
diff --git a/blenderkit/utils.py b/blenderkit/utils.py
index 59111623..d24272f9 100644
--- a/blenderkit/utils.py
+++ b/blenderkit/utils.py
@@ -699,10 +699,10 @@ def get_largest_area(area_type='VIEW_3D'):
                     for r in a.regions:
                         if r.type == 'WINDOW':
                             region = r
-    global active_area, active_window, active_region
-    active_window = maxw
-    active_area = maxa
-    active_region = region
+    global active_area_pointer, active_window_pointer, active_region_pointer
+    active_window_pointer = maxw.as_pointer()
+    active_area_pointer = maxa.as_pointer()
+    active_region_pointer = region.as_pointer()
     return maxw, maxa, region



More information about the Bf-extensions-cvs mailing list