import bpy def get_parent_collection_names(collection, parent_names): for parent_collection in bpy.data.collections: if collection.name in parent_collection.children.keys(): parent_names.append(parent_collection.name) get_parent_collection_names(parent_collection, parent_names) return def turn_collection_hierarchy_into_path(obj): parent_collection = obj.users_collection[0] parent_names = [] parent_names.append(parent_collection.name) get_parent_collection_names(parent_collection, parent_names) parent_names.reverse() return '\\'.join(parent_names) def move_in_fontcollection(obj, fontcollection, scene): # print(turn_collection_hierarchy_into_path(obj)) if scene.collection.objects.find(obj.name) >= 0: scene.collection.objects.unlink(obj) if fontcollection.objects.find(obj.name) < 0: fontcollection.objects.link(obj) # TODO: move in glyphs # if fontcollection.objects.find("glyphs") < 0: # empty = bpy.data.objects.new("glyphs", None) # empty.empty_display_type = 'PLAIN_AXES' # fontcollection.objects.link(empty) # glyphs = fontcollection.objects.get("glyphs") # if obj.parent != glyphs: # obj.parent = glyphs def ShowMessageBox(title = "Message Box", icon = 'INFO', message=""): """Show a simple message box taken from `Link here `_ :param title: The title shown in the message top bar :type title: str :param icon: The icon to be shown in the message top bar :type icon: str :param message: lines of text to display, a.k.a. the message :type message: str or (str, str, ..) TIP: Check `Link blender icons `_ for icons you can use TIP: Or even better, check `Link this addons `_ to also see the icons. usage: .. code-block:: python myLines=("line 1","line 2","line 3") butils.ShowMessageBox(message=myLines) or: .. code-block:: python butils.ShowMessageBox(title="",message=("AAAAAH","NOOOOO"),icon=) """ myLines=message def draw(self, context): if isinstance(myLines, str): self.layout.label(text=myLines) elif hasattr(myLines, "__iter__"): for n in myLines: self.layout.label(text=n) bpy.context.window_manager.popup_menu(draw, title = title, icon = icon)