Commit graph

276 commits

Author SHA1 Message Date
DD
86bec30790 Remove ungroup on import 2018-04-26 11:00:28 -04:00
DD Liu
0755df9990 Add line tool 2018-04-25 15:26:48 -04:00
DD
bec01149ea Fix review comments 2018-04-20 11:20:38 -04:00
DD Liu
8d55265de1 Double resolution on import and halve on export 2018-04-20 11:17:42 -04:00
DD
15c3f44388 Fix lint 2018-04-17 15:55:40 -04:00
DD
420e1013cf Use a separate state to track the size of the bitmap brush tool from the brush tool 2018-04-12 16:56:54 -04:00
DD
2043ee4609 Merge branch 'develop' into raster 2018-04-12 14:33:26 -04:00
DD
64686feb8b review comments 2018-04-12 14:27:07 -04:00
DD
9c84537a42 Switch tools when switching editors. Pipe through vector brush size for now. 2018-04-12 10:56:16 -04:00
DD
a4045df526 Anti-anti-alias 2018-04-10 19:06:47 -04:00
DD
a74e5882cd Rename undo formats, and make format change on costume change skip convert 2018-04-10 18:02:44 -04:00
DD
40871b1c0f Rename undo formats, and make format change on costume change skip convert 2018-04-10 18:02:30 -04:00
DD
c6a282c97b Add ellipse drawing algorithm and temp brush canvas for efficiency 2018-04-10 14:24:36 -04:00
DD Liu
887f528b0a allow transparent paintbrush 2018-04-10 14:24:36 -04:00
DD Liu
ba51fe59a0 Draw lines. Fix raster layer missing when changing costumes. 2018-04-10 14:24:36 -04:00
DD
31561d8bda Add bitmap brush tool button 2018-04-10 14:22:47 -04:00
DD
2b267ba6e9 Fix tests 2018-04-10 10:38:55 -04:00
DD
0529c43c25 Change back to vector when switching costumes 2018-04-09 20:21:04 -04:00
DD
a6e7fb4251 update button state when undoing between modes, hide vector tools 2018-04-09 20:10:53 -04:00
DD
6e4ab3191a Get undo/redo working 2018-04-09 17:47:11 -04:00
DD
15053d15f0 convert to vector on button press 2018-04-06 16:57:59 -04:00
DD
94ae07f1f2 Bitmap button rasterizes 2018-04-06 16:23:43 -04:00
DD
f995f30e37 Button toggles on switch format 2018-04-06 11:52:34 -04:00
DD
0bf2355cbc Make raster not blurry on zoom 2018-04-05 17:37:19 -04:00
Paul Kaplan
943d64b437 Fix keyboard disabling 2018-03-30 13:16:11 -04:00
Paul Kaplan
848aa7e838 Disable keyboard shortcuts because they interfere with text tool 2018-03-30 13:00:11 -04:00
Paul Kaplan
449192ebb3 Remove the preprocessing step of stripping newlines.
It does not seem to be required anymore: I'm no longer seeing errors
from the watermelon.

