custom_shelf/properties.py
2025-12-01 15:34:07 +01:00

55 lines
1.8 KiB
Python

from .utils import *
from bpy.props import *
class CustomShelfSettings(bpy.types.PropertyGroup):
panel_list = []
# category_enum = EnumProperty(items = )
# tab_enum = EnumProperty(items = lambda s,c : [(f,f,"") for f in s.tabs])
# search = StringProperty(options = {"TEXTEDIT_UPDATE"})
# filter = BoolProperty(default = True)
# folders = PointerProperty(type= CustomShelfFolders)
# variables = bpy.props.PointerProperty(type= CustomShelfVariables)
class CustomShelfProps(bpy.types.PropertyGroup):
pass
class AdditionnalShelves(bpy.types.PropertyGroup):
path: StringProperty(name="Path", subtype="FILE_PATH")
class CustomShelfPrefs(bpy.types.AddonPreferences):
bl_idname = __package__
global_path = join(dirname(__file__), "shelves")
global_shelves: StringProperty(
name="Shelves Path", subtype="DIR_PATH", default=global_path
)
additionnal_shelves: CollectionProperty(type=AdditionnalShelves)
tag_filter: StringProperty()
def draw(self, context):
prefs = bpy.context.preferences.addons[__package__].preferences
layout = self.layout
layout.prop(self, "global_shelves")
row = layout.row(align=True)
row.operator("customshelf.add_shelves_folder", icon="ADD", text="")
row.label(text="Additionnal Shelves folder")
for i, shelf in enumerate(prefs.additionnal_shelves):
row = layout.row(align=True)
row.prop(shelf, "path")
row.operator(
"customshelf.remove_shelves_folder", icon="REMOVE", text=""
).index = i
row = layout.row(align=True)
row.prop(self, "tag_filter")
row.operator_menu_enum(
"customshelf.set_tag_filter", "tag_filter", icon="DOWNARROW_HLT", text=""
)