BlenderKit: minor UI fixes
This commit is contained in:
parent
4f961d71dc
commit
1cbc6e2842
|
@ -1403,15 +1403,15 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
|
|||
bl_idname = "wm.blenderkit_asset_popup"
|
||||
bl_label = "BlenderKit asset popup"
|
||||
|
||||
width = 700
|
||||
width = 800
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
return True
|
||||
|
||||
def draw_menu(self, context, layout):
|
||||
col = layout.column()
|
||||
draw_asset_context_menu(col, context, self.asset_data, from_panel=False)
|
||||
# layout = layout.column()
|
||||
draw_asset_context_menu(layout, context, self.asset_data, from_panel=False)
|
||||
|
||||
def draw_property(self, layout, left, right, icon=None, icon_value=None, url='', tooltip=''):
|
||||
right = str(right)
|
||||
|
@ -1442,6 +1442,13 @@ 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):
|
||||
if len(self.asset_data['description']) > 0:
|
||||
box = layout.box()
|
||||
box.scale_y = 0.8
|
||||
box.label(text='Description')
|
||||
utils.label_multiline(box, self.asset_data['description'], width=width)
|
||||
|
||||
def draw_properties(self, layout, width=250):
|
||||
|
||||
if type(self.asset_data['parameters']) == list:
|
||||
|
@ -1449,13 +1456,6 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
|
|||
else:
|
||||
mparams = self.asset_data['parameters']
|
||||
|
||||
layout = layout.column()
|
||||
if len(self.asset_data['description']) > 0:
|
||||
box = layout.box()
|
||||
box.scale_y = 0.8
|
||||
box.label(text='Description')
|
||||
utils.label_multiline(box, self.asset_data['description'], width=width)
|
||||
|
||||
pcoll = icons.icon_collections["main"]
|
||||
|
||||
box = layout.box()
|
||||
|
@ -1644,7 +1644,7 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
|
|||
|
||||
utils.label_multiline(col, text=a['tooltip'], width=text_width)
|
||||
# check if author didn't fill any data about himself and prompt him if that's the case
|
||||
if upload.user_is_owner(asset_data=self.asset_data) and a.get('aboutMe') is not None and len(
|
||||
if utils.user_is_owner(asset_data=self.asset_data) and a.get('aboutMe') is not None and len(
|
||||
a.get('aboutMe', '')) == 0:
|
||||
row = col.row()
|
||||
row.enabled = False
|
||||
|
@ -1673,14 +1673,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):
|
||||
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=34.0)
|
||||
box_thumbnail.template_icon(icon_value=self.img.preview.icon_id, scale=width*.12)
|
||||
|
||||
# row = box_thumbnail.row()
|
||||
# row.scale_y = 3
|
||||
|
@ -1738,16 +1737,36 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
|
|||
# left - tooltip & params
|
||||
row = box.row()
|
||||
split_factor = 0.7
|
||||
split_left_left = row.split(factor=split_factor)
|
||||
self.draw_properties(split_left_left, width=int(width * split_factor))
|
||||
split_left = row.split(factor=split_factor)
|
||||
col = split_left.column()
|
||||
width_left = int(width * split_factor)
|
||||
self.draw_description(col, width=width_left)
|
||||
|
||||
self.draw_properties(col, width=width_left)
|
||||
|
||||
# right - menu
|
||||
col1 = split_left_left.split()
|
||||
self.draw_menu(context, col1)
|
||||
split_right = split_left.split()
|
||||
col = split_right.column()
|
||||
self.draw_menu(context, col)
|
||||
|
||||
# author
|
||||
self.draw_author_area(context, box, width=width)
|
||||
|
||||
|
||||
# self.draw_author_area(context, box, width=width)
|
||||
#
|
||||
# col = box.column_flow(columns=2)
|
||||
# self.draw_menu(context, col)
|
||||
#
|
||||
#
|
||||
# # self.draw_description(box, width=int(width))
|
||||
# self.draw_properties(box, width=int(width))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def draw(self, context):
|
||||
ui_props = context.scene.blenderkitUI
|
||||
|
||||
|
@ -1765,17 +1784,22 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
|
|||
# left side
|
||||
row = layout.row(align=True)
|
||||
|
||||
split_ratio = 0.5
|
||||
split_left = row.split(factor=0.5)
|
||||
self.draw_thumbnail_box(split_left)
|
||||
|
||||
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_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 * split_ratio))
|
||||
self.draw_menu_desc_author(context, split_right, width=int(self.width * (1-split_ratio)))
|
||||
|
||||
ratings_box = layout.box()
|
||||
if not utils.user_is_owner(asset_data=asset_data):
|
||||
#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:
|
||||
# ratings_box.label('Here you should find ratings, but you can not rate your own assets ;)')
|
||||
|
||||
ratings.draw_ratings_menu(self, context, ratings_box)
|
||||
tip_box = layout.box()
|
||||
tip_box.label(text=self.tip)
|
||||
|
||||
|
|
|
@ -567,14 +567,6 @@ def update_free_full(self, context):
|
|||
" based on our fair share system. " \
|
||||
"Part of subscription is sent to artists based on usage by paying users.")
|
||||
|
||||
def user_is_owner(asset_data=None):
|
||||
'''Checks if the current logged in user is owner of the asset'''
|
||||
profile = bpy.context.window_manager.get('bkit profile')
|
||||
if profile is None:
|
||||
return False
|
||||
if int(asset_data['author']['id']) == int(profile['user']['id']):
|
||||
return True
|
||||
return False
|
||||
|
||||
def can_edit_asset(active_index=-1, asset_data=None):
|
||||
if active_index < 0 and not asset_data:
|
||||
|
|
|
@ -784,6 +784,14 @@ def profile_is_validator():
|
|||
return True
|
||||
return False
|
||||
|
||||
def user_is_owner(asset_data=None):
|
||||
'''Checks if the current logged in user is owner of the asset'''
|
||||
profile = bpy.context.window_manager.get('bkit profile')
|
||||
if profile is None:
|
||||
return False
|
||||
if int(asset_data['author']['id']) == int(profile['user']['id']):
|
||||
return True
|
||||
return False
|
||||
|
||||
def guard_from_crash():
|
||||
'''
|
||||
|
|
Loading…
Reference in New Issue