Commit Graph

99 Commits

Author SHA1 Message Date
phantom d9cae597f9 feat(iced): implement shape_sync bidirectional sync 2026-07-16 05:33:05 +03:00
phantom e53d144626 feat(iced): implement full geometry panel with all vector shape controls
- Shape list with selection and delete button (B1)
- Boolean operations: Union/Intersect/Subtract/Xor (B7)
- Bounds editing with X1/Y1/X2/Y2 sliders and size display (B2)
- Fill toggle + fill color with RGB sliders (B3)
- Stroke color with RGB sliders (B4)
- Opacity and Hardness sliders (B5)
- Line Cap controls for Line shapes (B6)
2026-07-16 05:26:54 +03:00
phantom 4f05745255 feat(iced): add Apply/Cancel overlay and shape deletion 2026-07-16 05:17:52 +03:00
phantom 76da953a17 feat(iced): implement VectorEditHandle rendering and drag/resize/rotate 2026-07-16 05:05:21 +03:00
phantom f375048eac feat(iced): implement VectorSelect click-to-select with shape hit-testing 2026-07-16 04:51:30 +03:00
phantom eb01ec98e1 migrate : glm and gemini pro . no proper achievements 2026-07-15 19:44:02 +03:00
phantom 70084faf0e feat(iced): parity improvements for canvas, tools, settings and sidebar 2026-07-15 19:16:26 +03:00
phantom defcabd069 feat(iced): add all keyboard shortcuts from egui 2026-07-15 17:59:32 +03:00
phantom 13f6a62085 feat(iced): add missing dialogs (Image Size, Canvas Size, About) 2026-07-15 17:54:36 +03:00
phantom 45f222b4a0 feat(iced): add internationalization support 2026-07-15 17:48:54 +03:00
phantom 89912e2bc3 feat(iced): add ABR brush import 2026-07-15 17:42:05 +03:00
phantom 3c5a9e32a1 feat(iced): add dock profile management 2026-07-15 17:35:34 +03:00
phantom 6d51ee528a fix(iced): add viewer keyboard navigation and wire lazy loading 2026-07-15 17:27:08 +03:00
phantom a91fdf295f feat(iced): implement FastStone-like image viewer 2026-07-15 17:19:26 +03:00
phantom 3bc5966630 feat(iced): implement AI script generator with working LLM calls 2026-07-15 17:02:06 +03:00
phantom 827d9b1742 feat(iced): implement full script editor with line numbers and error highlighting 2026-07-15 16:54:42 +03:00
phantom 828ff4b6af fix(iced): register script module in main.rs 2026-07-15 16:39:33 +03:00
phantom 2646d962d2 feat(iced): port full DSL parser and executor to ICED 2026-07-15 16:37:04 +03:00
phantom ba6a7f8de2 feat(iced): implement AI chat with streaming SSE and tool execution 2026-07-15 16:31:25 +03:00
phantom f2b03265ba feat(iced): add filter instant preview 2026-07-15 16:17:43 +03:00
phantom c7082046aa feat(iced): add filter parameter panels for all 25+ filters
- Create filter_params.rs with per-filter parameter editing UI
- Support all FilterType variants: blur, sharpen, pixelate, distort,
  stylize, color/light adjustments, dehaze, noise pattern
