Commit Graph

150 Commits

Author SHA1 Message Date
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
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
Keavon Chambers c33ba1b315 Fix Properties panel to show selected layers/nodes 2023-12-09 04:08:07 -08:00
Keavon Chambers 8f9371dad0 Improve navigation footer bar hints 2023-12-06 01:51:30 -08:00
0HyperCube f8b9c5db6d
Improve text transforms (#1487) 2023-12-04 14:57:44 -08:00
0HyperCube b2ca643e6e
Fix transforms, Brush tool, and G/R/S (#1473)
* Transform fixes

* Fix the desert artwork

* Change artboard icon

* Better handling when transforming brush strokes

* Code review pass

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-11-26 20:54:06 -08: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
0hypercube da4d95fa7b Fix spline tool deleting layer 2023-11-19 23:09:42 -08:00
0HyperCube 8a1cf3ad5d Migrate demo artwork and fix all failing CI tests (#1459)
* Initial work on fixing tests

* Fix formatting

* Remove dead code to satisfy rustc warnings

* Insert into an artboard

* Load updated artwork in editor

* Remove popup when importing image

* Fix up demo art

* Change transform app[lication method

* Reduce number of enums called BlendMode

* Finalize the demo artwork upgrade

* Code review pass

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-11-19 23:06:21 -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
Keavon Chambers e3f5e7001f Redesign ColorInput widget and rename it to ColorButton 2023-11-16 18:38:39 -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
Keavon Chambers e54a2e2fc6 Remove the Frame tool 2023-11-04 03:04:26 -07:00
0HyperCube 9b034a5194
Fix deleting layers (#1441)
* Fix deleting layers

* Code review comments
2023-10-25 15:20:55 -07:00
0HyperCube 54745e210a
Fix the Path tool's smooth/sharp buttons (#1439)
* Fix select tool smooth button

* Nit

* Fix behavior when zero points are selected but the shape is active

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-10-25 09:26:24 +01: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
Dennis Kobert 833f41bccb Insert pasted images as layers in document graph (#1418)
Changes:

Graph is evaluated on every viewport change
move all navigation logic into the viewport
reduce the number of js roundtrips
add canvas rendering
enable image pasting
various cleanups
Fix cache nodes being reset every evaluation
2023-10-17 11:02:07 -07:00
0hypercube b52f831b21 Fix artboard tool and remove old artboard code 2023-10-17 11:02:06 -07:00
0hypercube 9a39c4a0cc Fix gradient tool 2023-10-17 11:02:06 -07:00
0hypercube 6173662a40 Fix freehand and spline tool 2023-10-17 11:02:06 -07:00
hypercube 0d6bec837b Fix path tool 2023-10-17 11:02:06 -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
mobile-bungalow 9667e5173b
Allow toggling smooth/sharp angle from the path tool options bar (#1415)
* menu in option

* smoothing controls work

* fixed type error

* fix flipping behavior

* silence warning

* consolidate selection state

* update positions options

* blinking logic fixed, smoothing logic implemented

* fixed arbitrary looping when flipping from sharp to smooth

* remove warning

* Tidying up

* refactor manipulator smoothing code, remove bitflags, rename

* Make the point smooth/sharp support mixed better

* Code review tweaks

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-09-11 17:36:08 -07:00
Keavon Chambers 88bdf9580f Make RadioInput accept optional selected_index 2023-09-11 15:40:05 -07:00
mobile-bungalow b29acbd784
Rework navigation tool hints and navigation shortcuts (#1419)
* Added Pan,Tilt,Zoom to View menu + Tilt shortcut changes

* formating

* fixed menus, added action for when dispatch happens from menu

* set key mappings to spec

* fix labels for navigation tool

* fix some spacing

* add action that locks spacebar for navigation when using it as a modifier so the node overlay does not toggle

* escape from the node-graph-overlay, set toggle to ctrl+space, fix demo art

* move all transform state into an enum

* rename confusing flag

* fix demo art and tests

---------

Co-authored-by: Ezbaze <rybitwamateusz3@gmail.com>
2023-09-10 23:42:27 +01:00
Prikshit Gautam ad9ccaa800
Add 'select all points' method to ShapeState struct (#1386)
* Added select all points method to ShapeState struct

* Map select_all_points functions to shortcut

* Make SelectAllPoints action relevant in the current context only

* Refactor select_all_points to only select anchors

* Fix(editor): enable selected point update after selection change via clicking
2023-09-04 19:35:43 -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
mobile-bungalow 48fdaddc37
Add Path tool options for editing X/Y point coordinates (#1404)
* implement path point selector in toolbar

* Transform point to art board space

* fix handle adjustment space

* remove unused branches

* tidy comments

* make function names more descriptive, add guards, fix comments

* add auxillary message for layout update

* change trace to warn, remove unneccessary messages, fix rustfmt

* rustfmt

* support handles

* style and dimensions corrections

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-08-29 21:41:01 -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
Ezbaze 226b96260c
New nodes: shape/curve primitives (#1389)
* Add new Primitive Shape/Curve Nodes

* Elipse Node and Debug

* N-input Spline node

* Debuging

* Debug

* fmt

* remov debug

* Changes from code review

* Debug: Empty Spline Input

* Changes from code review

* Fix spelling of ellipse

* Rename polygon to regular polygon

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-08-27 14:22:09 -07:00
Omar Magdy fd338c945f Fix crash from overflowing values given to NumberInput widgets (#1377)
* Added hints for brush tool size

* Added hints for brush tool size

* Solved the user being able to crash the editor by overflowing NumberInputs
2023-08-11 12:26:37 -07:00
Dhruv 1c11ebcc4e Correct snapping offsets after canvas transformation when using snap-reliant tools (#1370)
* fix: pen, spline tool incorrect snap offsets
- re-render snapping offsets if canvas transformed during line draw

* [wip]feat: add CanvasTransformed global message

* [wip]fix: synchronize line tool snap offsets

* fix: update offsets for shape tools on canvas transform

* chore: remove unneeded function parameter

* [wip]fix: use line tool at canvas level

* refactor: revert line tool changes
2023-08-11 12:26:19 -07:00
Omar Magdy 8b9f279f12
Add hints for Brush tool resizing (#1363)
Added hints for brush tool size
2023-08-06 15:32:06 -07:00
Keavon Chambers 3450d638a6
Layer-based nodes redesign, just the basics so far (#1362)
* Redesign the nodes

* Basic vertical stacking syntax sugar

* Fix node connections

* Primary output and line thickness

---------

Co-authored-by: 0hypercube <0hypercube@gmail.com>
2023-08-04 14:56:00 -07:00
Dhruv 50b67bf6f6
Fix Text Tool Overwriting Existing Text on Editing Text Layer (#1356)
fix: text edit overwriting existing text
2023-08-03 17:08:49 +01:00
Keavon Chambers 2b05e1c270 Rename Shape tool to Polygon tool 2023-08-01 01:28:14 -07:00
Keavon Chambers b9e49623a3 Rename PropertyHolder to LayoutHolder 2023-08-01 00:46:30 -07:00