It was breaking multiline text import from scratch 2 SVGs which use
newlines.
2018-03-29 11:46:56 -04:00
Paul Kaplan
d9587ba8d7
Merge branch 'develop' into issue/219 2018-03-28 08:51:54 -04:00
Jacco Kulman
5593b03074 Added the setSelectedItems call for wheel zooming 2018-03-26 16:40:59 +02:00
Jacco Kulman
3afd232aea Call setSelectedItems from zoom functions (Fixes #219) 2018-03-26 12:59:26 +02:00
DD
6bfc3f23df Don't apply outline to text by default 2018-03-22 17:53:17 -04:00
DD
865554d7f3 lint 2018-03-22 17:20:39 -04:00
DD
b1d5111ed4 fix lint 2018-03-22 16:22:24 -04:00
DD
28da99bb05 Check for text area in a better way 2018-03-22 15:26:43 -04:00
DD
baf628c5c9 Detect view bounds changes and update the edit text matrix in response 2018-03-22 15:23:51 -04:00
DD
c75d3f63ba Add undo 2018-03-22 14:31:03 -04:00
DD Liu
86ee3d8cdd Edit text moves with text transform 2018-03-22 11:07:10 -04:00
DD
da0864b81b Add a text edit area 2018-03-20 14:47:14 -04:00
DD
cbd2a89cd0 Merge branch 'develop' into textTool 2018-03-20 14:16:47 -04:00
DD
1c093df92b Only unblur inputs if you clicked on the paper canvas 2018-03-20 11:03:41 -04:00
DD
79e7d21023 Change proptype 2018-03-16 14:16:27 -04:00
DD
8d61a7b060 Move the text edit target to the state and make fill work 2018-03-16 11:39:09 -04:00
DD
7a0a0784e1 Unfocus text fields when canvas clicked 2018-03-15 13:23:03 -04:00
DD
de0f12074d Unfocus text fields when canvas clicked 2018-03-15 13:20:07 -04:00
DD
f9aabe1beb Fix some bugs 2018-03-14 18:00:38 -04:00
DD
8e86222097 Basic text edit 2018-03-12 17:51:23 -04:00
DD
8e7ae67ae6 Make the text tool a real tool 2018-03-09 14:40:34 -05:00
DD
9a8c68e9d1 Remove all view.draw and view.update 2018-03-01 14:32:16 -05:00
Ray Schamp
9fca8dc514 Restrict exported SVG to content bounds
Previously we were exporting empty space to the right and bottom of the artwork, which was reflected in sprite thumbnails as a tiny version of the sprite.
2018-02-27 09:20:34 -05:00
Paul Kaplan
270c92a849 Buffer the paper canvas offscreen for picking to ensure safe access.
This gets around the bug #276 where chrome cannot handle getImageData
off a canvas on HDPI screens. In the interest of having a single
code-path, and because does not impose a large performance burden, I
think we should just use it for all platforms until chrome is really
fixed.

Also it is important to note that because this bug has to do with how
they handle accelerated 2d canvas contexts, it does not impact the stage
color picking, so that does not need to be changed.
2018-02-06 18:56:26 -05:00
DD Liu
0a308e8e44
Merge pull request #268 from fsih/flipAll
Flip all
2018-01-30 15:57:30 -05:00
DD
7a4822298b Remove special case flip around center when nothing is selected 2018-01-29 15:03:05 -05:00
DD Liu
28ac7eaa7d
Merge pull request #269 from fsih/shiftLineTool
Hold shift to lock line tool to 45 degree angles
2018-01-26 17:37:15 -05:00
DD
c9165b0b4c Revert "Don't enable if there is nothing in the editor"
This reverts commit e4ca0482b8.
2018-01-26 17:21:47 -05:00
DD
e4ca0482b8 Don't enable if there is nothing in the editor 2018-01-25 18:32:43 -05:00
DD
385574fd46 Hold shift to lock line tool to 45 degree angles 2018-01-25 14:45:36 -05:00
DD
3ab1067c65 flip all 2018-01-25 11:33:43 -05:00
DD
ed04f4652c Fix point rotation point is relative to, which is not viewBox upper left 2018-01-24 19:40:19 -05:00
DD Liu
1ff5fdff38
Merge pull request #266 from fsih/centering
Use translate instead of position for costume centering
2018-01-24 18:53:13 -05:00
DD Liu
35baf315a1
Merge pull request #263 from towerofnix/shift-scroll
Add holding shift to force horizontal scrolling
2018-01-23 19:03:59 -05:00
DD
6a8803b9e7 liiiiiiint 2018-01-23 14:59:57 -05:00
DD
86c9cb1e27 Use translate instead of position for costume centering. 2018-01-23 14:35:08 -05:00
Florrie
3341470cf0 Only use deltaY-horizontal-scrolling if deltaX is unset 2018-01-22 22:21:52 -04:00
Florrie
bffcf4dd96 Add holding shift to force horizontal scrolling 2018-01-20 22:17:17 -04:00
Paul Kaplan
7aff96c3ff Only update the full color state after eyedropper changes.
This prevents the sliders from changing when other sliders change (i.e.
bringing brightness down to 0). I needed to reorder the callback before
deactivate so the color picker can know that the update is coming from
the eyedropper. Also updated the comment to reflect what is really going
on.
2018-01-19 09:58:47 -05:00
Paul Kaplan
0279ba095c Enforce state update before propogating change through props. 2018-01-19 09:43:25 -05:00
DD
379ecf85fc Add an initial undo state when importing a blank costume 2018-01-12 11:22:26 -05:00
DD
300bbc80f3 Run ensure clockwise after flip, since flip makes everything counterclockwise which breaks fill 2017-12-22 17:44:14 -05:00
DD
04560d32ef Flip 2017-12-22 17:44:14 -05:00
DD
801fc926a0 Change .1 to .5 since we figured out that it doesnt matter and .5 seems less arbitrary 2017-12-22 17:30:05 -05:00
DD
db5ddcbe87 Change handle ratio to make squares circles 2017-12-22 11:32:06 -05:00
DD
29b5c931f2 fix lint 2017-12-21 17:03:28 -05:00
DD
a0c89642d8 Make state change even when select items dont change so that handle changes work. Make the edge code pick the normal in a more well defined way 2017-12-21 15:38:24 -05:00
DD
07b30aa55b Handle pointed and curved 2017-12-21 15:38:24 -05:00
DD
0fc9fd151d Set enabled state based on whether any points are selected 2017-12-21 15:38:24 -05:00
DD
2dbce9186d alphabetize 2017-12-20 14:44:39 -05:00
DD
f5c2fe2dd6 Break out mode tools 2017-12-20 14:34:32 -05:00
DD Liu
a35a0f7933
Merge pull request #221 from fsih/fill
Fill tool
2017-12-19 16:43:14 -05:00
DD
dcabea2a99 Convert SVGs to clockwise when importing 2017-12-19 14:40:00 -05:00
DD
814ec160b3 Fill tool for fills (not strokes) 2017-12-19 13:47:39 -05:00
DD
207341f47f Basic fill tool 2017-12-19 13:47:39 -05:00
Paul Kaplan
bdd70165c8 Add missing code for updating stroke color from eyedropper 2017-12-19 10:47:12 -05:00
Matthew Taylor
21dc3a4b7f
Merge pull request #212 from mewtaylor/issue/gh-147
Implement eye dropper for paint editor
2017-12-15 11:04:54 -05:00
Matthew Taylor
8c2fc475f6 updates from @paulkaplan’s feedback
1. Removes the cursour over loupe, and fills the loupe center’s color correctly
2. Fixes a console error and loupe initialization issue
3. Increases the size of the swatches

Thanks @paulkaplan!
2017-12-15 10:09:19 -05:00
Matthew Taylor
54e1e34127 don’t close popover on eye dropper click
and also update the hsv states from an eye dropper color change.
2017-12-14 14:45:26 -05:00
Matthew Taylor
0209e65ac0 accommodate zoom in eye dropper 2017-12-14 12:58:25 -05:00
Matthew Taylor
d87adbeac5 remove shouldComponentUpdate
also do proper validation of `previousTool`
2017-12-13 17:18:53 -05:00
Matthew Taylor
ae0358079e use pixelRatio instead of scale constant
Turns out that the width/height paper sets on the canvas is tracked at scale to the width/height we set in the `pixelRatio` value, so use that to handle grabbing pixel color rather than a constant we set.
2017-12-13 13:13:43 -05:00
Matthew Taylor
c8094af69e don’t change modes when activate eye dropper
It works well to keep track of the previously active tool in redux, and reactivate that tool when the eye dropper is finished. This takes `eye-dropper` out of the mode tool reducer too, which is nice.
2017-12-13 13:12:33 -05:00
Paul Kaplan
6a7daa83a5
Merge pull request #213 from paulkaplan/strip-svg-namespace
Remove "svg:" namespace from svg before importing.
2017-12-12 10:55:53 -05:00
Paul Kaplan
0e74afc631 Remove "svg:" namespace from svg before importing.
The namespace on tags causes paperjs to fail to import.
2017-12-12 10:25:59 -05:00
Matthew Taylor
4accabbc69 Changes from PR feedback
fixes lint and gui compatibility issues shown by @paulkaplan, and also does some cleanup to references and structure as requested by @fsih. Thanks to both of you for the reviews!

FYI – part of the canvas reference change made it so that the `PaintEditor` presentation component could become a classless declaration.
2017-12-11 13:24:57 -05:00
Matthew Taylor
2183dc759f Implement eye dropper for paint editor 2017-12-08 16:52:37 -05:00
DD
5fe8369b1e Handle null items 2017-11-30 17:56:10 -05:00
Matthew Taylor
5ffdd14ff0
Merge pull request #194 from mewtaylor/issue/gh-41
Implement GH-41: Add minimum width gui
2017-11-21 11:06:05 -05:00
Matthew Taylor
27c0684e1c fine-tune the responsive design
squish some things together a bit more, including in desktop mode (in order to fit the coming “rotation point” button). Also turn canvas into 480x360, as it is in the mocks
2017-11-13 15:13:20 -05:00
Paul Kaplan
8730c28a79
Merge pull request #196 from paulkaplan/fix-object-values
Do not use Object.values
2017-11-08 13:18:06 -05:00
Paul Kaplan
b9398d2f22 Do not use Object.values
This is almost silly because the "keymirror" used to create Modes
actually ensures that the keys and the values of the object are the
same. So replace object.values with object.keys which has complete
browser support.
2017-11-08 08:32:43 -05:00
Matthew Taylor
95099d6e90 move modes to lib 2017-11-07 14:02:39 -05:00
DD
5e1fcc66ea Tools keep track of when they are 'active' (mouse down has occured on them)' 2017-11-07 11:17:11 -05:00