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-07-23 17:02:28 +0300
committerVilem Duha <vilem.duha@gmail.com>2021-07-23 17:02:28 +0300
commit89ce3f1e1ca9f715b790cb3901001782d27bebea (patch)
tree5959ff92a76d36f17583e8e76d8f979fb2b3c3fe /blenderkit
parent7ebbe0f3093deb78bcfe6b5c614e7419630f3568 (diff)
BlenderKit: warn on assets from newer Blender versions in popup card
Diffstat (limited to 'blenderkit')
-rw-r--r--blenderkit/ui_panels.py17
-rw-r--r--blenderkit/upload.py1
-rw-r--r--blenderkit/utils.py38
3 files changed, 42 insertions, 14 deletions
diff --git a/blenderkit/ui_panels.py b/blenderkit/ui_panels.py
index d5b0e66b..c763ba9e 100644
--- a/blenderkit/ui_panels.py
+++ b/blenderkit/ui_panels.py
@@ -1401,7 +1401,7 @@ def numeric_to_str(s):
return s
-def push_op_left(layout, strength =5):
+def push_op_left(layout, strength =3):
for a in range(0, strength):
layout.label(text='')
@@ -1418,7 +1418,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
- push_op_left(layout)
+ push_op_left(layout, strength = 5)
return
if tooltip != '':
@@ -1429,8 +1429,9 @@ def label_or_url(layout, text='', tooltip='', url='', icon_value=None, icon=None
else:
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
- push_op_left(layout)
+ push_op_left(layout, strength = 3)
return
if icon:
layout.label(text=text, icon=icon)
@@ -1666,6 +1667,16 @@ class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
date = self.asset_data['created'][:10]
date = f"{date[8:10]}. {date[5:7]}. {date[:4]}"
self.draw_property(box, 'Created', date)
+ if utils.asset_from_newer_blender_version(self.asset_data):
+ # row = box.row()
+ box.alert=True
+ self.draw_property(box,
+ 'Blender version',
+ self.asset_data['sourceAppVersion'],
+ # icon='ERROR',
+ tooltip='Asset is from a newer Blender version and might work incorrectly in your scene',
+ )
+ box.alert = False
box.separator()
def draw_author_area(self, context, layout, width=330):
diff --git a/blenderkit/upload.py b/blenderkit/upload.py
index d4570bf3..887ffe57 100644
--- a/blenderkit/upload.py
+++ b/blenderkit/upload.py
@@ -63,6 +63,7 @@ def get_app_version():
return '%i.%i.%i' % (ver[0], ver[1], ver[2])
+
def add_version(data):
app_version = get_app_version()
addon_version = version_checker.get_addon_version()
diff --git a/blenderkit/utils.py b/blenderkit/utils.py
index d5bdd84b..c16bc017 100644
--- a/blenderkit/utils.py
+++ b/blenderkit/utils.py
@@ -39,7 +39,9 @@ NORMAL_PRIORITY_CLASS = 0x00000020
REALTIME_PRIORITY_CLASS = 0x00000100
supported_material_click = ('MESH', 'CURVE', 'META', 'FONT', 'SURFACE', 'VOLUME', 'GPENCIL')
-supported_material_drag = ('MESH', 'CURVE', 'META', 'FONT','SURFACE', 'VOLUME', 'GPENCIL')
+supported_material_drag = ('MESH', 'CURVE', 'META', 'FONT', 'SURFACE', 'VOLUME', 'GPENCIL')
+
+
# supported_material_drag = ('MESH')
@@ -185,8 +187,8 @@ def get_search_props():
return props
-def get_active_asset_by_type(asset_type = 'model'):
- asset_type =asset_type.lower()
+def get_active_asset_by_type(asset_type='model'):
+ asset_type = asset_type.lower()
if asset_type == 'model':
if bpy.context.view_layer.objects.active is not None:
ob = get_active_model()
@@ -206,6 +208,7 @@ def get_active_asset_by_type(asset_type = 'model'):
return b
return None
+
def get_active_asset():
scene = bpy.context.scene
ui_props = scene.blenderkitUI
@@ -341,8 +344,8 @@ def get_hidden_texture(name, force_reload=False):
return t
-def img_to_preview(img, copy_original = False):
- if bpy.app.version[0]>=3:
+def img_to_preview(img, copy_original=False):
+ if bpy.app.version[0] >= 3:
img.preview_ensure()
if not copy_original:
return;
@@ -352,6 +355,7 @@ def img_to_preview(img, copy_original = False):
# img.preview.icon_size = (img.size[0], img.size[1])
# img.preview.icon_pixels_float = img.pixels[:]
+
def get_hidden_image(tpath, bdata_name, force_reload=False, colorspace='sRGB'):
if bdata_name[0] == '.':
hidden_name = bdata_name
@@ -709,11 +713,13 @@ def name_update(props):
# Here we actually rename assets datablocks, but don't do that with HDR's and possibly with others
asset.name = fname
+
def fmt_length(prop):
prop = str(round(prop, 2))
return prop
-def get_param(asset_data, parameter_name, default = None):
+
+def get_param(asset_data, parameter_name, default=None):
if not asset_data.get('parameters'):
# this can appear in older version files.
return default
@@ -793,6 +799,7 @@ 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')
@@ -802,6 +809,15 @@ def user_is_owner(asset_data=None):
return True
return False
+
+def asset_from_newer_blender_version(asset_data):
+ bver = bpy.app.version
+ aver = asset_data['sourceAppVersion'].split('.')
+ print(aver,bver)
+ bver_f = bver[0] + bver[1] * .01 + bver[2] * .0001
+ aver_f = int(aver[0]) + int(aver[1]) * .01 + int(aver[2]) * .0001
+ return aver_f>bver_f
+
def guard_from_crash():
'''
Blender tends to crash when trying to run some functions
@@ -861,10 +877,11 @@ def get_fake_context(context, area_type='VIEW_3D'):
# print(w,a,r)
return C_dict
+
# def is_url(text):
-def label_multiline(layout, text='', icon='NONE', width=-1, max_lines = 10):
+def label_multiline(layout, text='', icon='NONE', width=-1, max_lines=10):
'''
draw a ui label, but try to split it in multiple lines.
@@ -882,7 +899,7 @@ def label_multiline(layout, text='', icon='NONE', width=-1, max_lines = 10):
'''
if text.strip() == '':
return
- text = text.replace('\r\n','\n')
+ text = text.replace('\r\n', '\n')
lines = text.split('\n')
if width > 0:
threshold = int(width / 5.5)
@@ -891,7 +908,7 @@ def label_multiline(layout, text='', icon='NONE', width=-1, max_lines = 10):
li = 0
for l in lines:
# if is_url(l):
- li+=1
+ li += 1
while len(l) > threshold:
i = l.rfind(' ', 0, threshold)
if i < 1:
@@ -907,10 +924,9 @@ def label_multiline(layout, text='', icon='NONE', width=-1, max_lines = 10):
break;
layout.label(text=l, icon=icon)
icon = 'NONE'
- if li>max_lines:
+ if li > max_lines:
return True
-
def trace():
traceback.print_stack()