[Bf-extensions-cvs] [3222ff12] master: BlenderKit: new asset bar fixes and improvements

Vilem Duha noreply at git.blender.org
Fri Nov 5 08:50:24 CET 2021


Commit: 3222ff126c2193d7f9c8f0279d6459acd955f4c2
Author: Vilem Duha
Date:   Fri Nov 5 08:40:56 2021 +0100
Branches: master
https://developer.blender.org/rBA3222ff126c2193d7f9c8f0279d6459acd955f4c2

BlenderKit: new asset bar fixes and improvements

Reports are back and split in reports.py
Quality is drawn in tooltip
comments and notification improvements and fixes
Tips were updated

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

M	blenderkit/__init__.py
M	blenderkit/asset_bar_op.py
M	blenderkit/bkit_oauth.py
M	blenderkit/bl_ui_widgets/bl_ui_draw_op.py
M	blenderkit/bl_ui_widgets/bl_ui_widget.py
M	blenderkit/categories.py
M	blenderkit/comments_utils.py
M	blenderkit/download.py
M	blenderkit/paths.py
M	blenderkit/ratings_utils.py
M	blenderkit/reports.py
M	blenderkit/rerequests.py
M	blenderkit/search.py
M	blenderkit/ui.py
M	blenderkit/ui_panels.py
M	blenderkit/upload.py
M	blenderkit/upload_bg.py
M	blenderkit/utils.py

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

diff --git a/blenderkit/__init__.py b/blenderkit/__init__.py
index 3b35b912..22afd2a1 100644
--- a/blenderkit/__init__.py
+++ b/blenderkit/__init__.py
@@ -60,6 +60,7 @@ if "bpy" in locals():
     upload = reload(upload)
     upload_bg = reload(upload_bg)
     utils = reload(utils)
+    reports = reload(reports)
 
     bl_ui_widget = reload(bl_ui_widget)
     bl_ui_label = reload(bl_ui_label)
@@ -99,6 +100,7 @@ else:
     from blenderkit import upload
     from blenderkit import upload_bg
     from blenderkit import utils
+    from blenderkit import reports
 
     from blenderkit.bl_ui_widgets import bl_ui_widget
     from blenderkit.bl_ui_widgets import bl_ui_label
@@ -270,7 +272,7 @@ def switch_search_results(self, context):
         wm['search results'] = wm.get('bkit brush search')
         wm['search results orig'] = wm.get('bkit brush search orig')
         if not (context.sculpt_object or context.image_paint_object):
-            ui.add_report(
+            reports.add_report(
                 'Switch to paint or sculpt mode to search in BlenderKit brushes.')
     # if wm['search results'] == None:
     #     wm['search results'] = []
@@ -1658,7 +1660,7 @@ class BlenderKitAddonPreferences(AddonPreferences):
     tips_on_start: BoolProperty(
         name="Show tips when starting blender",
         description="Show tips when starting blender",
-        default=False
+        default=True
     )
 
     search_in_header: BoolProperty(
diff --git a/blenderkit/asset_bar_op.py b/blenderkit/asset_bar_op.py
index 17638f4e..98b89f14 100644
--- a/blenderkit/asset_bar_op.py
+++ b/blenderkit/asset_bar_op.py
@@ -24,6 +24,7 @@ from bpy.props import (
     StringProperty
 )
 
+active_area_pointer = 0
 
 def get_area_height(self):
     if type(self.context) != dict:
@@ -64,7 +65,7 @@ def modal_inside(self, context, event):
         self.finish()
         return {'FINISHED'}
 
-    self.update_timer +=1
+    self.update_timer += 1
 
     if self.update_timer > self.update_timer_limit:
         self.update_timer = 0
@@ -84,7 +85,6 @@ def modal_inside(self, context, event):
                 else:
                     asset_button.progress_bar.visible = False
 
-
     if self.handle_widget_events(event):
         return {'RUNNING_MODAL'}
 
@@ -124,11 +124,16 @@ def asset_bar_invoke(self, context, event):
     self.register_handlers(args, context)
 
     self.update_timer_limit = 30
-    self.update_timer =0
+    self.update_timer = 0
     # print('adding timer')
     # self._timer = context.window_manager.event_timer_add(10.0, window=context.window)
-
+    global active_area_pointer
     context.window_manager.modal_handler_add(self)
+    self.active_window_pointer = context.window.as_pointer()
+    self.active_area_pointer = context.area.as_pointer()
+    active_area_pointer = context.area.as_pointer()
+    self.active_region_pointer = context.region.as_pointer()
+
     return {"RUNNING_MODAL"}
 
 
@@ -188,7 +193,7 @@ def get_tooltip_data(asset_data):
         if rc:
             rcount = min(rc.get('quality', 0), rc.get('workingHours', 0))
         if rcount > show_rating_threshold:
-            quality = round(asset_data['ratingsAverage'].get('quality'))
+            quality = str(round(asset_data['ratingsAverage'].get('quality')))
         tooltip_data = {
             'aname': aname,
             'author_text': author_text,
@@ -273,16 +278,32 @@ class BlenderKitAssetBarOperator(BL_UI_OT_draw_operator):
         self.authors_name = authors_name
         self.tooltip_widgets.append(authors_name)
 
-        gravatar_image = BL_UI_Image(self.tooltip_width - self.gravatar_size, self.tooltip_height - self.gravatar_size, 1, 1)
+        gravatar_image = BL_UI_Image(self.tooltip_width - self.gravatar_size, self.tooltip_height - self.gravatar_size,
+                                     1, 1)
         img_path = paths.get_addon_thumbnail_path('thumbnail_notready.jpg')
         gravatar_image.set_image(img_path)
         gravatar_image.set_image_size((self.gravatar_size - 1 * self.margin, self.gravatar_size - 1 * self.margin))
         gravatar_image.set_image_position((0, 0))
         self.gravatar_image = gravatar_image
         self.tooltip_widgets.append(gravatar_image)
-        offset_y = 16 + self.margin
-        # label = self.new_text('Left click or drag to append/link. Right click for more options.', self.margin*2, labels_start + offset_y,
-        #                       text_size=14)
+
+        quality_star = BL_UI_Image(self.margin, self.tooltip_height - self.margin - self.asset_name_text_size,
+                                     1, 1)
+        img_path = paths.get_addon_thumbnail_path('star_grey.png')
+        quality_star.set_image(img_path)
+        quality_star.set_image_size((self.asset_name_text_size, self.asset_name_text_size))
+        quality_star.set_image_position((0, 0))
+        # self.quality_star = quality_star
+        self.tooltip_widgets.append(quality_star)
+        label = self.new_text('', 2*self.margin+self.asset_name_text_size,
+                              self.tooltip_height - int(self.asset_name_text_size+ self.margin * .5),
+                              text_size=self.asset_name_text_size)
+        self.tooltip_widgets.append(label)
+        self.quality_label = label
+
+        # label = self.new_text('Right click for menu.', self.margin,
+        #                       self.tooltip_height - int(self.author_text_size) - self.margin,
+        #                       text_size=int(self.author_text_size*.7))
         # self.tooltip_widgets.append(label)
 
     def hide_tooltip(self):
@@ -383,7 +404,7 @@ class BlenderKitAssetBarOperator(BL_UI_OT_draw_operator):
         if not bpy.context.preferences.system.use_region_overlap:
             reg_multiplier = 0
         for r in area.regions:
-            if r.type == 'UI' :
+            if r.type == 'UI':
                 ui_width = r.width * reg_multiplier
             if r.type == 'TOOLS':
                 tools_width = r.width * reg_multiplier
@@ -409,13 +430,17 @@ class BlenderKitAssetBarOperator(BL_UI_OT_draw_operator):
         # self.bar_y = region.height - ui_props.bar_y_offset * ui_scale
         self.bar_y = ui_props.bar_y_offset * ui_scale
         if ui_props.down_up == 'UPLOAD':
-            self.reports_y = self.bar_y - 600
+            self.reports_y = region.height - self.bar_y - 600
+            ui_props.reports_y = region.height - self.bar_y - 600
             self.reports_x = self.bar_x
-        else:
-            self.reports_y = self.bar_y - self.bar_height - 100
-            self.reports_x = self.bar_x
-
+            ui_props.reports_x = self.bar_x
+        else:#ui.bar_y - ui.bar_height - 100
 
+            self.reports_y = region.height - self.bar_y - self.bar_height - 50
+            ui_props.reports_y =region.height -  self.bar_y - self.bar_height- 50
+            self.reports_x = self.bar_x
+            ui_props.reports_x = self.bar_x
+            # print(self.bar_y, self.bar_height, region.height)
 
     def update_layout(self, context, event):
         # restarting asset_bar completely since the widgets are too hard to get working with updates.
@@ -437,9 +462,10 @@ class BlenderKitAssetBarOperator(BL_UI_OT_draw_operator):
             self.tooltip_panel.width = self.tooltip_width
             self.tooltip_image.width = self.tooltip_width
             self.tooltip_image.set_image_size((self.tooltip_width, self.tooltip_height))
-            self.gravatar_image.set_location(self.tooltip_width - self.gravatar_size, self.tooltip_height - self.gravatar_size)
+            self.gravatar_image.set_location(self.tooltip_width - self.gravatar_size,
+                                             self.tooltip_height - self.gravatar_size)
             self.authors_name.set_location(self.tooltip_width - self.gravatar_size - self.margin,
-            self.tooltip_height - self.author_text_size - self.margin)
+                                           self.tooltip_height - self.author_text_size - self.margin)
 
         # to hide arrows accordingly
         self.scroll_update()
@@ -491,6 +517,12 @@ class BlenderKitAssetBarOperator(BL_UI_OT_draw_operator):
         new_button.progress_bar = progress_bar
         self.progress_bars.append(progress_bar)
 
+        if utils.profile_is_validator():
+            red_alert = BL_UI_Widget(asset_x, asset_y, self.button_size, self.button_size)
+            red_alert.bg_color = (1.0, 0.0, 0.0, 0.0)
+            red_alert.visible = False
+            new_button.red_alert = red_alert
+            self.red_alerts.append(red_alert)
         # if result['downloaded'] > 0:
         #     ui_bgl.draw_rect(x, y, int(ui_props.thumb_size * result['downloaded'] / 100.0), 2, green)
 
@@ -506,6 +538,7 @@ class BlenderKitAssetBarOperator(BL_UI_OT_draw_operator):
         self.asset_buttons = []
         self.validation_icons = []
         self.progress_bars = []
+        self.red_alerts = []
         self.widgets_panel = []
 
         self.panel = BL_UI_Drag_Panel(0, 0, self.bar_width, self.bar_height)
@@ -608,6 +641,8 @@ class BlenderKitAssetBarOperator(BL_UI_OT_draw_operator):
                     button.visible = False
                     button.validation_icon.visible = False
                     button.progress_bar.visible = False
+                if utils.profile_is_validator():
+                    button.red_alert.set_location(asset_x, asset_y)
                 i += 1
 
         for a in range(i, len(self.asset_buttons)):
@@ -641,6 +676,7 @@ class BlenderKitAssetBarOperator(BL_UI_OT_draw_operator):
         widgets_panel.extend(self.asset_buttons)
         widgets_panel.extend(self.validation_icons)
         widgets_panel.extend(self.progress_bars)
+        widgets_panel.extend(self.red_alerts)
 
         widgets = [self.panel]
 
@@ -702,6 +738,14 @@ class BlenderKitAssetBarOperator(BL_UI_OT_draw_operator):
         # to hide arrows accordingly
         self.scroll_update()
 
+        self.window = context.window
+        self.area = context.area
+        self.scene = bpy.context.scene
+        # global active_window_pointer, active_area_pointer, active_region_pointer
+        # ui.active_window_pointer = self.window.as_pointer()

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list