- Float/int sliders with labels and numeric display
- Toggle buttons for boolean params and mode selectors
- Integrate parameter panel into filters.rs below the filter list
- Update dock/view.rs to pass filter_params to the filters panel
2026-07-15 16:11:27 +03:00
phantom 4f04fbda11 fix(iced): clear selection handle on deselect and Escape
- Deselect handler now clears selection_transform and transform_drag_handle
- Escape key (MenuClose) now cancels active transform before closing menus
- Ensures selection handles are properly cleaned up when deselecting
2026-07-15 15:17:25 +03:00
phantom 1fd0c5291a feat(iced): add marching ants animation for selection
- Added marching_ants_offset to HcieIcedApp for animation state
- Added selection_bounds field to IcedDocument for persistent selection display
- Updated OverlayProgram to draw animated marching ants (black + white dashed lines)
- Added timer subscription for continuous animation when selection is active
- Updated SelectAll/Deselect handlers to properly manage selection state
- Selection now remains visible after creation with animated border
2026-07-15 04:11:48 +03:00
phantom 513f4cdb9b docs(iced): add documentation for selection features 2026-07-15 03:36:54 +03:00
phantom 35cfcb1ddd test(iced): add selection feature tests 2026-07-15 03:34:13 +03:00
phantom 12ccbf2688 feat(iced): add keyboard shortcuts for selection operations 2026-07-15 03:31:13 +03:00
phantom 611a6655da feat(iced): implement selection menu operations
- Add Inverse selection (Shift+Ctrl+I) with engine.invert_selection()
- Add Shrink, Feather, Border, Smooth menu items with parameter dialogs
- Implement selection_border() and selection_smooth() in engine API
- Implement border_mask() and smooth_mask() in hcie-selection crate
- Update SelectionOpApply handler for all selection operations
2026-07-15 03:26:07 +03:00
phantom 017f6f3dd3 feat(iced): fix crop tool with proper handles, keyboard, and mouse events
- Add CropDragStart, CropDragMove, CropDragEnd, CropConfirm, CropCancel messages
- Implement crop overlay with 8 handles and rule-of-thirds grid
- Wire Enter key to confirm crop and Escape to cancel crop
- Wire mouse events for crop drag operations
- Fix CropState per-document isolation
- Add darkened area outside crop for visual clarity
2026-07-15 03:21:46 +03:00
phantom 80e0637271 feat(iced): implement selection-aware copy/paste 2026-07-15 03:15:20 +03:00
phantom f232615991 feat(iced): implement transform drag messages and handlers 2026-07-15 03:11:45 +03:00
phantom 56bbcdf356 feat(iced): add transform handle hit-testing 2026-07-15 03:09:03 +03:00
phantom a8c1772807 feat(iced): draw transform handles in selection overlay 2026-07-15 03:07:33 +03:00
phantom 7bff36d006 fix: add selection_mask and selection_bounds fields to IcedDocument
These fields are required by the spec (section S2) but were missed during
initial implementation. They support selection mask alpha channel data
and selection bounding box coordinates.
2026-07-15 03:04:50 +03:00
phantom f30858c65d feat(iced): add selection state types for transform, crop 2026-07-15 03:01:25 +03:00
phantom 4dccf18743 Implement Photopea theme and tool settings panel
- Added Photopea theme implementation report and design specifications.
- Created tool options and settings panels to match Photopea's layout.
- Implemented settings persistence to save and load user preferences.
- Updated toolbar to include SVG icons and tool options in a single row.
- Enhanced tool settings with specific parameters for each tool type.
- Added functionality for resetting tool settings to defaults.
2026-07-14 14:14:10 +03:00
phantom 58599bf8f9 feat: Enhance Bevel & Emboss effect with contour support and algorithm improvements
- Implemented contour lookup functionality for Bevel & Emboss effect to allow for custom contour curves.
- Added contour parameter to LayerStyle and updated related structures and functions.
- Improved emboss algorithm by fixing height field calculations and ensuring proper handling of outside pixels.
- Introduced tilt component for 3D emboss effect, enhancing visual depth.
- Optimized MAE grid search parameters for better performance and accuracy.
- Expanded Iced GUI panel for Bevel & Emboss to include contour selection and additional styling options.
- Updated example scripts to reflect changes in the API and new features.
2026-07-14 00:36:09 +03:00
phantom 5e03065165 bevel and emboss geliştirme 2026-07-13 20:33:39 +03:00
phantom 2284a7d81f gemini feat: optimize drawing performance by caching layer styles during strokes and improve UI/UX for layer styles and menus, improved drop shadow 2026-07-13 14:37:22 +03:00
phantom 356fac571d mimo 2026-07-13 06:40:14 +03:00
phantom a70bedd6bb feat: initialize window ID on startup and batch keyboard subscription with additional event handling 2026-07-12 03:59:24 +03:00
phantom 266183a7ff feat: optimize GUI rendering with GPU persistent textures, incremental dirty-region updates, and coordinate-aligned viewport mapping 2026-07-12 03:45:41 +03:00
phantom 2f9a3017ca feat: implement incremental dirty-region canvas updates with custom WGPU shader pipeline 2026-07-12 03:19:09 +03:00
phantom 660694f00f Refactor styles and implement new canvas viewport
- Updated styles in `styles.rs` to include new pane and canvas backgrounds, while marking unused functions with `#[allow(dead_code)]`.
- Modified `text_editor.rs` to suppress warnings for unused function parameters.
- Enhanced `title_bar.rs` to create a unified title/menu bar with improved hover states and draggable functionality.
- Simplified `sidebar.rs` to always use a single-column layout and improved tool button styling with hover feedback.
- Added a new `viewport.rs` file to implement a custom canvas viewport widget for zoom and pan rendering, replacing the previous layout-based approach.
- Updated theme management in `theme.rs` to suppress warnings for unused methods.
- Adjusted line count report to reflect recent changes in codebase.
2026-07-12 02:05:31 +03:00
phantom f4ad22b55b Add Iced panel adapter and AI chat/script panels
- Implemented a theme system in `iced-panel-adapter` for consistent styling across panels.
- Created `iced-panel-ai-chat` for an AI assistant interface, including message handling and UI components.
- Developed `iced-panel-script` for a DSL editor with execution capabilities, allowing procedural drawing commands.
- Introduced message types for interaction in both chat and script panels.
- Added color and theme management for improved visual consistency.
2026-07-11 18:13:03 +03:00
phantom 0d1b0eae4c fix: optimize brush stroke handling and improve cursor preview
- Changed default VISION_BACKEND from CPU to GPU for better performance.
- Made `map_brush_style` public to allow external access.
- Updated `Engine` struct to use pooled buffers for stroke snapshots, reducing memory allocations during brush strokes.
- Introduced `CompositeSnapshot` for efficient background compositing without blocking the UI thread.
- Implemented `SendPtr` for safe raw pointer handling across threads.
- Enhanced `commit_pending_history` to recycle buffers and improve performance.
- Fixed cursor preview issues for procedural brushes by removing unnecessary preset synchronization.
- Added tests and documentation for new features and performance improvements.
2026-07-11 08:53:17 +03:00
phantom 089ce00b49 Refactor and enhance various components across the application
- Removed obsolete plans for stroke tuning, commit regression gate, and wxPlainSlider port.
- Updated scrollable panel functionality to include optional scrollbar visibility.
- Enhanced brush panel to filter brush styles by category for improved user experience.
- Adjusted canvas rendering logic to prevent UI freezes during active drawing.
- Modified stroke brush logic to allow single dab drawing at the current position when no movement occurs.
2026-07-10 02:02:21 +03:00
phantom 07a9b35208 feat: Add theme and font management for egui GUI
- Introduced `theme.rs` to handle visual themes, font discovery, and application of theme colors.
- Implemented system font registration for Linux, macOS, and Windows.
- Added `apply_theme` function to configure egui visuals based on selected theme presets.

feat: Implement interactive tool state management

- Created `tool_state.rs` to manage runtime tool, selection, and transform states.
- Defined `ToolState` struct to encapsulate active tool, color settings, drawing states, and AI panel states.
- Included functionality for managing brush presets, text editing, and selection transformations.

feat: Add utility functions for image and file handling

- Developed `utils.rs` with stateless helper functions for color formatting, drawing icons, and cropping images.
- Implemented save dialog builders and error handling for file operations.
- Added flood fill functionality for composite RGBA pixels.

test: Add unit test for bitmap brush stamp functionality

- Created `bitmap_brush_stamp.rs` to verify the behavior of bitmap brush stamping in the engine.
- Ensured that the painted area matches expected dimensions and characteristics.
2026-07-10 01:23:47 +03:00
phantom e88a2be508 Refactor code structure for improved readability and maintainability 2026-07-09 12:09:05 +03:00
phantom 7ace048d94 init 2026-07-09 02:59:53 +03:00