presets
This commit is contained in:
@@ -168,15 +168,24 @@ class TEXT_TEXTURE_OT_save_preset(Operator):
|
||||
existing_preset = preset
|
||||
break
|
||||
|
||||
target_index = None
|
||||
|
||||
if not existing_preset:
|
||||
pass
|
||||
preset = props.presets.add()
|
||||
preset.name = preset_name
|
||||
preset.source = 'BLEND_FILE' if props.save_with_blend_file else 'PERSISTENT_FILE'
|
||||
target_index = len(props.presets) - 1
|
||||
else:
|
||||
pass
|
||||
# Update source based on where it was saved
|
||||
existing_preset.source = 'BLEND_FILE' if props.save_with_blend_file else 'PERSISTENT_FILE'
|
||||
for idx, collection_preset in enumerate(props.presets):
|
||||
pass
|
||||
if collection_preset.name == preset_name:
|
||||
pass
|
||||
target_index = idx
|
||||
break
|
||||
|
||||
# Provide clear feedback
|
||||
location = "with .blend file" if props.save_with_blend_file else "to persistent storage"
|
||||
@@ -188,6 +197,13 @@ class TEXT_TEXTURE_OT_save_preset(Operator):
|
||||
pass
|
||||
self.report({'INFO'}, f"✅ Preset '{preset_name}' saved {location}")
|
||||
|
||||
if target_index is not None and hasattr(props, "active_preset_index"):
|
||||
pass
|
||||
props.active_preset_index = target_index
|
||||
if hasattr(props, "last_loaded_preset"):
|
||||
pass
|
||||
props.last_loaded_preset = preset_name
|
||||
|
||||
except (OSError, IOError, json.JSONEncodeError) as e:
|
||||
pass
|
||||
self.report({'ERROR'}, f"Failed to save preset: {str(e)}")
|
||||
@@ -234,6 +250,22 @@ class TEXT_TEXTURE_OT_save_preset_enter(Operator):
|
||||
# Delegate to the main save preset operator
|
||||
return bpy.ops.text_texture.save_preset('INVOKE_DEFAULT')
|
||||
|
||||
class TEXT_TEXTURE_OT_clear_preset_search(Operator):
|
||||
pass
|
||||
"""Clear the preset search filter"""
|
||||
bl_idname = "text_texture.clear_preset_search"
|
||||
bl_label = "Clear Preset Search"
|
||||
bl_description = "Reset the preset search field"
|
||||
bl_options = {'INTERNAL'}
|
||||
|
||||
def execute(self, context):
|
||||
pass
|
||||
props = context.scene.text_texture_props
|
||||
if hasattr(props, "preset_search_query"):
|
||||
pass
|
||||
props.preset_search_query = ""
|
||||
return {'FINISHED'}
|
||||
|
||||
class TEXT_TEXTURE_OT_load_preset(Operator):
|
||||
pass
|
||||
"""Load preset"""
|
||||
@@ -382,6 +414,18 @@ class TEXT_TEXTURE_OT_load_preset(Operator):
|
||||
from ..core.generation_engine import generate_preview
|
||||
generate_preview(props, props.preview_size if hasattr(props, 'preview_size') else 512, props.preview_size if hasattr(props, 'preview_size') else 512)
|
||||
|
||||
if hasattr(props, "last_loaded_preset"):
|
||||
pass
|
||||
props.last_loaded_preset = self.preset_name
|
||||
if hasattr(props, "active_preset_index"):
|
||||
pass
|
||||
for idx, preset in enumerate(props.presets):
|
||||
pass
|
||||
if preset.name == self.preset_name:
|
||||
pass
|
||||
props.active_preset_index = idx
|
||||
break
|
||||
|
||||
source_info = {
|
||||
'BLEND_FILE': "from blend file",
|
||||
'PERSISTENT_FILE': "from persistent storage",
|
||||
@@ -438,13 +482,27 @@ class TEXT_TEXTURE_OT_delete_preset(Operator):
|
||||
self.report({'WARNING'}, f"Preset '{self.preset_name}' not found in blend file or local storage")
|
||||
|
||||
# Remove from UI list
|
||||
removed_index = None
|
||||
for i, preset in enumerate(props.presets):
|
||||
pass
|
||||
if preset.name == self.preset_name:
|
||||
pass
|
||||
props.presets.remove(i)
|
||||
removed_index = i
|
||||
break
|
||||
|
||||
if hasattr(props, "last_loaded_preset") and props.last_loaded_preset == self.preset_name:
|
||||
pass
|
||||
props.last_loaded_preset = ""
|
||||
if removed_index is not None and hasattr(props, "active_preset_index"):
|
||||
pass
|
||||
if len(props.presets) == 0:
|
||||
pass
|
||||
props.active_preset_index = 0
|
||||
else:
|
||||
pass
|
||||
props.active_preset_index = min(removed_index, len(props.presets) - 1)
|
||||
|
||||
delete_info = []
|
||||
if blend_deleted:
|
||||
pass
|
||||
@@ -809,6 +867,7 @@ class TEXT_TEXTURE_OT_import_presets(Operator):
|
||||
__all__ = [
|
||||
'TEXT_TEXTURE_OT_save_preset',
|
||||
'TEXT_TEXTURE_OT_save_preset_enter',
|
||||
'TEXT_TEXTURE_OT_clear_preset_search',
|
||||
'TEXT_TEXTURE_OT_load_preset',
|
||||
'TEXT_TEXTURE_OT_delete_preset',
|
||||
'TEXT_TEXTURE_OT_refresh_presets',
|
||||
|
||||
Reference in New Issue
Block a user