Skip to content

Phase 03 functional tools - #8

Merged
DandelionBold merged 7 commits into
mainfrom
phase-03-functional-tools
Sep 28, 2025
Merged

Phase 03 functional tools#8
DandelionBold merged 7 commits into
mainfrom
phase-03-functional-tools

Conversation

@DandelionBold

Copy link
Copy Markdown
Owner

No description provided.

- Create SplitPanel with media player-like interface
- Add timeline scrubber with frame navigation
- Implement play/pause controls with speed adjustment
- Add visual frame selection with start/end markers
- Create interactive timeline with drag-and-drop selection
- Add frame preview with canvas display
- Implement split options (format, quality, naming pattern)
- Add auto-loading of GIF from main dashboard
- Update main.py to handle split tool with directory output
- Fix ttk.Frame inheritance and grid layout issues

Features:
- Professional media player interface
- Timeline with visual frame selection
- Play/pause with speed control (0.1x to 3.0x)
- Frame-by-frame navigation
- Start/end marker selection
- Real-time selection info display
- Multiple output formats (PNG, JPG, BMP, TIFF)
- Quality control for lossy formats
- Custom naming patterns
- Auto-loading from main dashboard

The split tool now provides a professional video editor-like experience
for selecting and extracting specific frame ranges from GIFs.
- Fix naming pattern format from 'frame_{:04d}' to 'frame_{index:04d}'
- Remove invalid 'quality' parameter from split_gif function call
- Add progress callback support to split_gif function
- Update GifSplitter.split method to accept progress_callback
- Add progress updates in _split_frames method
- Fix split tool to output individual image files instead of GIF

The split tool now correctly outputs individual PNG/JPG/BMP/TIFF files
with proper naming patterns and progress tracking.
- Remove popup message when loading GIF in split tool
- Remove unused 'Batch Process' button from main toolbar
- Remove unused 'Process' button from main toolbar
- Remove unused batch processing methods (open_batch_dialog, process_file, etc.)
- Remove 'Batch Process' from File menu
- Keep functional buttons in split tool (Play/Pause, Stop, Load GIF)
- Streamline interface to focus on working tools

The interface is now cleaner with only functional elements visible.
- Remove create_batch_tools_tab method entirely
- Remove call to create_batch_tools_tab in main content
- Fix 'GifToolsApp' object has no attribute 'open_batch_resize_dialog' error
- Simplify interface to only show working tools

The application now starts without errors and only shows functional tools.
Split Modes:
1. Split into Two GIFs - Creates two separate GIF files at selected frame
2. Extract Selected Region - Creates new GIF with only selected frames
3. Remove Selected Region - Creates new GIF with everything except selected frames

Features:
- Radio button selection for split modes
- Dynamic UI that shows/hides format options based on mode
- Split into Two GIFs: Outputs 2 GIF files (part1.gif, part2.gif)
- Extract Selected Region: Outputs 1 GIF file with selected frames
- Remove Selected Region: Outputs 1 GIF file without selected frames
- Progress tracking for all modes
- Proper GIF preservation with durations and disposal

Technical Implementation:
- Added split_into_two, extract_region, remove_region methods to GifSplitter
- Updated split panel UI with mode selection
- Modified main.py to handle different split modes
- Added proper GIF saving with disposal=2, transparency=0
- Progress callbacks for all operations

The split tool now provides professional video editor-like functionality
for creating multiple GIFs or extracting/removing specific regions.
Split into Two GIFs Mode:
- Show single split point instead of region selection
- Orange split line with 'SPLIT' label on timeline
- Display 'Part 1: X frames | Part 2: Y frames' info
- Click timeline to set split point
- No format options (always outputs GIF)

Extract/Remove Selected Region Modes:
- Show region selection with green/red markers
- Display 'Selected: X frames' info
- Show format options (GIF, PNG, JPG, etc.)
- Drag to select frame ranges

UI Improvements:
- Dynamic timeline display based on selected mode
- Smart selection info updates
- Proper mode-specific settings handling
- Fixed process_btn reference errors

The split tool now provides intuitive interfaces for each mode:
- Simple split point for dividing GIFs
- Region selection for extracting/removing parts
- Implement split tool with media player interface and timeline
- Add three split modes: Split into Two GIFs, Extract Selected Region, Remove Selected Region
- Fix string division error in split tool execution
- Remove output format options, always output GIF files
- Update README.md with latest progress and correct repository URL
- Update project status with current phase completion
- Fix Path object handling in split tool functions
@DandelionBold
DandelionBold merged commit e8e6206 into main Sep 28, 2025
5 of 22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant