Commit graph

272 commits

Author SHA1 Message Date
Keavon Chambers
ba7531121b Fix dropdown menu widget showing wrong active entry
Fixes #250
2021-07-19 15:03:08 -07:00
Keavon Chambers
b650658810 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
f5bb235ae0 Remove outdated todo comment 2021-07-17 03:36:35 -07:00
TrueDoctor
55a2448764 Apply clippy lints (#278) 2021-07-17 11:12:37 +02:00
Keavon Chambers
c2f735504d Clean up widget type naming conventions 2021-07-16 15:57:42 -07:00
Keavon Chambers
c453199704 Categorize frontend widgets to match design system 2021-07-16 15:37:35 -07:00
Simon Desloges
8e09c10899 Add support for folder bounding boxes (#276) 2021-07-16 10:34:04 -04:00
Keavon Chambers
5ab610f959 Edit readme with various updates and simplifications 2021-07-16 04:01:32 -07:00
bjorn3
9ed1fccd1d Two improvements to the development workflow (#270)
* Configure rust-analyzer to target wasm32-unknown-unknown

* Watch changes to core rust files
2021-07-16 10:49:52 +02:00
Henry Sloan
546bb16480 Pass layer metadata to tools (#277) 2021-07-16 02:38:46 -04:00
Simon Desloges
3a14b38dfa Add a document method that returns a layer's bounding box (#273)
* Add a document method that returns a layer's bounding box

* Moved `use` to the top of the file

* Add layer local bounding box method
2021-07-15 23:18:32 -04:00
Keavon Chambers
67131a23fd Remove CLI client stub 2021-07-15 03:44:57 -07:00
Keavon Chambers
7785ed2b1d Adjust OptionalInput widget design to add back its right border 2021-07-15 01:01:05 -07:00
Keavon Chambers
86bd9e7cdf Rename tool icons 2021-07-15 00:46:32 -07:00
Keavon Chambers
7b63e27168 Switch all JS imports to absolute paths 2021-07-15 00:34:56 -07:00
Keavon Chambers
37e6335557 Make frontend request tab list on initialization 2021-07-15 00:07:21 -07:00
Henry Sloan
e7699bbcbd Transform nudge coordinates to viewport space (#264)
* Transform nudge coordinates to viewport space

* Refactor nudge transform for clarity
2021-07-15 02:05:46 -04:00
Keavon Chambers
eab498f795 Cleanup of variable naming 2021-07-14 20:11:51 -07:00
Keavon Chambers
0656f8abc5 Add a fullscreen button and the keyboard lock API (#266)
Closes #249
2021-07-14 18:56:22 -07:00
Keavon Chambers
3a520071cf Enforce downgraded dependency versions in package.json 2021-07-14 16:51:56 -07:00
Keavon Chambers
ccea88dfd7 Implement closing the current, and all, documents from the menu bar (#265)
Closes #261
Additional cleanup and refactoring with the way the backend relays the list of open documents to the frontend and prompts for confirmation.
2021-07-14 16:13:58 -07:00
TrueDoctor
f7e5dd1a4f Order mapping entries precedence based on number of modifiers (#262)
* Order mapping entries precedence based on number of modifiers

* Fix format

* Rename variables

* More renaming
2021-07-15 00:40:37 +02:00
Keavon Chambers
e0f049ab00 Frontend refactor to move response handler, key input handling, and more into new utilities folder (#260)
Part of #124
2021-07-14 14:31:09 -07:00
Henry Sloan
363b9c7ffa Implement fill tool (#254)
* Implement fill tool

* Add fill tool shortcut

* Add getters and setters to styles

* Make fill tool act on the topmost layer clicked

* Refactor fill operation

* Refactor and unify selection tolerance

* Add mark_as_dirty function

* Fix getter names
2021-07-14 03:49:12 -04:00
TrueDoctor
57b8ee0e86 Implement snapping for rotation (#257) 2021-07-13 20:38:58 +02:00
TrueDoctor
246ca2c95b Implement more scrolling features (#256)
* Use sideways scrolling

* Add horizontal scroll with shift

* Combine WheelCanvasTranslate messages

* Add zooming to current mouse position

* Fix formatting

* Fix scroll direction

* Rename some Constants
2021-07-13 14:02:38 +02:00
Keavon Chambers
3156b3af05 Clean up and polish some code from the previous commit (#255) 2021-07-13 00:52:45 -07:00
0HyperCube
e0b89735a3 Viewport canvas navigation with modifier keys and zoom widget (#229)
* Add rotation around the center

* Document transform centred

* Fix drawing hexagon on rotated document

* Format

* Fix translation on rotated document

* Remove logging

* Rotate around centre of viewport

* Rotate with shift + MMB drag

* Zoom with +/- keys

* Rotation input field

* Implement frontend zoom buttons

* Zoom with ctrl + MMB

* Format

* Update number inputs

* Require Ctrl + Plus / Minus key

* Ctrl scroll

* Update zoom -> Multiply Zoom

* Fix typo

* More fixing typo

* Remove :v-on

* Add mouse scroll X

* Scrolling on document

* Refactor

* Format

* Fix ctrl + plus/minus to zoom

* Reduce zoom sensitivity

* Ctrl + shift + mmb drag = snap rotate

* Further reduce zoom speed

* Add ctrl + number key to change zoom

* Switch Ctrl and Shift for zoom and rotate

* Fix compile errors

* Format JS

* Add increment to snap angle

* Edit getting layerdata functions

* Pass viewport size directily into create_document_transform_from_layerdata

* Add to_dvec2()

* Refactor get_transform

* Get -> Calculate

* Add consts

* Use to_radians

* Remove get from function names

* Use .entry when getting layerdata that does not exist

* Fix distance scroll calculations

* Fix zooming.

* Remove 'Violation' in chrome

* Fix compile errors
2021-07-13 07:50:10 +01:00
0HyperCube
94701f46ec Unmount working folder on select (#253) 2021-07-12 20:55:10 +01:00
Simon Desloges
bb79bbd0e4 Add modifier keys to every keyboard and mouse input (#247)
* Add modifier keys to every keyboard and mouse input

* Fix bad naming convention in Typescript

* Added some tests related to modifier keys
2021-07-11 23:46:00 -04:00
Henry Sloan
1454be24d3 Implement nudging selected layers with arrow keys (#245)
* Implement nudging selected layers with arrow keys

* Normalize diagonal nudges and add constants

* Replace sqrt(2.0) with a constant

* Remove normalization of diagonal movement
2021-07-11 22:22:26 -04:00
0HyperCube
764c0fe0f2 Allow transforming layers (#244)
* Allow transforming layers

* Add document_layer function to return non mut
2021-07-11 10:24:46 +01:00
Simon Desloges
2d2954d045 Implement Select All/Deselect All layers (#242)
* Implement select all layers shortcut

* Adjust menu entry for Select All Layers

* Avoid selecting the root of the document when selecting all layers

* Implement deselect all layers

* Fix formatting

* Add extensions.json so VS Code recommends useful extensions

* Add rust-analyzer as the default Rust formatter
2021-07-10 20:01:37 -04:00
Keavon Chambers
29faf704f6 Add a pull request template so GitHub reminds to reference issue numbers 2021-07-10 13:58:54 -07:00
Keavon Chambers
373c74fbf3 Downgrade wasm-pack and Vue-related dependencies which are causing issues
This reverts commit 744e3729d7.
2021-07-09 20:29:14 -07:00
Keavon Chambers
bc8fe2d844 Improve panel tabs to fix pixel mislaignments and support MMB closing 2021-07-09 16:49:54 -07:00
Keavon Chambers
13e73b92bd Improve readability of OptionalInput widget design styling 2021-07-09 16:02:36 -07:00
Keavon Chambers
29a2b46684 Add the checkbox input widget (#204)
* Add the checkbox input widget

* Add OptionalInput widget
2021-07-08 14:10:30 -07:00
Keavon Chambers
8666ff4390 Fix horizontal scrollbar due to status bar negative margin 2021-07-05 00:38:18 -07:00
Paul Kupper
751fabb417 Implement viewport selection (#178)
* Begin implementing viewport selection

* Implement viewport click and drag selection for ellipse and rectangle

* Begin implementing line selection

* Remove debug prints

* Run cargo format

* Use DVec2 instead of kurbo::Point

* Line and polyline intersection

* Run cargo format

* Add fix for missing layer panel update

* Replace point selection with box selection

* Formatting

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2021-07-05 01:05:12 +02:00
Till Arnold
94c42ff5d7 Copy and paste layers MVP (#220)
* Initial implementation of copy and paste for layers

* Sort layers on copy and add tests

* Fix logger init for test

* Fix `copy_paste_deleted_layers` test

* Readd erroneously removed svg

* Make Layer serializable and cleanup

* Add test for copy and pasting folders

* Cleanup

* Rename left_mouseup

* Cleanup

* Add length check to test

* Fix typo

* Make mouseup, mousedown more consistent
2021-07-05 00:34:47 +02:00
0HyperCube
1d2bb6fb2b Re-add PartialEq removed in #230 (#232) 2021-07-04 22:27:09 +01:00
Paul Kupper
12b373f1ab Don't use ESLint formatter for Rust files in VS Code (#228)
* Remove default formatter from vscode settings

* Only use eslint formatter on js/ts/json/vue files
2021-07-04 22:29:50 +02:00
kastenbutt
d84f7c7137 Auto-select new layer created by Pen Tool. (#235)
Signed-off-by: kastenbutt <hello@jonasklein.dev>
2021-07-03 11:28:52 +02:00
Keavon Chambers
78b369547a Downgrade @vue/compiler-sfc which breaks linting 2021-07-02 15:02:01 -07:00
Keavon Chambers
739f420224 Update wasm-pack dependency and others, fixes #167 2021-07-02 13:50:19 -07:00
Keavon Chambers
cd5e36af28 Add styled scrollbars (#231) 2021-07-01 22:08:23 -07:00
0HyperCube
ece23e7c5f Remove partialeq for layers (#230)
# Conflicts:
#	Cargo.lock
#	core/document/Cargo.toml
2021-06-29 21:06:37 +01:00
Keavon Chambers
0692bc8727 Fix bug where other panel tabs would switch the document panel tabs 2021-06-26 23:46:39 -07:00
Chrs Msln
3f35c8d348 Refactor frontend input components to use the v-model Vue pattern (#224)
* Use v-model for inputs

* Add opacity to LayerTree

* Fix FloatingMenu typing
2021-06-27 08:18:47 +02:00