[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