Commit Graph

313 Commits

Author SHA1 Message Date
Keavon Chambers
a570ff22e8 Improve document zooming to work based on nice steps (#336)
* Improve document zooming to work based on nice steps

* Code review improvements
2021-08-10 16:21:18 -07:00
Keaton Brandt
1ee94f41f0 Fix clicking on menu bar sub-menu entries (#337)
* Fix a bug where clicking a submenu would cause the parent menu to be closed before the submenu click could be registered. Also ignores package-lock.json.

* Remove package-lock gitignore

* Add back empty line
2021-08-10 14:54:09 -07:00
Keavon Chambers
ca40e373bf Upgrade packages and a couple fix warnings 2021-08-09 18:41:29 -07:00
Keavon Chambers
f73ee29fdd Add DisplayError to show user errors from the backend 2021-08-08 16:52:09 -07:00
Keavon Chambers
4b9c2eb793 Restructure project directories (#333)
`/client/web` -> `/frontend`
`/client/cli` -> *delete for now*
`/client/native` -> *delete for now*
`/core/editor` -> `/editor`
`/core/document` -> `/graphene`
`/core/renderer` -> `/charcoal`
`/core/proc-macro` -> `/proc-macros` *(now plural)*
2021-08-07 05:17:18 -07:00
Keavon Chambers
f26a0e26b0 Refactor RadioInput widget (#332) 2021-08-07 03:15:40 -07:00
TrueDoctor
da290f1e63 Transform API (#301)
* Enforce cache dirtification

* Turn all shapes into one struct

* Remove working folder

* Remove old shapes

* Major restructuring

* Refactor Ellipse, Rectangle and ShapeTool

* Simplify bounding box calculation for folder

* Fix panic in select tool

*  Refactorselect tool

* Refactor Align

* Refactor flipping layers

* Zoom to fit all

* Refactor tools to avoid state keeping

* Refactor more tools to use state that is passed along

* Fix whitespace + change selection box style

* Set viewbox of svg export based on the contents
2021-08-06 12:34:30 +02:00
Keavon Chambers
a9364f5122 Refactor document tab management from Panel.vue into utilities/documents.ts 2021-08-04 12:39:39 -07:00
dependabot[bot]
9a59d87857 Bump tar from 5.0.5 to 5.0.7 in /client/web (#329)
Bumps [tar](https://github.com/npm/node-tar) from 5.0.5 to 5.0.7.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v5.0.5...v5.0.7)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-03 17:11:16 -07:00
Henry Sloan
340c10a62b Change eyedropper to use correct message (#327) 2021-08-03 13:35:26 -07:00
Keavon Chambers
bff82fe238 Add a selected_layers() function and refactor code to use it (#314)
* Add a selected_layers() function 

* Refactor AlignSelectedLayers

Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2021-08-01 10:29:23 +02:00
Keavon Chambers
19398e1dc8 Add checkbox to MenuBarInput widget 2021-07-31 18:20:51 -07:00
Henry Sloan
4cf0686801 Change flipping to use the joint bounding box of the selection (#323)
* Change flipping to use the joint bounding box

* Fix minor untested changes

* Replace unwrap with question mark
2021-07-31 15:18:54 -07:00
Keavon Chambers
170cda7357 Add DialogModal and use it for close confirmations and "coming soon" features (#322)
Closes #269
Closes #196

* Add DialogModal and use it for close confirmations and "coming soon" features

* Code cleanup; add Enter key to accept emphasized dialog button
2021-07-31 14:30:31 -07:00
Keavon Chambers
e1698c2783 Add TextButton widget (#321) 2021-07-31 04:58:25 -07:00
Keavon Chambers
8ed28daaf4 Fix two small bugs introduced in #311 2021-07-30 18:46:23 -07:00
Keavon Chambers
864a348e30 Add "Sides" label to Shape Tool's options bar number input 2021-07-30 15:45:49 -07:00
Keavon Chambers
ba83cfd958 Add the ability for NumberInput widgets to display labels
Part of #313
2021-07-29 13:56:45 -07:00
Keavon Chambers
ab651268d8 Layer opacity (#312)
Closes #187

* Add layer opacity input

* Improve Rust code cleanliness
2021-07-27 23:15:23 -07:00
Keavon Chambers
a288d51543 Add features to NumberInput widget; refactor widgets and tool options (#311)
Closes #310

* Add features to NumberInput widget; refactor widgets and tool options

* Fix swap/reset working colors using @click instead of :action
2021-07-27 18:28:21 -07:00
Keavon Chambers
8c91683c5b Fix antialiasing caused by <svg> width/height 100% 2021-07-25 17:25:39 -07:00
Henry Sloan
8e904c11cb Move blend mode declaration and implementation (#308) 2021-07-25 13:01:50 -07:00
Henry Sloan
91a93c1dc0 Avoid looping behavior with color selection (#305) 2021-07-25 02:31:50 -04:00
Henry Sloan
3920f81f58 Add alignment of selected layers (#296)
* Add alignment of selected layers

* Refactor alignment to a document message

* Condense align messages into a tuple variant

* Rename dimension to axis and fix redundant math

* Add correct Center alignment

* Add TODO comment for nested transforms

* Add TODO for merging bounding boxes

* Move align enums to document_message_handler

* Run cargo clippy

* Clean up unwraps with filter_map
2021-07-24 19:35:48 -04:00
Henry Sloan
7d3239ecac MVP eyedropper tool for fill colors (#300)
* Implement eyedropper for layer fill colors

* Add shortcut for eyedropper

* Add right mouse sampling for secondary color
2021-07-24 18:29:32 -04:00
TrueDoctor
03c5847d7e Various small fixes and cleanups (#299) 2021-07-24 17:59:01 +02:00
Keavon Chambers
f7d7257d50 Swap "Layer" and "Document" menu bar entries 2021-07-24 01:54:27 -07:00
Henry Sloan
57940d8cac Rename align operations and icons (#295)
* Rename align operations and icons

* Fix icon import paths
2021-07-24 00:42:48 -04:00
Henry Sloan
a65b525a5d Add dragging of layers with the select tool (#293)
* Add dragging of layers with the select tool

* Transform mouse positions based on root transform

* Add TODOs regarding root inverse transforms
2021-07-23 21:51:14 -04:00
Keavon Chambers
1821d3001a Fix inconsistent whitespace 2021-07-23 17:48:39 -07:00
Keavon Chambers
9daffb3dad Improve various code and docs spelling/grammar 2021-07-23 17:25:05 -07:00
TrueDoctor
70d1f77096 Hints backend (#234)
* Generate hints from list of actions

* Remove redundant Key from output

* Improve formatting

* Change logging verbosity for hints
2021-07-23 16:09:24 -07:00
TrueDoctor
ed0a0c49d0 Rearrange layers refactor (#281)
* Keep selection during reordering

* Fix paste layer selection

* Remove junk from layer matadata

* Add function to get non_selected_layers

* Cleanup

* Add tests
2021-07-24 00:54:30 +02:00
Henry Sloan
988dd7b400 Change tool option kinds to PascalCase (#292) 2021-07-23 14:47:55 -07:00
George Atkinson
86962fad3a Blend modes (#252)
* Add backend for selecting layer blend mode

* Change dropdown input to support callback on change

* Add debug messages

* Fix canvas update for blend-modes

* Finish up and polish blend modes implementations

* Add changes from code review

Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2021-07-23 10:21:07 -07:00
RustyNixieTube
dac60e94da Add documentation (#287)
* Add crate documentation

* Use full path intead of relative path

* Add documentation to core/document/src/color.rs

* Add modification by

* Add @Keavon's modification

* @Keavon's changes

* remove useless let

Co-authored-by: TrueDoctor <dennis@kobert.dev>
2021-07-23 16:16:26 +02:00
Henry Sloan
53322848fb Implement tool messaging and shape flipping (#288) 2021-07-22 16:25:42 -04:00
AJ Weeks
33b1f6dd32 Support rearranging layers with hotkeys (#271)
* Support moving single layers

* Fix "Move layer to top/bottom" keybinds

* Rename things named "move" to "reorder"

Fix formatting

* Combine sorted layer helper functions

* Use integer consts for moving layers to front/back

* Fix merge mistake

* Fix some clippy lints

* Fix panic

* Remove "get" prefix from functions

* Bring layer menu items out to sub-menu

* Support moving multiple layers at a time

* Add comment explaining odd keybinding

* Add reordering tests

* Add negative test

* Add new error type

* Add layer position helper, clean up tests

* Make position helper return Result

* Clean up slice iteration

* Simplify source_layer_ids computation

Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2021-07-21 11:36:51 +02:00
TrueDoctor
87f65cd831 Add thumbnails for layers (#286)
Fixes: #285
2021-07-21 02:30:49 -07:00
Henry Sloan
1f1c307211 Options bar widgets for tools to control tool behavior (#283)
* Add JSON-backed options widget

* Add initial tool settings messaging to backend

* Add shape side selection with JSON deserialization

* Enforce minimum number of n-gon sides

* Make tool settings JSON errors safer

* Make tool settings JSON errors safer

* Refactor ToolOptions to ToolSettings

* Revert "Refactor ToolOptions to ToolSettings"

This reverts commit 651161fd16.

* Refactor all instances of "settings" to "options"

* Fix names and formatting

* Rearrange ToolOptions data to enforce types
2021-07-21 01:07:48 -04:00
Keavon Chambers
150b530a73 Fix tooltips in Document panel 2021-07-19 18:02:08 -07:00
Keavon Chambers
5b5388a1d6 Fix dropdown menu widget showing wrong active entry
Fixes #250
2021-07-19 15:03:08 -07:00
Keavon Chambers
209d71ddc2 Add (nonfunctional) rulers and scrollbars to the viewport (#279)
* Add nonfunctional rulers and scrollbars to viewport

* Switch from DOM divs to SVG lines

* Switch from SVG lines to a single SVG path

* Change variable names
2021-07-17 16:11:52 -07:00
Keavon Chambers
1e786750c5 Remove outdated todo comment 2021-07-17 03:36:35 -07:00
TrueDoctor
5b1d36fafe Apply clippy lints (#278) 2021-07-17 11:12:37 +02:00
Keavon Chambers
0c25031ad1 Clean up widget type naming conventions 2021-07-16 15:57:42 -07:00
Keavon Chambers
60968431b4 Categorize frontend widgets to match design system 2021-07-16 15:37:35 -07:00
Simon Desloges
783b7801e6 Add support for folder bounding boxes (#276) 2021-07-16 16:34:04 +02:00
Keavon Chambers
59b817301d Edit readme with various updates and simplifications 2021-07-16 04:01:32 -07:00
bjorn3
5d91ae21a0 Two improvements to the development workflow (#270)
* Configure rust-analyzer to target wasm32-unknown-unknown

* Watch changes to core rust files
2021-07-16 01:49:52 -07:00