Karthik Prakash and Keavon Chambers
8bc389a3b4
Fix artboard deletion ( #1651 )
...
* Fix `Document > Clear Artboards`
* Fix `Artboard Tool > Delete`
* fix graph disconnection when deleting artboard
* fix empty artboard deletion
* Code readability improvements
* fix `Clear Artboards`
* add comments
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-03-16 01:56:39 -07:00
Keavon Chambers
1a2a0e8757
Minor code cleanup and spelling fix
2024-03-16 00:30:29 -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
Keavon Chambers
5bca931813
Rename handle mirroring to colinear
2024-03-14 07:44:55 -07:00
Elbert Ronnie and Keavon Chambers
ea4f3d8bba
Add auto-panning to all remaining tools ( #1682 )
...
* Add auto-panning to Gradient tool
* Add auto-panning to Path tool
* Add auto-panning to Pen tool
* Add auto-panning to Spline tool
* Add auto-panning to Line tool
* Add auto-panning to Rectangle tool
* Add auto-panning to Ellipse tool
* Add auto-panning to Polygon tool
* Hide `PointerOutsideViewport` in debug messages
* cargo fmt
* Code review cleanup
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-03-14 06:05:33 +00:00
milan-sedivy and Keavon Chambers
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 and Keavon Chambers
01da53eba0
Make the Fill tool's fill click operation cancellable ( #1666 )
...
* Make FillTool a draggable tool with abortable fills
* Unify keyhints across tools
* Apply suggestions from code review
* Formatting
* Fix FillTool when draged outside of shape's layer and add toolswitch abort
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-03-11 14:18:49 -07:00
milan-sedivy and Keavon Chambers
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 and Keavon Chambers
dcce519426
Fix switch to/from Artboard tool firing an undo ( #1668 )
...
* Fix tool switch causing abort of ArtboardTool transaction when it shouldn't
* Add cancellation keyhints
* Unify the cancel keyhints with other tools
* Consolidate hints
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-03-11 00:46:38 -07:00
milan-sedivy and Keavon Chambers
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
0HyperCube and Keavon Chambers
218e9675fd
Attribute-based vector format refactor ( #1624 )
...
* Initial vector format structure
* Click targets
* Code review pass
* Remove subpaths from vector data
* Morph node & vector node tests
* Insignificant change
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-03-09 10:27:30 -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
Keavon Chambers
9f84661fac
Switch Eyedropper/Fill tools from Rmb to Shift+Lmb
2024-03-08 20:33:53 -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
milan-sedivy
ea3f834b64
Create a history step when importing SVG files ( #1656 )
...
* Create a history step when importing SVG files
* Removed additional usvg::Tree::from_str call based on feedback, used DocumentHistoryBackward in case it fails
2024-03-08 14:44:49 -08:00
Karthik Prakash and 0HyperCube
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 and Keavon Chambers
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
zhiyuan
5cf0b8893a
Fix Freehand tool extending after transforming the path ( #1623 )
...
Fix extending after transforming
2024-02-29 19:50:02 -08:00
Keavon Chambers
70dce1c230
Resolve most Clippy lint issues
2024-02-29 00:48:28 -08:00
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
Elbert Ronnie
39401f0be0
Fix point translation bug in Path tool ( #1626 )
...
Fix point translation bug
2024-02-25 14:50:30 +00:00
Keavon Chambers and Dennis Kobert
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
0HyperCube and Keavon Chambers
229b5dbb20
Use f64 not f32 throughout graph; add Vector2 value node ( #1618 )
...
* Use doubles in graph
* Format .graphite files onto one line
* Rename new node to Vector2
* No primary input
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-02-18 22:16:37 +00:00
Keavon Chambers
fc8b41914b
Fix anti-aliasing in overlays by aligning everything with the pixel grid ( #1603 )
2024-02-13 20:47:16 -08:00
zhiyuan
e1735ddf84
Fix Select tool's broken undo ( #1597 )
...
Fix select tool undo
2024-02-05 14:40:27 -08:00
Nikita-str and Keavon Chambers
f25038067e
Path tool: sliding point insertion ( #1581 )
...
* #1578 sliding point works(1st approx)
TODO:
* don't move too close to the side points
* double click works incorrect?
* do we need to jump from segment to segment?
* #1578 disallow move slide point too close to side points
* fix double click + ctrl insertion
* #1578 select insertion point (except `ctrl` case)
* #1578 far depends on line width & more accurate seg finding
* #1578 insert point on most top suitable selected layer
* #1581 draw insertion point by overlay + `Esc` abort
* #1581 sharp stay unchanged on double click
* #1581 fix incorrect handle of scaling
* #1581 `square` selection point & too close in px(instead of magic)
* #1581 bug fix: insertion point on unselection
* #1581 use `color: Option` instead of `SelectionType`
* Some code review, still need to review shape_editor.rs
* #1581 insert sharp point on a straight segment
Also correct insertion on quadratic segments
`ManipulatorGroup::have_handle` have such form because `handle = Some(self.anchor)` often used instead of `handle = None`
* Final code review pass
* Code review pass
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-02-05 08:45:25 +00:00
zhiyuan and Keavon Chambers
a412a77062
Support for deleting points to break path ( #1593 )
...
* feat: break closed curve
* feat: update hotkeys and handles
* feat: break an open path
* feat: elegantly handle breaking at multi points in a subpath
* feat: handle break at end points
* feat: ctrl+delete to remove segments and break path
* fix: rm unused
* First code review pass
* fix: closed eclipse handles after breaking path
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-02-04 21:02:09 -08:00
zhiyuan
a4a2680ac4
Freehand tool: Allow extension of existing paths ( #1594 )
...
* feat: extend freehand path
* fix: rm logs
* fix: rename variable
2024-02-04 13:36:25 -08:00
zhiyuan
05b4582cd7
Properly handle pen tool undo and redo ( #1587 )
...
feat: properly handle pen tool undo and redo
2024-02-04 19:23:48 +00: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 and Keavon Chambers
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 and Keavon Chambers
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 and Keavon Chambers
484acbcde3
New node: Morph ( #1576 )
...
* Add morph node
* Range slider time parameter, better lerping
* Lerp more fill and stroke parameters
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-01-13 23:35:40 -08:00
0HyperCube
e868bf9532
Fix path tool neighbours for normal snapping ( #1570 )
2024-01-13 16:08:34 -08:00
0HyperCube
bf0ec2c9c8
Snapping improvements ( #1567 )
2024-01-13 08:10:24 -08:00
0HyperCube and Keavon Chambers
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 and 0hypercube
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
0HyperCube
c14c6fbe93
Fix text tool broken by #1543 ( #1555 )
...
Text tool setting font as f32
2024-01-07 13:45:32 +00:00
Keavon Chambers
1af6252f2d
Redesign the pivot overlay to a yellow crosshair
2023-12-30 18:34:51 -08:00
Keavon Chambers
134c10b543
Change default Text tool font to Cabin
2023-12-30 14:51:20 -08:00
Keavon Chambers
1cc23320a5
Hide the Cull node by integrating it into all generator nodes ( #1538 )
...
* Hide the Cull node by integrating it into all generator nodes
* Remove internal Cull node from Mandelbrot
2023-12-30 12:28:06 -08:00
Keavon Chambers
96b5d7b520
Many subtle improvements to the UI design system ( #1537 )
2023-12-28 04:35:20 -08:00
Keavon Chambers
34f952bad1
Convert u64 IDs to newtypes ( #1532 )
2023-12-22 03:24:13 -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