Commit Graph

69 Commits

Author SHA1 Message Date
phantom 3659b886ff Refactor and enhance the Iced GUI with new features and improvements
- Improved layout and styling in filter_params.rs for better visual consistency.
- Enhanced filters.rs to ensure scrollable parameters fill the available width.
- Added a new Custom Shapes panel to display user-defined SVG shapes.
- Updated menus.rs to include a new Custom Shapes menu item and adjusted related logic.
- Modified properties.rs to support additional spray tool properties (particle size and density).
- Adjusted title_bar.rs for improved menu button dimensions and layout.
- Enhanced toolbar.rs to include spray tool options in the toolbar.
- Fixed color persistence issues in settings.rs to ensure colors are saved and loaded correctly.
- Updated plain_slider.rs to ensure sliders utilize the full width of their containers.
- Created a visual polish plan to address various UI/UX issues and improve overall usability.
2026-07-20 20:24:40 +03:00
phantom 2fb47520b3 feat(svg-editor): implement interactive SVG node editor with parsing and editing capabilities
feat(debug-logger): add DebugSignalLogger plugin for event logging and inspection

feat(plugins): introduce built-in plugins module and integrate debug logger

feat(plugin-integration): create integration layer for mapping Iced Messages to CoreEvents

feat(plugin-registry): establish PluginRegistry for managing plugins and event dispatching
2026-07-20 01:43:22 +03:00
phantom 6e0d179be9 feat(svg-editor): Implement SVG shape loading and editing functionality
- Add SVG shape loading from disk, allowing users to customize shapes by placing SVG files in the designated directory.
- Introduce a new `ShapeCatalog` to manage SVG shapes, prioritizing user-defined shapes over built-in templates.
- Implement an SVG editor with node-based editing capabilities, enabling users to manipulate SVG paths directly.
- Create a new `SvgEditable` structure to represent editable SVG shapes, supporting operations like adding, removing, and moving nodes.
- Enhance the GUI with an SVG editor panel for visual editing of SVG shapes, including controls for node manipulation and saving changes.
- Ensure compatibility with existing shape tools and maintain a seamless user experience across the application.
2026-07-19 13:50:17 +03:00
phantom 5632c916ee feat: introduce SVG-based complex vector shapes
- Added `SvgShape` variant to `VectorShape` in `hcie-protocol`, allowing for SVG rendering of complex shapes.
- Updated serialization to skip old shape variants for backward compatibility.
- Implemented SVG generation functions in `svg_templates.rs` for various shapes (arrow, star, rhombus, etc.).
- Created `svg_render.rs` to parse SVG strings and tessellate paths using `usvg`.
- Modified rendering logic in `hcie-vector` to handle `SvgShape` and integrate with existing shape rendering.
- Updated shape creation API in `hcie-engine-api` to support SVG shapes.
- Enhanced property editing and shape synchronization in both `hcie-egui-app` and `hcie-iced-app` to accommodate new SVG shapes.
- Added comprehensive documentation for new features and changes.
2026-07-19 02:44:59 +03:00
phantom e90cb2d31d refactor: replace standard sliders with PlainSlider for better UI consistency 2026-07-19 01:53:51 +03:00
phantom 9388e6f096 GOOD Refactor GUI components and add PlainSlider widget
- Added a new `PlainSlider` widget for keyboard-editable numeric sliders.
- Updated various panels to utilize the new `PlainSlider` for better user interaction.
- Removed unused code and dead code warnings across multiple files.
- Improved organization of modules by adding a `widgets` module.
- Cleaned up imports in several files to streamline the codebase.
- Added Qodana configuration file for code analysis and quality checks.
2026-07-19 00:55:40 +03:00
phantom bbabd2acdb Refactor and enhance GUI components
- Improved code readability by formatting function parameters and conditionals.
- Updated tooltip implementations to use a consistent style across various components.
- Added vector angle property to tool settings and integrated it into the vector shape rendering logic.
- Enhanced the rendering of shapes such as Cross, Bolt, and Arrow4 to improve visual fidelity.
- Refactored dock and sidebar components for better organization and clarity.
- Fixed various minor issues and improved logging for better debugging.
2026-07-18 23:02:28 +03:00
phantom a2846d8b3a A GOOD MILESTONE : Refactor title bar and toolbar typography, improve tooltip styles, and enhance selection transform functionality
- Updated typography constants for menu bar and tooltips to improve readability and consistency.
- Adjusted button padding and widths in the title bar for better layout.
- Replaced tooltip implementation with a new balloon tooltip style for improved visual feedback.
- Enhanced selection transform logic to support rotation and resizing, ensuring accurate hit testing and bounds calculations.
- Added tests for selection clearing and transformed bounds to ensure functionality and prevent regressions.
- Introduced a new module for managing selection transform dirty bounds during interactive previews.
2026-07-18 20:31:31 +03:00
phantom b2c88e5471 feat(canvas): enhance composite shader with selection overlay and marching ants
- Updated the canvas composite shader to include a selection mask fill and animated marching ants border.
- Added new uniforms for animation time, selection mask presence, and quick mask mode.
- Modified the fragment shader to handle selection rendering, including color tinting for selected areas and a dash pattern for the marching ants effect.
- Refactored the OverlayProgram to remove the old marching ants rendering logic, now handled by the GPU shader.
- Introduced new data structures in the shader pipeline for managing selection mask textures and samplers.
- Implemented functionality to upload selection mask data to the GPU.
- Updated selection state handling to ensure correct bounds calculations.
- Enhanced sidebar tool button rendering with fallback for missing icons.
2026-07-17 23:15:27 +03:00
phantom b09795ccff Implement stable serialization and restoration for dock layouts, including auto-hidden and floating panels
- Add `persistence.rs` for stable serialization of dock layouts without runtime identifiers.
- Introduce `preview.rs` for geometry handling of dock drop previews.
- Create `sizing.rs` to manage content-aware sizing policies and constraint solving for dock panels.
- Implement `welcome.rs` to provide a welcome surface when no documents are open, featuring New and Open actions.
2026-07-16 22:10:22 +03:00
phantom 1240d25011 feat(gui): implement selection mask state and vector editing functionality
- Add `selection/state.rs` to manage selection masks, including combining masks and calculating bounds.
- Introduce `vector_edit.rs` for vector shape manipulation, handling drag sessions, and hit testing for handles.
- Create `feature_scorecard.rs` to ensure stable feature identifiers and regression gates for GUI components.
- Implement raster behavior tests in `raster_test.rs` to validate gradient application against masks.
2026-07-16 18:41:05 +03:00
phantom 026e268a10 feat(iced): make panels movable with Properties on right side 2026-07-16 13:15:00 +03:00
phantom edae18fca0 feat(iced): make toolbox expandable/collapsible to 2 columns 2026-07-16 13:08:34 +03:00
phantom baf77632dc fix(iced): improve menu fonts, fix dropdown positioning, add theme switcher 2026-07-16 13:02:43 +03:00
phantom 98afa63752 fix(iced): prevent duplicate vector layer creation by removing auto-layer creation from CanvasPointerPressed for vector tools 2026-07-16 12:39:20 +03:00
phantom 849e3728fe feat(iced): parametrize shape previews with user tool settings 2026-07-16 12:16:12 +03:00
phantom 2dc376a54b feat(iced): implement full HSV color picker for geometry and properties panels 2026-07-16 12:10:12 +03:00
phantom 6196a80ed4 feat(iced): implement shape cycling for overlapping vector shapes 2026-07-16 11:21:32 +03:00
phantom 634592e26d feat(iced): update Properties panel with layer info and vector shape properties 2026-07-16 11:14:01 +03:00
phantom 418f4adc15 feat(iced): add accurate wireframe previews for all 15 vector shapes 2026-07-16 05:36:37 +03:00
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