Keavon Chambers
27f9e3f00e
Move node visibility flag from NodeNetwork to DocumentNode ( #1708 )
...
* protonode -> proto node
* Move node visibility flag from NodeNetwork to DocumentNode
* Add serde default for new field
* Logic improvements
2024-03-27 05:17:08 -07:00
Elbert Ronnie
e9510c5fee
Fix Select tool's scale nudging with multi-layer selection ( #1699 )
...
* Fix scale nudging for multiple selection
* Use message discriminant for filtering where possible
* Remove unnecessary parameter from `selected_bounds_document_space`
* Fix the error `target.closest is not a function`
* Minor cleanup
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-03-25 13:20:30 -07:00
Keavon Chambers
0a9bd41be1
Code cleanup and refactoring to enhance consistency ( #1695 )
...
- Move message handler payload data into structs
- Organize the file structure used by `editor/src/messages/portfolio/document` `/node_graph` and `/graph_operation`
- Make derive attributes use `serde::Serialize, serde::Deserialize` consistently instead of `use serde::{Deserialize, Serialize};` imports
- Various other code cleanup and refactoring
2024-03-20 21:28:51 -07:00
Elbert Ronnie
42c822020e
Make auto-panning speed uniform ( #1690 )
...
* Make auto-panning speed uniform
* Abstract time-delta calculation to `TimeInfo`
* Update docs and add additional check
* Apply code review changes
2024-03-16 06:36:22 +00:00
milan-sedivy
9ac10cdcf8
Comprehensively polish up the input hints across all tools and states ( #1670 )
...
* Add missing keyhints to most tools
* Standardize hints further
* Improve GRS numerical display values
* Additional hints improvements
* Improve Path tool hints; add Ctrl+Shift+A point deselection
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-03-12 20:20:25 -07:00
milan-sedivy
343523ab34
Improve the Select tool's input hints ( #1667 )
...
* Refactor hints in SelectTool
* Unify Keyhints and fix DrawingBox state so that it holds nested behaviour info
* Code review cleanup; rename hints
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-03-11 02:11:17 -07:00
milan-sedivy
aa9a3e648a
Fix cancellation of drag actions in all tools where it's missing ( #1664 )
...
* Change message sent from DocumentMessage::Undo to DocumentMessage::AbortTransaction while aborting select tool
* Fix NavigationTool not aborting
* Fix NavigationTool tilt
* Make gradient tool abortable
* Make PathTool drag actions abortable
* Make FreeHand Tool abortable
* Make BrushTool abortable
* Fix filename typo
* Make artboards also abortable
* Rearrange key bindings for consistency
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-03-09 16:19:56 -08:00
milan-sedivy
4cbba3d92b
Allow cancellation of pivot drag in Select tool ( #1658 )
...
* Add Abort to SelectToolFsmState::DragginPivot state
* Remove trailing whitespace (rustfmt error)
2024-03-09 00:22:20 -08:00
Elbert Ronnie
d780602ecd
Add auto-panning to the Artboard tool ( #1652 )
...
* Move panning functionality to auto_panning.rs
* Add auto-panning to Artboard tool
* Hide debug messages containing AnimationFrame
2024-03-08 20:32:46 -08:00
Karthik Prakash
0c60fd95fa
Remove `remain` alphabetical sorting enforcement macros ( #1647 )
...
remove `remain`
Co-authored-by: 0HyperCube <78500760+0HyperCube@users.noreply.github.com>
2024-03-06 16:43:51 +00:00
Elbert Ronnie
9479abe114
Fix dropdown keyboard movement bug ( #1630 )
...
* Add a value to all `MenuListEntry`
* cargo fmt
* Make `value` as constructor in `MenuListEntry`
* Make `value` as constructor in `RadioEntryData`
2024-03-02 17:06:08 -08:00
Mohamed Osama
a1f2a2b256
Fix layers losing their names upon being grouped ( #1637 )
...
* no message
* no message
* no message
* Make layers reserve their names when grouped
* remove redundancy
* replace String::from("") with String::new()
* Fix test
* Restore unrequested line break changes
* Avoid unwraps
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-03-02 23:34:25 +00:00
Keavon Chambers
70dce1c230
Resolve most Clippy lint issues
2024-02-29 00:48:28 -08:00
Elbert Ronnie
8e769e37f6
Add auto-panning when pointer goes beyond viewport edge with Select tool ( #1625 )
...
* Add code to shift viewport if mouse is beyond edge
* Allow shifting viewport if mouse is stationary too
* Group all modifier keys into SelectToolPointerKeys
* Cleanup message ordering to remove shifting during resize
* Slow down shifting by half
* Clamp speed; code review cleanup
---------
Co-authored-by: 0hypercube <0hypercube@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-02-28 23:52:36 -08:00
Keavon Chambers
a02b162e30
Consolidate and rename Graphene data types, and add many comments ( #1620 )
...
* Document ProtoNodeInput
* More comments
* Comment improvements
* Comment and split ProtoNodeInput::NodeLambda from ProtoNodeInput::Node
* Combine NodeImplementation into DocumentNodeImplementation
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2024-02-20 17:53:04 -08:00
Keavon Chambers
6b6accfb91
Add Poisson-disk sampling node and Bezier-rs 0.4 release ( #1586 )
...
* Add Poisson-disk sampling node and Bezier-rs 0.4 release
* Additional optimizations
* More performance optimizations with help from 0Hypercube
* Add comments
2024-01-28 02:25:46 -08:00
0HyperCube
208e907fa4
Restore select tool functionality and shallow select mode ( #1583 )
...
* Restore select tool functionality
* UI tweak
* Change all of the things
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-01-18 22:28:45 +00:00
Keavon Chambers
b4dccb8655
Add a workaround for a Safari rendering bug with floating menus
2024-01-17 00:58:07 -08:00
0HyperCube
002151d9c0
SVG import ( #1579 )
...
* SVG import
* Fix error
* Transforms
* Code review nits
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-01-16 17:42:48 -08:00
Keavon Chambers
d602603d46
Remove unused DocumentIsDirty
2024-01-15 02:51:40 -08:00
0HyperCube
bf0ec2c9c8
Snapping improvements ( #1567 )
2024-01-13 08:10:24 -08:00
0HyperCube
456ca170a4
Layer and grid snapping systems ( #1521 )
...
* Grid overlays
* Rectangle tool basic snapping
* Fix bezier demos
* Fix bézier crate tests
* Constrained snapping for circle & shape tool
* Line tool snapping
* Pen tool snapping
* Path tool snapping
* Snapping whilst dragging layers (not constrained)
* Constrained drag
* Resize snapping
* Normal and tangent
* Cleanup
* Grid snapping
* Grid snapping
* Fix imports
* Fix bug in artboard tool
* Fix hang on 0 size grid spacing
* Fix NaN when scaling
* Polishing
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-01-13 14:32:10 +00:00
Keavon Chambers
78a1bb17cd
Move selected node list from DocumentMetadata to the document ( #1565 )
2024-01-13 04:52:47 -08:00
Keavon Chambers
aab0fcf84c
Update graph UI and improve simplicity and robustness of sending graph and layer panel updates ( #1564 )
...
* WIP
* Fix loading the structure of layers
* Fix broken indents
* Remove debugging stuff
* Fix displaying errors and node graph UI fixes/improvements
* Fix compilation failure
---------
Co-authored-by: 0hypercube <0hypercube@gmail.com>
2024-01-13 04:15:36 -08:00
Keavon Chambers
96b5d7b520
Many subtle improvements to the UI design system ( #1537 )
2023-12-28 04:35:20 -08:00
Keavon Chambers
7bfe0ce55b
Retire layer paths used throughout the code ( #1531 )
...
* Part 1
* Part 2
* Part 3
* Part 4
* Part 5
* Part 6
* Part 7
* Part 8
2023-12-21 19:32:46 -08:00
Keavon Chambers
5c7e04a725
Additional clean up and bug fixes after migrating document-legacy
2023-12-20 18:43:32 -08:00
Keavon Chambers
92203f3576
Remove the whole document-legacy crate ( #1524 )
...
Remove the whole document-legacy crate
Closes #1520
2023-12-20 05:45:54 -08:00
Keavon Chambers
9a7d7de8fa
Remove most of document-legacy ( #1519 )
...
* Remove boolean ops and unused doc-legacy Operations
* Remove Shape legacy layers
* Remove legacy layer Properties panel code
* Remove additional unused doc-legacy Operations
* Removed unused rendering-related legacy-layer code
* Upgrade dep so CI builds
* Remove various additional unused functions and messages
* Remove the LayerData trait
* Remove RenderData struct and usages
* Banish the Operations system
* Further removals
2023-12-19 04:36:19 -08:00
0HyperCube
c42d030f18
New overlay system ( #1516 )
...
* Port gradient tool overlays
* Fix tests
* Text tool
* Artboard tool and some of select tool
* Port select tool drawing box
* Pen and path tool
* Remove overlays document
* Show the overlay refactor as done on the website roadmap
* Select tool bounds in layer space (first layer)
* Code review and fixes
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-12-18 11:17:43 +00:00
0HyperCube
29222700f4
Fix the blend mode and opacity widgets of the Layers panel ( #1506 )
...
* Fix blend mode and opacity
* Cleanup and bug fixes
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-12-12 09:27:23 +00:00
0HyperCube
6bce72dccd
Fix document becoming unsaved (*) when clicking with Select tool ( #1509 )
...
Fix star on select tool
2023-12-11 22:14:20 +00:00
0HyperCube
10863acd83
Fix crash when reordering layers ( #1492 )
2023-12-09 13:08:46 +00:00
0HyperCube
5ee79031ab
Fix hiding and collapsing layers ( #1481 )
...
* Hide and collapse layers
* Reorder imports
* Fix Ctrl+H shortcut advertized action and hotkey tooltip; improve graph top right of options bar
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-11-27 02:27:11 +00:00
Keavon Chambers
ab3410cffe
Consolidate MenuListButton into TextButton ( #1470 )
2023-11-25 01:56:05 -08:00
Keavon Chambers
719c96ecd8
Rename and reorganize several widgets ( #1462 )
...
* Rename SwatchPairInput -> WorkingColorsButton
* Remove unnecessary Svelte each-loop keys
* Rename (and migrate) MenuBarInput -> MenuListButton
* Rename PivotAssist -> PivotInput
* Rename PersistentScrollbar -> ScrollbarInput and CanvasRuler -> RulerInput
* Rename DIalogModal -> Dialog
* Rename WidgetRow -> WidgetSpan
2023-11-18 04:34:30 -08:00
0HyperCube
58660f5548
Allow groups to work with the node graph ( #1452 )
...
* Initial groups
* Improve graph arangement
* Fix selecting nested layers
* Code review pass
* Change log
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-11-14 17:17:14 +00:00
Keavon Chambers
605c0de392
Fix Rust code lints ( #1448 )
...
* Fix Rust lints to satisfy Clippy
* Remove some unused commented out code
2023-11-05 13:52:00 -08:00
0HyperCube
9b034a5194
Fix deleting layers ( #1441 )
...
* Fix deleting layers
* Code review comments
2023-10-25 15:20:55 -07:00
0HyperCube
b8906f344e
Migrate the Text tool to the document graph ( #1435 )
...
* Update text tool to document graph
* Fix selection issue
* Log graph reruns and text node evals
* Hash to set node
* Fix let node crash
* Fix loading document with fonts
* Allow pressing enter to edit
* Cleanup
* Code review nits
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-10-24 12:55:13 -07:00
Yuri Astrakhan
3d4e3a74e5
A few minor lints and docs ( #1436 )
...
* A few minor lints and docs
* Added required packages to compile on Debian-style linux
* Inlined some format args, and removed some `&` in args (they cause about 6% slowdown that compiler cannot inline)
* a few spelling mistakes
* fix fmt
2023-10-18 23:33:10 -07:00
0HyperCube
5827e989dc
Migrate the Select tool to the document graph ( #1433 )
...
* function for accessing document metadata
* Better select tool
* Fix render
* Fix transforms
* Fix loading saved documents
* Populate graph UI when loading autosave
* Multiple transform nodes
* Fix deep select
* Graph tooltips
* Fix flip axis icon
* Show disabled widgets
* Stop select tool from selecting artboards
* Disable (not hide) the pivot widget; remove Deep/Shallow select for now
* Code review changes
* Fix pivot position with select tool
* Fix incorrectly selected layers when shift clicking
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-10-17 11:09:32 -07:00
0hypercube
4cd72edb64
Initial work migrating vector layers to document graph
...
* Fix pen tool (except overlays)
* Thumbnail of only the layer and not the composite
* Fix occasional transform breakages
* Constrain size of thumbnail
* Insert new layers at the top
* Broken layer tree
* Fix crash when drawing
* Reduce calls to send graph
* Reduce calls to updating properties
* Store cached transforms upon the document
* Fix missing node UI updates
* Fix fill tool and clean up imports and indentation
* Error on overide existing layer
* Fix pen tool (partially)
* Fix some lints
2023-10-17 11:02:06 -07:00
Keavon Chambers
56f20f2e6d
Remove history step creation from Select tool box selection
2023-09-02 15:26:04 -07:00
Keavon Chambers
a112ab27cf
Dialog redesign and content revamp ( #1409 )
...
* Revamp the content and design of dialogs
* Add the Licenses dialog
2023-09-01 01:58:20 -07:00
Prikshit Gautam
fb1922b49d
Clean up and suppress Clippy warnings ( #1402 )
...
* fix: clear and suppress clippy warnings
* Simplification
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-08-27 16:56:53 -07:00
Keavon Chambers
b9e49623a3
Rename PropertyHolder to LayoutHolder
2023-08-01 00:46:30 -07:00
Keavon Chambers
8e87e42f3e
Remove widgets built by methods on WidgetHolder
2023-07-31 23:36:12 -07:00
0HyperCube
de27f2c006
Switch to the widget builder pattern on all remaining layouts ( #1346 )
...
* Prefer widget builder pattern
* Nits
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-07-31 23:21:42 -07:00
Christopher Mendoza
3f7d484398
Select tool's shallowest behavior improvements and refactoring ( #1108 )
...
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-07-28 18:23:14 -07:00