Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVilem Duha <vilem.duha@gmail.com>2021-05-19 12:51:45 +0300
committerVilem Duha <vilem.duha@gmail.com>2021-05-19 12:51:57 +0300
commit7867fe8bb34d6ddebcb0c29e143a506042571f69 (patch)
tree302b0685c8e5612b21166276db117ad0032d6d26
parentdf01c14fdd8a3d13f3994925af9a451873473eff (diff)
BlenderKit: UI fixes
Right clicking assetbar in a space where is no asset displayed did throw an error several minor tooltip/layout fixes.
-rw-r--r--blenderkit/__init__.py4
-rw-r--r--blenderkit/ratings.py2
-rw-r--r--blenderkit/ui.py2
-rw-r--r--blenderkit/ui_panels.py65
4 files changed, 37 insertions, 36 deletions
diff --git a/blenderkit/__init__.py b/blenderkit/__init__.py
index ca7cbeb2..e8043626 100644
--- a/blenderkit/__init__.py
+++ b/blenderkit/__init__.py
@@ -319,7 +319,7 @@ class BlenderKitUIProps(PropertyGroup):
update=udate_down_up
)
asset_type: EnumProperty(
- name="BlenderKit Active Asset Type",
+ name=" ",
items=asset_type_callback,
description="",
default=None,
@@ -445,7 +445,7 @@ class BlenderKitCommonSearchProps(object):
default=False)
search_done: BoolProperty(name="Search Completed", description="at least one search did run (internal)",
default=False)
- own_only: BoolProperty(name="My Assets", description="Search only for your assets",
+ own_only: BoolProperty(name="My Assets Only", description="Search only for your assets",
default=False, update=search.search_update)
search_advanced: BoolProperty(name="Advanced Search Options", description="use advanced search properties",
default=False, update=search.search_update)
diff --git a/blenderkit/ratings.py b/blenderkit/ratings.py
index dd4eeb3d..cde57893 100644
--- a/blenderkit/ratings.py
+++ b/blenderkit/ratings.py
@@ -180,7 +180,7 @@ def draw_ratings_menu(self, context, layout):
profile_name = ''
profile = bpy.context.window_manager.get('bkit profile')
- if profile:
+ if profile and len(profile['user']['firstName'])>0:
profile_name = ' ' + profile['user']['firstName']
col = layout.column()
diff --git a/blenderkit/ui.py b/blenderkit/ui.py
index febf37b1..84deb24e 100644
--- a/blenderkit/ui.py
+++ b/blenderkit/ui.py
@@ -1419,7 +1419,7 @@ class AssetBarOperator(bpy.types.Operator):
mx = event.mouse_x - r.x
my = event.mouse_y - r.y
- if event.value == 'PRESS' and mouse_in_asset_bar(mx, my):
+ if event.value == 'PRESS' and mouse_in_asset_bar(mx, my) and ui_props.active_index>-1:
# context.window.cursor_warp(event.mouse_x - 300, event.mouse_y - 10);
bpy.ops.wm.blenderkit_asset_popup('INVOKE_DEFAULT')
diff --git a/blenderkit/ui_panels.py b/blenderkit/ui_panels.py
index c04068ce..b92e985d 100644
--- a/blenderkit/ui_panels.py
+++ b/blenderkit/ui_panels.py
@@ -1362,6 +1362,11 @@ def numeric_to_str(s):
return s
+def push_op_left(layout):
+ for a in range(0, 5):
+ layout.label(text='')
+
+
def label_or_url(layout, text='', tooltip='', url='', icon_value=None, icon=None):
'''automatically switch between different layout options for linking or tooltips'''
layout.emboss = 'NONE'
@@ -1374,8 +1379,7 @@ def label_or_url(layout, text='', tooltip='', url='', icon_value=None, icon=None
op = layout.operator('wm.blenderkit_url', text=text)
op.url = url
op.tooltip = tooltip
- layout.label(text='')
- layout.label(text='')
+ push_op_left(layout)
return
if tooltip != '':
@@ -1387,8 +1391,7 @@ def label_or_url(layout, text='', tooltip='', url='', icon_value=None, icon=None
op = layout.operator('wm.blenderkit_tooltip', text=text)
op.tooltip = tooltip
# these are here to move the text to left, since operators can only center text by default
- layout.label(text='')
- layout.label(text='')
+ push_op_left(layout)
return
if icon:
layout.label(text=text, icon=icon)
@@ -1416,14 +1419,14 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
def draw_property(self, layout, left, right, icon=None, icon_value=None, url='', tooltip=''):
right = str(right)
row = layout.row()
- split = row.split(factor=0.4)
+ split = row.split(factor=0.35)
split.alignment = 'RIGHT'
split.label(text=left)
split = split.split()
split.alignment = 'LEFT'
# split for questionmark:
if url != '':
- split = split.split(factor=0.7)
+ split = split.split(factor=0.6)
label_or_url(split, text=right, tooltip=tooltip, url=url, icon_value=icon_value, icon=icon)
# additional questionmark icon where it's important?
if url != '':
@@ -1442,12 +1445,14 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
parameter = f"{parameter:,.1f}"
self.draw_property(layout, pretext, parameter)
- def draw_description(self, layout, width = 250):
+ def draw_description(self, layout, width=250):
if len(self.asset_data['description']) > 0:
box = layout.box()
- box.scale_y = 0.8
+ box.scale_y = 0.4
box.label(text='Description')
+ box.separator()
utils.label_multiline(box, self.asset_data['description'], width=width)
+ box.separator()
def draw_properties(self, layout, width=250):
@@ -1460,8 +1465,9 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
box = layout.box()
- box.scale_y = 0.8
+ box.scale_y = 0.4
box.label(text='Properties')
+ box.separator()
if self.asset_data.get('license') == 'cc_zero':
t = 'CC Zero '
icon = pcoll['cc0']
@@ -1471,7 +1477,7 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
icon = pcoll['royalty_free']
self.draw_property(box,
- 'License:', t,
+ 'License', t,
# icon_value=icon.icon_id,
url="https://www.blenderkit.com/docs/licenses/",
tooltip='All BlenderKit assets are available for commercial use. \n' \
@@ -1502,7 +1508,7 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
}
self.draw_property(box,
- 'Verification:',
+ 'Verification',
self.asset_data['verificationStatus'],
icon_value=icon.icon_id,
url="https://www.blenderkit.com/docs/validation-status/",
@@ -1528,7 +1534,7 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
if f['fileType'].find('resolution') > -1:
resolutions += f['fileType'][11:] + ' '
resolutions = resolutions.replace('_', '.')
- self.draw_property(box, 'Generated:', resolutions)
+ self.draw_property(box, 'Generated', resolutions)
self.draw_asset_parameter(box, key='designer', pretext='Designer')
self.draw_asset_parameter(box, key='manufacturer', pretext='Manufacturer') # TODO make them clickable!
@@ -1548,15 +1554,15 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
t = '%s×%s×%s m' % (utils.fmt_length(mparams['dimensionX']),
utils.fmt_length(mparams['dimensionY']),
utils.fmt_length(mparams['dimensionZ']))
- self.draw_property(box, 'Size:', t)
+ self.draw_property(box, 'Size', t)
if self.asset_data.get('filesSize'):
fs = self.asset_data['filesSize']
fsmb = fs // (1024 * 1024)
fskb = fs % 1024
if fsmb == 0:
- self.draw_property(box, 'Original size:', f'{fskb}KB')
+ self.draw_property(box, 'Original size', f'{fskb} KB')
else:
- self.draw_property(box, 'Original size:', f'{fsmb}MB')
+ self.draw_property(box, 'Original size', f'{fsmb} MB')
# Tags section
# row = box.row()
# letters_on_row = 0
@@ -1595,25 +1601,26 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
plans_link = 'https://www.blenderkit.com/plans/pricing/'
if self.asset_data['isPrivate']:
t = 'Private'
- self.draw_property(box, 'Access:', t, icon='LOCKED')
+ self.draw_property(box, 'Access', t, icon='LOCKED')
elif self.asset_data['isFree']:
t = 'Free plan'
icon = pcoll['free']
- self.draw_property(box, 'Access:', t,
+ self.draw_property(box, 'Access', t,
icon_value=icon.icon_id,
tooltip=plans_tooltip,
url=plans_link)
else:
t = 'Full plan'
icon = pcoll['full']
- self.draw_property(box, 'Access:', t,
+ self.draw_property(box, 'Access', t,
icon_value=icon.icon_id,
tooltip=plans_tooltip,
url=plans_link)
if utils.profile_is_validator():
date = self.asset_data['created'][:10]
date = f"{date[8:10]}. {date[5:7]}. {date[:4]}"
- self.draw_property(box, 'Created:', date)
+ self.draw_property(box, 'Created', date)
+ box.separator()
def draw_author_area(self, context, layout, width=330):
self.draw_author(context, layout, width=width)
@@ -1631,7 +1638,7 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
author_box.label(text='Author') # just one extra line to give spacing
if hasattr(self, 'gimg'):
- author_left = author_box.split(factor=0.25)
+ author_left = author_box.split(factor=image_split)
author_left.template_icon(icon_value=self.gimg.preview.icon_id, scale=7)
text_area = author_left.split()
text_width = int(text_width * (1 - image_split))
@@ -1673,13 +1680,13 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
op.keywords = ''
op.author_id = self.asset_data['author']['id']
- def draw_thumbnail_box(self, layout, width = 250):
+ def draw_thumbnail_box(self, layout, width=250):
layout.emboss = 'NORMAL'
box_thumbnail = layout.box()
box_thumbnail.scale_y = .4
- box_thumbnail.template_icon(icon_value=self.img.preview.icon_id, scale=width*.12)
+ box_thumbnail.template_icon(icon_value=self.img.preview.icon_id, scale=width * .12)
# row = box_thumbnail.row()
# row.scale_y = 3
@@ -1727,7 +1734,7 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
if rcount <= show_rating_prompt_threshold:
box_thumbnail.alert = True
box_thumbnail.label(text=f"")
- box_thumbnail.label(text=f"This asset has only {rcount} rating{'' if rcount == 1 else 's'} , please rate.")
+ box_thumbnail.label(text=f"This asset has only {rcount} rating{'' if rcount == 1 else 's'}, please rate.")
# box_thumbnail.label(text=f"Please rate this asset.")
def draw_menu_desc_author(self, context, layout, width=330):
@@ -1752,7 +1759,6 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
# author
self.draw_author_area(context, box, width=width)
-
# self.draw_author_area(context, box, width=width)
#
# col = box.column_flow(columns=2)
@@ -1762,11 +1768,6 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
# # self.draw_description(box, width=int(width))
# self.draw_properties(box, width=int(width))
-
-
-
-
-
def draw(self, context):
ui_props = context.scene.blenderkitUI
@@ -1787,14 +1788,14 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
split_ratio = 0.45
split_left = row.split(factor=split_ratio)
left_column = split_left.column()
- self.draw_thumbnail_box(left_column, width = int(self.width * split_ratio))
+ self.draw_thumbnail_box(left_column, width=int(self.width * split_ratio))
# self.draw_description(left_column, width = int(self.width*split_ratio))
# right split
split_right = split_left.split()
- self.draw_menu_desc_author(context, split_right, width=int(self.width * (1-split_ratio)))
+ self.draw_menu_desc_author(context, split_right, width=int(self.width * (1 - split_ratio)))
if not utils.user_is_owner(asset_data=asset_data):
- #Draw ratings, but not for owners of assets - doesn't make sense.
+ # Draw ratings, but not for owners of assets - doesn't make sense.
ratings_box = layout.box()
ratings.draw_ratings_menu(self, context, ratings_box)
# else: