Improve add-on UI error message
Show the paths of the duplicate addons D791 by @gregzaal
This commit is contained in:
parent
0561aa771b
commit
112e4de885
|
@ -31,8 +31,9 @@ __all__ = (
|
|||
import bpy as _bpy
|
||||
_user_preferences = _bpy.context.user_preferences
|
||||
|
||||
error_duplicates = False
|
||||
error_encoding = False
|
||||
# (name, file, path)
|
||||
error_duplicates = []
|
||||
addons_fake_modules = {}
|
||||
|
||||
|
||||
|
@ -57,12 +58,11 @@ def paths():
|
|||
|
||||
|
||||
def modules_refresh(module_cache=addons_fake_modules):
|
||||
global error_duplicates
|
||||
global error_encoding
|
||||
import os
|
||||
|
||||
error_duplicates = False
|
||||
error_encoding = False
|
||||
error_duplicates.clear()
|
||||
|
||||
path_list = paths()
|
||||
|
||||
|
@ -168,7 +168,7 @@ def modules_refresh(module_cache=addons_fake_modules):
|
|||
if mod.__file__ != mod_path:
|
||||
print("multiple addons with the same name:\n %r\n %r" %
|
||||
(mod.__file__, mod_path))
|
||||
error_duplicates = True
|
||||
error_duplicates.append((mod.bl_info["name"], mod.__file__, mod_path))
|
||||
|
||||
elif mod.__time__ != os.path.getmtime(mod_path):
|
||||
print("reloading addon:",
|
||||
|
|
|
@ -1317,11 +1317,18 @@ class USERPREF_PT_addons(Panel):
|
|||
|
||||
# set in addon_utils.modules_refresh()
|
||||
if addon_utils.error_duplicates:
|
||||
self.draw_error(col,
|
||||
"Multiple addons using the same name found!\n"
|
||||
"likely a problem with the script search path.\n"
|
||||
"(see console for details)",
|
||||
)
|
||||
box = col.box()
|
||||
row = box.row()
|
||||
row.label("Multiple addons with the same name found!")
|
||||
row.label(icon='ERROR')
|
||||
box.label("Please delete one of each pair:")
|
||||
for (addon_name, addon_file, addon_path) in addon_utils.error_duplicates:
|
||||
box.separator()
|
||||
sub_col = box.column(align=True)
|
||||
sub_col.label(addon_name + ":")
|
||||
sub_col.label(" " + addon_file)
|
||||
sub_col.label(" " + addon_path)
|
||||
|
||||
|
||||
if addon_utils.error_encoding:
|
||||
self.draw_error(col,
|
||||
|
|
Loading…
Reference in New Issue