Commit Graph

653 Commits

Author SHA1 Message Date
Julian Descottes
b7362c7082 Merge pull request #175 from juliandescottes/feature-resize-content
Enhancement : Possibility to resize canvas content during resize
2014-05-05 22:05:10 +02:00
jdescottes
0b1977b47c Fix : Fixed styling for resize content checkbox 2014-05-05 21:58:17 +02:00
juliandescottes
1db937ae01 Enhancement : Possibility to resize canvas content during resize
- new checkbox in resize panel
- content is resized using nearest neighbor
- deactivated by default

2 bug fixes :
- remove focus after closing drawer
- fire resize event after undo/redo if size changed
2014-05-04 22:58:36 +02:00
jdescottes
38f18360b8 Fix : selection : click on non transparent pixel was cancelling selection 2014-04-30 08:30:29 +02:00
jdescottes
a060e32b15 Enhancement : #169 : Use several meta for shortcut
- can now use shift+ctrl+alt in shortcut definition
- paste opaque for selection remapped to ctrl+shift+V
2014-04-24 13:28:21 +02:00
jdescottes
cf2c0e7045 Enhancement : preview copied selection + paste only opaque 2014-04-24 00:38:21 +02:00
Julian Descottes
98aad13f1e Merge pull request #168 from juliandescottes/feature-undo-redo
Feature undo redo
2014-04-23 23:56:31 +02:00
jdescottes
af52d9a96a Enhancement : Selection tools various enhancements
- can use BACKSPACE key to delete selection content
  when no selection, backspace retains the default behavior
- cursor for rectangle selection has been changed to crosshair
- fixed a bug where selection seemed to be cropped when released out of
  the visible canvas
2014-04-23 23:47:23 +02:00
jdescottes
5541d030a5 Feature : undo redo including frame/layer actions
- Frame and Layer CRUD actions are now registered and can be cancelled
- Limited performance impact while drawing
- Improved frame cache invalidation
2014-04-22 23:57:30 +02:00
juliandescottes
c2a3ccc8d0 Simplified SAVE STATE events, added wrap method to easily build decorators 2014-04-20 13:15:30 +02:00
juliandescottes
8335c07519 Fix : layer manager was broken 2014-04-19 20:19:24 +02:00
juliandescottes
b8ef570077 Removed cached serializer in Frame.js 2014-04-19 20:04:43 +02:00
juliandescottes
d45ea00ca5 Refactored piskel controller to extract the event creation 2014-04-19 16:01:51 +02:00
jdescottes
b7e4deae00 Fix : frame and layer should be correctly selected when loading a snapshot state 2014-04-18 13:13:42 +02:00
jdescottes
0cecdc74eb Temp commit 2014-04-17 01:27:49 +02:00
jdescottes
b712a497e2 Feature : import sprites from GIF 2014-04-12 18:54:39 +02:00
jdescottes
9e78086ea8 Feature : import sprites from GIF 2014-04-12 18:48:39 +02:00
jdescottes
a59bfcab11 Feature : import sprites from GIF 2014-04-12 18:40:25 +02:00
jdescottes
29fa604d74 Fix : protect LayerRenderer against fake setDisplaySize calls 2014-04-12 15:16:18 +02:00
jdescottes
c5accf978e Fix : Plug PreviewFilmController to USER_SETTING_CHANGED 2014-04-12 14:19:28 +02:00
jdescottes
76044fa6d4 Fix : Plug PreviewFilmController to USER_SETTING_CHANGED 2014-04-12 14:19:13 +02:00
jdescottes
23f1e8908e Enhancement : performance : event delegation for previewfilmcontroller 2014-04-12 14:15:45 +02:00
jdescottes
b217f8f005 Added progress bar for GIF rendering 2014-04-12 12:09:22 +02:00
jdescottes
09319ecc1b Added progress bar for GIF rendering 2014-04-12 12:08:53 +02:00
jdescottes
3abf0897d5 Enhancement : display canvas size next to cursor coords 2014-04-12 10:14:57 +02:00
jdescottes
ee3285089a Enhancement : shape tool + shift : now constrained to minimum 2014-04-12 09:49:29 +02:00
jdescottes
4804477498 Merge branch 'master' of https://github.com/juliandescottes/piskel 2014-04-11 23:36:26 +02:00
jdescottes
dc729ee80b Feature : display cursor coordinates
- new controller CursorCoordinatesController
- added div in right column (bottom:0)
- 3 new events : CURSOR_MOVED, DRAG_START, DRAG_END
- modified tools to fire events when necessary

