- Remove all automatic preview window close+reopen on file change
- Remove preview reopen from preset New/Clone/Rename/Delete actions
- Preview title may be stale after preset change but window stays in place
- User can press Fit to update title when desired
- Preset combobox now reflects current preset correctly
- Selecting different preset in Config auto-loads it on OK
- Preset buttons changed to: New, Clone, Rename, Delete (removed Save/Load)
- New creates preset with default values
- Clone copies current preset state to new name
- Rename changes preset name and updates file associations
- Delete removes preset (Default protected) and switches to Default
- Window titles show preset: "AniPhallow (PresetName)"
- Lock file prevents duplicate plugin instances
- Auto-save (saveAll) called on every state-modifying action
- addPresetName/removePresetName helpers for sorted preset list
Major features:
- Presets system: save/load/clone/delete animation configurations
- Each preset stored as .ini in ~/.config/aseprite/aniphallow_presets/
- Master file tracks global prefs and file-to-preset associations
- Config dialog has Presets section with combobox + Save/Load/Clone/Delete
- Default preset created automatically on first run
- Migration from old single prefs file to preset system
- File-to-preset association: each .aseprite file remembers its preset
- Auto-detects file changes and loads appropriate preset
- Preset association saved when loading a preset
- Plugin toggle: running the plugin again closes it (no duplicate windows)
- Preview title fixed to "AniPhallow Preview" (always)
- Animation name label shown below canvas in Show One mode
- Show One navigation (L/R click) no longer closes/reopens window
- Config dialog reorganized: Presets > Animations > Optimization > Preview
- Independent zoom for Show All and Show One modes (saved separately)
- "Single" button renamed to "Show One"
- <- -> navigation buttons on a new row (not inline with Setup/Show One)
- Animation name label shown below canvas in Show One mode
- Adjust button at bottom re-fits preview window to content size
- previewZoomAll and previewZoomOne saved/loaded in prefs
- Frame offset indicator: cyan dot on thumbnails when offX/offY != 0
- GB canvases taller (220px each) to match Animations tab height
- Preview layout config: auto/fixedCols/fixedRows with value setting
- Preview Show All/Single toggle with <- -> navigation in single mode
- Preview canvas resizes responsively on zoom and mode change
- calcPreviewSize() and getPreviewGrid() helpers for layout math
- Preview zoom and mode saved/loaded in preferences
- previewSingleIdx clamped on load and mode switch
- Plugin now opens Preview Window first on launch (primary view)
- Preview window has "Setup" button to open the Main Dialog
- Main dialog tabs: [Animations] [GB] + [Preview] toggle button
- Preview button toggles separate preview window on/off
- Tab order: Animations, GB, Preview (GB is now second)
- Removed embedded Preview tab content (redundant with window)
- Fix Analyze nil compare error (GB_OPT_H now module-level)
- Labels changed to separators for consistent styling
- Frames label: "Frames (L-click=select, R-click=remove, drag=reorder)"
- GB canvases taller (200px each) to match Animations tab height
- refreshSource() moved to module level for both windows
- getFrameImageGlobal() at module level for shared access
- Cross-dialog updates (preview close updates main dialog button)
- Preview window has its own refresh timer for source updates
- Animation buttons renamed to +/-/Rename/Clone for compact layout
- Clone button: copy animation with optional Flip X on all frames
- Frame buttons renamed to FlipX/FlipY/<-/->/Del to save width
- Pixel-perfect integer scaling for frame thumbnails (THUMB_SIZE=24)
- Source canvas taller by default (400px) and configurable in Config
- Preview tab: L-click selects animation, Up/Down/Left/Right/Reset
buttons offset sprites visually for jump effects (preview-only)
- Preview offsets also apply in separate preview window
- Config: Zoom removed (wheel only), labels Sprite W/H, GB Tile W/H
separate, three view height options (Source/Occurrences/Optimized)
- Config button visible on all tabs (not just Animations)
- GB: Silhouette checkbox before Compress, separator text L-click=select
- GB: clicking already-selected tile in Optimized deselects it
- GB tile analysis fully supports non-square tiles (W != H)
- Copy to clipboard: fixed white background on transparent areas
- Tab mismatch fix: always opens on Animations tab
- Fix Save as Layer: convert image to sprite color mode before creating cel
- Remove "Selected ->" label (brackets on buttons suffice)
- Add Remove button and right-click to remove frames in strip
- Add Move Animation Up/Down buttons for reordering animations
- Add configurable source viewport height and auto-resize with zoom
- Rename GB buttons: Analyze Duplicates, Analyze Similars, Similarity >=X%
- Reorder GB buttons: Analyze -> Similars -> Similarity threshold
- Use distinct colors per group for similar tile highlighting (union-find)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix Save Layer creating empty layers (clone image before creating cel)
- Fix Copy to Clipboard (use MaskAll instead of SelectAll)
- Remove Layer saved alert dialog
- Rename tabs: Setup to Animations, Render to Preview
- Config button now visible on all tabs
- Animation selection: Add/Remove buttons, brackets on selected, Selected label
- Delete animation now asks for confirmation
- Source canvas: left-click add or scroll drag, mouse wheel zoom
- Frames strip: click to select, drag and drop to reorder frames
- New frame actions: Flip X, Flip Y, Move Left, Move Right, Clear Anim
- Added vertical flip support for frames
- Removed destructive Clear All button
- Added Preview canvas in Animations tab with wheel zoom
- Updated all hint labels to be more descriptive
- Backward-compatible prefs migration for old tab names
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>