deployment
This commit is contained in:
100
src/ui/panels.py
100
src/ui/panels.py
@@ -242,12 +242,15 @@ def draw_preview_options_section(layout, props):
|
||||
layout.prop(props, "preview_bg_color2", text="Color 2")
|
||||
|
||||
def draw_presets_section(layout, props):
|
||||
"""Draw presets save/load controls"""
|
||||
"""Draw unified presets save/load controls"""
|
||||
# Save preset section
|
||||
save_row = layout.row(align=True)
|
||||
save_row.prop(props, "new_preset_name", text="", placeholder="Preset Name")
|
||||
save_row.operator("text_texture.save_preset", text="Save", icon='FILE_NEW')
|
||||
|
||||
# Save with blend file checkbox
|
||||
layout.prop(props, "save_with_blend_file")
|
||||
|
||||
layout.separator()
|
||||
|
||||
# Import/Export and refresh buttons
|
||||
@@ -261,76 +264,51 @@ def draw_presets_section(layout, props):
|
||||
|
||||
layout.separator()
|
||||
|
||||
# Load presets section
|
||||
# Load presets section - unified list
|
||||
if props.presets:
|
||||
layout.label(text=f"📁 Saved Presets ({len(props.presets)}):", icon='PRESET')
|
||||
layout.label(text=f"📁 Available Presets ({len(props.presets)}):", icon='PRESET')
|
||||
|
||||
# Separate presets by source
|
||||
blend_presets = [p for p in props.presets if p.source == 'BLEND_FILE']
|
||||
persistent_presets = [p for p in props.presets if p.source == 'PERSISTENT_FILE']
|
||||
local_presets = [p for p in props.presets if p.source == 'LOCAL_FILE']
|
||||
# Sort presets alphabetically for consistent display
|
||||
sorted_presets = sorted(props.presets, key=lambda p: p.name.lower())
|
||||
|
||||
# Show blend file presets first
|
||||
if blend_presets:
|
||||
layout.label(text="🎯 Blend File Presets (travel with file):", icon='FILE_BLEND')
|
||||
for preset in blend_presets:
|
||||
row = layout.row()
|
||||
load_btn = row.operator("text_texture.load_preset", text=f"📋 {preset.name}")
|
||||
load_btn.preset_name = preset.name
|
||||
|
||||
# Quick overwrite button
|
||||
overwrite_btn = row.operator("text_texture.save_preset", text="", icon='FILE_REFRESH')
|
||||
overwrite_btn.overwrite = True
|
||||
# Set the preset name so it can be overwritten
|
||||
overwrite_btn.preset_name = preset.name
|
||||
|
||||
delete_btn = row.operator("text_texture.delete_preset", text="", icon='TRASH')
|
||||
delete_btn.preset_name = preset.name
|
||||
for preset in sorted_presets:
|
||||
row = layout.row(align=True)
|
||||
row.scale_y = 0.9
|
||||
|
||||
# Storage indicator icon
|
||||
if preset.source == 'BLEND_FILE':
|
||||
icon = '📄' # Blend file indicator
|
||||
else:
|
||||
icon = '🏠' # Persistent storage indicator
|
||||
|
||||
# Load button with indicator
|
||||
load_btn = row.operator("text_texture.load_preset", text=f"{icon} {preset.name}")
|
||||
load_btn.preset_name = preset.name
|
||||
|
||||
# Quick overwrite button
|
||||
overwrite_btn = row.operator("text_texture.save_preset", text="", icon='FILE_REFRESH')
|
||||
overwrite_btn.overwrite = True
|
||||
overwrite_btn.preset_name = preset.name
|
||||
|
||||
# Delete button
|
||||
delete_btn = row.operator("text_texture.delete_preset", text="", icon='TRASH')
|
||||
delete_btn.preset_name = preset.name
|
||||
|
||||
# Show persistent presets second
|
||||
if persistent_presets:
|
||||
if blend_presets:
|
||||
layout.separator()
|
||||
layout.label(text="🛡️ Persistent Presets (survive addon updates):", icon='PREFERENCES')
|
||||
for preset in persistent_presets:
|
||||
row = layout.row()
|
||||
load_btn = row.operator("text_texture.load_preset", text=f"📋 {preset.name}")
|
||||
load_btn.preset_name = preset.name
|
||||
|
||||
# Quick overwrite button
|
||||
overwrite_btn = row.operator("text_texture.save_preset", text="", icon='FILE_REFRESH')
|
||||
overwrite_btn.overwrite = True
|
||||
# Set the preset name so it can be overwritten
|
||||
overwrite_btn.preset_name = preset.name
|
||||
|
||||
delete_btn = row.operator("text_texture.delete_preset", text="", icon='TRASH')
|
||||
delete_btn.preset_name = preset.name
|
||||
# Legend for storage indicators
|
||||
layout.separator()
|
||||
legend_box = layout.box()
|
||||
legend_box.scale_y = 0.8
|
||||
legend_box.label(text="Storage Indicators:", icon='INFO')
|
||||
legend_box.label(text="🏠 Persistent (survives addon updates)")
|
||||
legend_box.label(text="📄 Blend file (travels with .blend file)")
|
||||
|
||||
# Show local presets third
|
||||
if local_presets:
|
||||
if blend_presets or persistent_presets:
|
||||
layout.separator()
|
||||
layout.label(text="💻 Local Presets (this machine only):", icon='DISK_DRIVE')
|
||||
for preset in local_presets:
|
||||
row = layout.row()
|
||||
load_btn = row.operator("text_texture.load_preset", text=f"📋 {preset.name}")
|
||||
load_btn.preset_name = preset.name
|
||||
|
||||
# Quick overwrite button
|
||||
overwrite_btn = row.operator("text_texture.save_preset", text="", icon='FILE_REFRESH')
|
||||
overwrite_btn.overwrite = True
|
||||
# Set the preset name so it can be overwritten
|
||||
overwrite_btn.preset_name = preset.name
|
||||
|
||||
delete_btn = row.operator("text_texture.delete_preset", text="", icon='TRASH')
|
||||
delete_btn.preset_name = preset.name
|
||||
else:
|
||||
layout.label(text="📂 No presets saved yet", icon='INFO')
|
||||
layout.label(text="💡 Save your first preset above!", icon='LIGHT_DATA')
|
||||
layout.separator()
|
||||
info_box = layout.box()
|
||||
info_box.label(text="ℹ️ Presets are now saved in the blend file", icon='INFO')
|
||||
info_box.label(text="They will travel with your .blend file!")
|
||||
info_box.label(text="ℹ️ Presets: Persistent by default, blend file optional", icon='INFO')
|
||||
info_box.label(text="Check the box to save with your .blend file!")
|
||||
|
||||
def draw_shader_section(layout, props):
|
||||
"""Draw shader generation controls"""
|
||||
|
||||
Reference in New Issue
Block a user