presets gui
This commit is contained in:
BIN
dist/text_texture_generator_v1.0.0.zip
vendored
BIN
dist/text_texture_generator_v1.0.0.zip
vendored
Binary file not shown.
BIN
dist/text_texture_generator_v1.0.0_free.zip
vendored
BIN
dist/text_texture_generator_v1.0.0_free.zip
vendored
Binary file not shown.
@@ -122,8 +122,7 @@ if PRESETS_AVAILABLE:
|
|||||||
TEXT_TEXTURE_OT_delete_preset,
|
TEXT_TEXTURE_OT_delete_preset,
|
||||||
TEXT_TEXTURE_OT_refresh_presets,
|
TEXT_TEXTURE_OT_refresh_presets,
|
||||||
TEXT_TEXTURE_OT_export_presets,
|
TEXT_TEXTURE_OT_export_presets,
|
||||||
TEXT_TEXTURE_OT_import_presets,
|
TEXT_TEXTURE_OT_import_presets
|
||||||
TEXT_TEXTURE_OT_show_migration_report
|
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
@@ -144,7 +143,6 @@ else:
|
|||||||
TEXT_TEXTURE_OT_refresh_presets = MockOperator
|
TEXT_TEXTURE_OT_refresh_presets = MockOperator
|
||||||
TEXT_TEXTURE_OT_export_presets = MockOperator
|
TEXT_TEXTURE_OT_export_presets = MockOperator
|
||||||
TEXT_TEXTURE_OT_import_presets = MockOperator
|
TEXT_TEXTURE_OT_import_presets = MockOperator
|
||||||
TEXT_TEXTURE_OT_show_migration_report = MockOperator
|
|
||||||
|
|
||||||
# Import UI panels and functions
|
# Import UI panels and functions
|
||||||
from .ui import (
|
from .ui import (
|
||||||
@@ -188,7 +186,6 @@ classes = (
|
|||||||
TEXT_TEXTURE_OT_refresh_presets,
|
TEXT_TEXTURE_OT_refresh_presets,
|
||||||
TEXT_TEXTURE_OT_export_presets,
|
TEXT_TEXTURE_OT_export_presets,
|
||||||
TEXT_TEXTURE_OT_import_presets,
|
TEXT_TEXTURE_OT_import_presets,
|
||||||
TEXT_TEXTURE_OT_show_migration_report,
|
|
||||||
TEXT_TEXTURE_PT_panel,
|
TEXT_TEXTURE_PT_panel,
|
||||||
TEXT_TEXTURE_PT_panel_3d,
|
TEXT_TEXTURE_PT_panel_3d,
|
||||||
TEXT_TEXTURE_PT_panel_properties,
|
TEXT_TEXTURE_PT_panel_properties,
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -821,36 +821,6 @@ class TEXT_TEXTURE_OT_import_presets(Operator):
|
|||||||
layout.prop(self, "import_mode")
|
layout.prop(self, "import_mode")
|
||||||
layout.prop(self, "import_to_blend")
|
layout.prop(self, "import_to_blend")
|
||||||
|
|
||||||
class TEXT_TEXTURE_OT_show_migration_report(Operator):
|
|
||||||
pass
|
|
||||||
"""Show migration report with backup and upgrade information"""
|
|
||||||
bl_idname = "text_texture.show_migration_report"
|
|
||||||
bl_label = "Show Migration Report"
|
|
||||||
bl_description = "Display information about preset migration and backups"
|
|
||||||
bl_options = {'REGISTER', 'UNDO'}
|
|
||||||
|
|
||||||
def execute(self, context):
|
|
||||||
pass
|
|
||||||
return {'FINISHED'}
|
|
||||||
|
|
||||||
def invoke(self, context, event):
|
|
||||||
pass
|
|
||||||
return context.window_manager.invoke_props_dialog(self, width=400)
|
|
||||||
|
|
||||||
def draw(self, context):
|
|
||||||
pass
|
|
||||||
layout = self.layout
|
|
||||||
layout.label(text="Migration Report", icon='INFO')
|
|
||||||
layout.separator()
|
|
||||||
layout.label(text="This addon has been upgraded to the new preset system.")
|
|
||||||
layout.label(text="Your existing presets have been preserved.")
|
|
||||||
layout.separator()
|
|
||||||
layout.label(text="Features:", icon='CHECKMARK')
|
|
||||||
layout.label(text="• Presets saved in blend files")
|
|
||||||
layout.label(text="• Cross-file preset sharing")
|
|
||||||
layout.label(text="• Automatic backup system")
|
|
||||||
layout.separator()
|
|
||||||
|
|
||||||
# Export all operator classes for wildcard imports
|
# Export all operator classes for wildcard imports
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'TEXT_TEXTURE_OT_save_preset',
|
'TEXT_TEXTURE_OT_save_preset',
|
||||||
@@ -860,5 +830,4 @@ __all__ = [
|
|||||||
'TEXT_TEXTURE_OT_refresh_presets',
|
'TEXT_TEXTURE_OT_refresh_presets',
|
||||||
'TEXT_TEXTURE_OT_export_presets',
|
'TEXT_TEXTURE_OT_export_presets',
|
||||||
'TEXT_TEXTURE_OT_import_presets',
|
'TEXT_TEXTURE_OT_import_presets',
|
||||||
'TEXT_TEXTURE_OT_show_migration_report',
|
|
||||||
]
|
]
|
||||||
Binary file not shown.
@@ -647,7 +647,7 @@ class TEXT_TEXTURE_Properties(PropertyGroup):
|
|||||||
|
|
||||||
# Save with blend file checkbox
|
# Save with blend file checkbox
|
||||||
save_with_blend_file: BoolProperty(
|
save_with_blend_file: BoolProperty(
|
||||||
name="Save with .blend file",
|
name="Project-specific (only available in this .blend file)",
|
||||||
description="Save this preset with the current .blend file instead of persistent storage",
|
description="Save this preset with the current .blend file instead of persistent storage",
|
||||||
default=False
|
default=False
|
||||||
)
|
)
|
||||||
|
|||||||
Binary file not shown.
@@ -471,7 +471,7 @@ def draw_presets_section(layout, props):
|
|||||||
text="Save", icon='FILE_NEW')
|
text="Save", icon='FILE_NEW')
|
||||||
|
|
||||||
# Save with blend file checkbox
|
# Save with blend file checkbox
|
||||||
layout.prop(props, "save_with_blend_file")
|
layout.prop(props, "save_with_blend_file", text="Project-specific (only available in this .blend file)")
|
||||||
|
|
||||||
layout.separator()
|
layout.separator()
|
||||||
|
|
||||||
@@ -489,19 +489,16 @@ def draw_presets_section(layout, props):
|
|||||||
utility_row = layout.row(align=True)
|
utility_row = layout.row(align=True)
|
||||||
|
|
||||||
refresh_lock = create_premium_lock_function()
|
refresh_lock = create_premium_lock_function()
|
||||||
migration_lock = create_premium_lock_function()
|
|
||||||
|
|
||||||
safe_operator_call(utility_row, "text_texture.refresh_presets", refresh_lock,
|
safe_operator_call(utility_row, "text_texture.refresh_presets", refresh_lock,
|
||||||
text="Refresh", icon='FILE_REFRESH')
|
text="Refresh", icon='FILE_REFRESH')
|
||||||
safe_operator_call(utility_row, "text_texture.show_migration_report", migration_lock,
|
|
||||||
text="Migration Report", icon='INFO')
|
|
||||||
|
|
||||||
layout.separator()
|
layout.separator()
|
||||||
|
|
||||||
# Load presets section - unified list
|
# Load presets section - unified list
|
||||||
if props.presets:
|
if props.presets:
|
||||||
pass
|
pass
|
||||||
layout.label(text=f"📁 Available Presets ({len(props.presets)}):", icon='PRESET')
|
layout.label(text="Presets", icon='PRESET')
|
||||||
|
|
||||||
# Sort presets alphabetically for consistent display
|
# Sort presets alphabetically for consistent display
|
||||||
sorted_presets = sorted(props.presets, key=lambda p: p.name.lower())
|
sorted_presets = sorted(props.presets, key=lambda p: p.name.lower())
|
||||||
@@ -511,18 +508,10 @@ def draw_presets_section(layout, props):
|
|||||||
row = layout.row(align=True)
|
row = layout.row(align=True)
|
||||||
row.scale_y = 0.9
|
row.scale_y = 0.9
|
||||||
|
|
||||||
# Storage indicator icon
|
# Load button - use safe operator call
|
||||||
if preset.source == 'BLEND_FILE':
|
|
||||||
pass
|
|
||||||
icon = '📄' # Blend file indicator
|
|
||||||
else:
|
|
||||||
pass
|
|
||||||
icon = '🏠' # Persistent storage indicator
|
|
||||||
|
|
||||||
# Load button with indicator - use safe operator call
|
|
||||||
load_lock = create_premium_lock_function()
|
load_lock = create_premium_lock_function()
|
||||||
load_btn = safe_operator_call(row, "text_texture.load_preset", load_lock,
|
load_btn = safe_operator_call(row, "text_texture.load_preset", load_lock,
|
||||||
text=f"{icon} {preset.name}")
|
text=preset.name)
|
||||||
if load_btn:
|
if load_btn:
|
||||||
load_btn.preset_name = preset.name
|
load_btn.preset_name = preset.name
|
||||||
|
|
||||||
@@ -541,22 +530,10 @@ def draw_presets_section(layout, props):
|
|||||||
if delete_btn:
|
if delete_btn:
|
||||||
delete_btn.preset_name = preset.name
|
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)")
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
layout.label(text="📂 No presets saved yet", icon='INFO')
|
layout.label(text="No presets yet")
|
||||||
layout.label(text="💡 Save your first preset above!", icon='LIGHT_DATA')
|
layout.label(text="Save your settings above to create your first preset.")
|
||||||
layout.separator()
|
|
||||||
info_box = layout.box()
|
|
||||||
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):
|
def draw_shader_section(layout, props):
|
||||||
pass
|
pass
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user