The cursor coordinates are displayed when the mouse is hovering the
drawing area. When the mouse leaves the area, the indication disappears.
If the user is using a tool that involves dragging (selection, rectangle,
circle), the indicator displays the original coordinates (captured during
drag start) and the current coordinates.
2014-04-11 23:32:28 +02:00
Julian Descottes
0d3a078145 Update README.md 2014-04-11 01:14:07 +02:00
jdescottes
abd5ac5959 Feature : export to ZIP 2014-04-11 01:12:01 +02:00
jdescottes
d42064d2fe Merge branch 'feature-color-palette' 2014-04-09 23:39:20 +02:00
jdescottes
dd4a544d7a Bug : current layer index was a string 2014-04-09 23:38:35 +02:00
jdescottes
39d7d4d8c8 Enhancement : Rename layers
- added rename icon in layers list
- mutualized CSS for edit icon between palette manager and layers list
- new CSS file icons.css for actions/links/buttons using icons
- layers are no longer retrieved by name, but by index
2014-04-09 23:24:25 +02:00
Julian Descottes
78974a9a93 Merge pull request #159 from juliandescottes/feature-color-palette
Feature color palette
2014-04-07 23:00:07 +02:00
jdescottes
644b72cc6e Bug : New palette name was set to object MouseEvent ! :) 2014-04-02 22:53:58 +02:00
jdescottes
1ce633bd06 Fix : Tools event listeners are now on window
Smoother user experience. Drawing shapes, selecting etc... is no longer
blocked by either the drawing canvas or the document.
2014-04-02 22:37:01 +02:00
jdescottes
c9251229fc Feature : Hold shift to preserve shape ratio
- mutualized shape tools common code in a ShapeTool class
- when holding shift and drawing a frame, the ratio is preserved
- selection and shape tools now support the mouse to leave the drawing
  area
- shape tools can go 'outside' the drawing canvas
- Frame set/getPixel now check the pixel is in range instead of crashing
2014-04-02 22:21:32 +02:00
jdescottes
7357614d9a Fix : Window resize is erasing the canvas
Issue was coming from the cached frame renderer.
During the window resize, we update the displaySize of the frame renderer,
regardless of the fact that the dimensions changed or not.

The setDisplaySize triggers a destruction of the canvas. But the
CachedFrameRenderer will render the frame only if it detects a change. In
this case, setDisplaySize has been overrided in CachedFrameRenderer to
skip any processing if the dimensions didn't change.

This behavior could be actually done in the FrameRenderer itself, but
since this is crucial to the CachedFrameRenderer behavior, I prefer to
keep it in this class.

Alternatively, could implement a way to discard caches of
CachedFrameRenderers from the outside.
2014-03-30 23:28:18 +02:00
jdescottes
090443c318 Feature : Color palette : fix spectrum issue
The palette manager UI is redrawn almost everytime the model changes.
This way, UI is always in sync with the model.

However, spectrum instances are spawning everytime a redraw is performed.
They cannot be cleaned before the redraw is performed, because if a
spectrum picker is opened, it should remain like this. This allows the
cuser to keep modifying a color without having to reopen the picker each
time he/she stops on a color.

As a workaround, I keep a reference on all the spectrum containers and
destroy them all when the manager is disposed.

Ideally I'd prefer to have a single spectrum instance that I could move
around depending on which color the user wants to edit. I.e. I want to
mutualize all the picker instances ...  But this will require a bit more
work.

Also added a notification when the user saves a palette.
Updated z-index of user-message container so that it is always above the
rest of the application.
2014-03-30 22:42:28 +02:00
jdescottes
3be4c78883 Fix : resize application on startup to adapt correctly to narrow screens 2014-03-30 21:55:29 +02:00
jdescottes
3765ce3d5e Issue #158 : updated zindex of minimap zoom square 2014-03-30 21:29:44 +02:00
jdescottes
4410aa5420 minor fix : remove console.log in PalettesListController 2014-03-30 21:01:14 +02:00
jdescottes
6d62d11872 Fix : drawing with the right mouse button (FF, IE)
Mousemove events do not have the correct button information
Need to keep the state of which button is clicked at which moment

This was actually the initial implementation ...
But I removed it because I couldn't remember why we did this in the
beginning.

Added lots of 'warnings' in comments, but won't be safe until we get good
integration tests.

References :
- FF : https://bugzilla.mozilla.org/show_bug.cgi?id=297919
"What if multiple buttons are pressed during mouse move?  And how does the
integer field (button) indicate that no button is pressed?  I think this
should be wontfix -- if people need button information during mouse move events
we need a new way of getting it (buttonSet), not the same way it works for click,
etc."
- IE : couldn't find any reference ...
2014-03-30 20:39:00 +02:00
jdescottes
b734db28dc Css fix + bug fix : double palette created when empty local storage 2014-03-30 16:54:26 +02:00
jdescottes
5b7e07e11e Fixed : spectrum pickers where no destroyed properly 2014-03-30 16:20:58 +02:00
jdescottes
7f17e17cff Minor css fix : adding 5px margin to palettes-list-colors 2014-03-30 15:38:13 +02:00
jdescottes
231ae9e165 Feature : color palette
- Fixed : manager UI is redrawn after save
- the Selected palette is saved as a user preference
- default background is now the dark one
- the selected palette is not reset after closing palette manager
2014-03-30 14:56:31 +02:00
jdescottes
4947cc4820 moved css to avoid img relative path issue after build 2014-03-30 03:11:31 +02:00
jdescottes
0e94606f41 moved css to avoid img relative path issue after build 2014-03-30 03:10:34 +02:00
jdescottes
b0ed5e4a7f Feature : palette color manager
- implemented save all functionality
- minor css update
2014-03-30 01:59:14 +01:00