Commit graph

774 commits

Author SHA1 Message Date
adroitwhiz
379599905a Enforce minimum gradient width for fill tool 2020-07-28 16:01:49 -04:00
adroitwhiz
cca0832f0d Fix zero-width-outline logic
- Set the stroke color to "null" when the width is set to 0
- Properly set the stroke color state when the width is increased from 0
2020-07-28 08:39:49 -04:00
adroitwhiz
852eefc2d7 Fix gradient outlines with 0 width in select mode
Previously, if you selected a shape with a gradient outline that had a
width of 0, its outline color wouldn't be null when it should have been.
2020-07-28 08:39:49 -04:00
adroitwhiz
98daa5ee5d Gradients in line mode
The UX here isn't the best thing in the world but I think having the
functionality is important judging from the playtest
2020-07-28 08:39:49 -04:00
adroitwhiz
689532f269 Enforce minimum gradient size
This fixes the bug where percertly horizontal gradients on perfectly
vertical lines and vice versa would not be rendered at all
2020-07-28 08:39:49 -04:00
adroitwhiz
f0b1881fb0 Fix changing gradient strokes to/from null
Hopefully the comments help; the logic is kinda convoluted here
2020-07-28 08:39:49 -04:00
adroitwhiz
696e35582c Add GradientToolsModes for shouldShowGradientTools
This means that gradient tools will also be enabled for the stroke color
indicator even in fill and bitmap modes, but that's okay because the
stroke color indicator will be disabled or hidden in those modes anyway.
2020-07-28 08:39:49 -04:00
adroitwhiz
6ab7b4c67d Remove unnecessary bitmapMode params 2020-07-28 08:39:49 -04:00
adroitwhiz
a304dea338 Add gradients to bitmap shape tools 2020-07-28 08:39:49 -04:00
adroitwhiz
9f77faf5c1 Don't set color in bitmap shape onSelectionChanged
This *should* be safe because OvalTool and RectTool's wrapper "mode"
components, the only places that call onSelectionChanged, also update
the tools' color, and the color state reducers will always set the color
every time the selection changes, meaning it'll be updated anyway.
2020-07-28 08:39:49 -04:00
adroitwhiz
f625109c67 Make styleShape more flexible
Now, you can pass null in for a color instead of
{primary: null, secondary: null, gradientType: GradientTypes.SOLID}
and it'll still clear the color. Passing strokeWidth is also
optional now.
2020-07-28 08:39:49 -04:00
adroitwhiz
c81853b1b7 Make fill tool work for outlines 2020-07-28 08:39:49 -04:00
adroitwhiz
2eab5048ac Add hit result to hovered item data 2020-07-28 08:39:49 -04:00
adroitwhiz
df1989d0b0 Add gradients to vector shape tools 2020-07-28 08:39:49 -04:00
adroitwhiz
6094953ef4 Wire up stroke gradient controls
* Abstract FillColorIndicator and StrokeColorIndicator to ColorIndicator
* Replace stroke color reducer with stroke style reducer
* Add color style proptype
* Clear stroke gradient in line mode
2020-07-23 05:57:52 -04:00
adroitwhiz
f8da455005 Use createGradientObject in applyGradientTypeToSelection 2020-07-23 05:57:01 -04:00
adroitwhiz
1ecab99cfb Make style-path helpers generic over fill & stroke 2020-07-23 05:54:57 -04:00
adroitwhiz
dc430a0111 Fix setting of stroke colors in bitmap mode 2020-07-09 17:52:08 -04:00
adroitwhiz
1017911fd4 color -> style, move selection gradient into it
A "style" refers to something that can fill/stroke a shape.
Currently that's either a solid color or a gradient of some orientation.
The selection gradient type reducer has been removed and folded into the
"fill style" reducer.
2020-07-09 17:52:08 -04:00
adroitwhiz
7bab4d5ed8 Abstract color reducer into reducer-generator 2020-07-09 17:13:41 -04:00
adroitwhiz
018958ce7b Combine fill-color and fill-color-2 reducers 2020-07-09 17:13:41 -04:00
adroitwhiz
604b450b5d Simplify fill-color-2 reducer logic
why my brain hurt???
2020-07-09 16:06:04 -04:00
DD Liu
2218730c11
Merge pull request #1133 from Jacco/fix-711
Keyboard shortcuts added
2020-06-26 22:02:47 -04:00
Jacco Kulman
8a886a7b73 Only cut if something is selected 2020-06-21 10:16:16 +02:00
Jacco Kulman
78af17cccf shouldShow checks added 2020-06-21 09:57:27 +02:00
Jacco Kulman
b94a2addf3 Keyboard shortcuts added 2020-06-21 09:52:04 +02:00
adroitwhiz
8d52b31d82
Merge pull request #1119 from adroitwhiz/fix-mixed-color2
Fix color button turning white when it shouldn't
2020-06-19 12:42:44 -04:00
DD Liu
e90000b20b
Merge pull request #1120 from Jacco/fix-379
prevent scaling factor too low (per direction)
2020-06-18 21:37:35 -04:00
Jacco Kulman
0f24b4b6b5 MIN_SCALE_FACTOR & clamping instead of halting 2020-06-17 06:47:20 +02:00
adroitwhiz
013aa47bc9
Merge pull request #1108 from adroitwhiz/no-origrot
Stop setting item.data.origRot
2020-06-15 10:59:16 -04:00
Jacco Kulman
e44127b492 prevent scaling factor too low (per direction) 2020-06-13 15:11:20 +02:00
adroitwhiz
c95f882d7e Fix color button turning white when it shouldn't
If you select a group with "mixed" gradient types, then color and color2
will both be MIXED. If you then select a shape with a solid color, it
won't reset color2, which will remain MIXED. We only want the background
to appear white if color2 is MIXED *and* the gradient type actually uses
color2. This is already done in the component itself, which only shows
the "mixed" icon if the gradient type is non-solid, but
colorToBackground left out this gradient type check.
2020-06-12 02:59:35 -04:00
adroitwhiz
2a1eaa8926
Merge pull request #997 from adroitwhiz/adjust-reshape-tolerance
Adjust reshape mode handle tolerance
2020-06-09 13:19:00 -04:00
adroitwhiz
e22295b68c Add handle padding and radius 2020-06-08 16:49:49 -04:00
adroitwhiz
3dac1b6adc
Merge pull request #1097 from adroitwhiz/scrollbar-padding
Make the room between canvas edges and scrollbars count as draggable
2020-06-04 15:23:12 -04:00
adroitwhiz
32e80364c1
Merge pull request #1000 from adroitwhiz/addpoint-divideat
Use divideAt in PointTool.addPoint so that adding new points doesn't affect curves' shape
2020-06-04 15:22:29 -04:00
adroitwhiz
b8c2ba79a9 Stop setting item.data.origRot 2020-06-04 11:28:38 -04:00
adroitwhiz
dc40eea771 Extend scrollbar hitbox to canvas edges 2020-06-03 12:48:47 -04:00
adroitwhiz
d02fe5fcf0
Merge pull request #1100 from adroitwhiz/delete-origpos
Delete item.data.origPos instead of setting it to null
2020-06-03 11:37:51 -04:00
adroitwhiz
813b34c981 Delete item.data.origPos instead of nulling it 2020-06-03 11:19:40 -04:00
DD Liu
cfe04ae548
Merge pull request #1083 from fsih/bumpGridOpacity
Bump grid opacity
2020-06-02 11:45:10 -04:00
adroitwhiz
e4017aa658 Use divideAt for PointTool.addPoint 2020-05-31 16:14:14 -04:00
DD Liu
db0a0a2b9b Change to a grayer shade 2020-05-29 18:15:38 -04:00
DD Liu
323c9f634e Bump grid opacity 2020-05-24 22:59:43 -04:00
DD Liu
2e88b6d070 Add upload and download image buttons to the playground 2020-05-24 18:34:02 -04:00
adroitwhiz
ec3348dc75 Increase reshape tool tolerance to match handle size
This causes the new dynamically-sized reshape handles to match their
previous size.
2020-05-22 20:07:45 -04:00
adroitwhiz
e110a04093 Set reshape handle size to match hit tolerance 2020-05-22 20:06:37 -04:00
adroitwhiz
87e01639c0
Merge pull request #991 from adroitwhiz/tight-bitmap-selection-bounds
Tighten bitmap selection bounds
2020-05-19 15:42:45 -04:00
adroitwhiz
f76a399b83 Add comment on early return if !paper.view 2020-05-18 15:51:58 -04:00
adroitwhiz
3946cdc5f8 Move canvas dimension rounding to recalibrateSize 2020-05-16 03:56:22 -04:00