Commit graph

618 commits

Author SHA1 Message Date
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
juliandescottes
85b64a9f04 test 2014-03-30 01:12:01 +01:00
juliandescottes
d2ec797496 integrate palette list with palette manager 2014-03-30 01:10:00 +01:00
jdescottes
41e52a7a39 minor css fixes 2014-03-29 18:49:31 +01:00
jdescottes
f2da622edb Merge + palette manager 1st drop
- can create palettes
- palettes are persisted to local storage
- can add colors to palettes using spectrum color picker
- can remove created palettes
- can revert changes on unsaved palettes

Merge branch 'master' into feature-color-palette

Conflicts:
	src/css/spectrum/spectrum-overrides.css
2014-03-29 18:35:56 +01:00
Julian Descottes
f2aceedefd Merge pull request #157 from juliandescottes/feature-colorpicker-hexa
Feature colorpicker hexa
2014-03-26 07:51:36 +01:00
jdescottes
173936d74f Force rgb format, remove extra padding 2014-03-26 07:50:37 +01:00
jdescottes
d4f315e0c1 Color Palette : Added popup mgr + palettes list 2014-03-26 07:41:45 +01:00
jdescottes
1f022fd4a7 Enhancement : Add hint to see Keyboard cheatsheet 2014-03-18 01:45:59 +01:00
jdescottes
8581e4ec65 feature : allow user to input hexa for color 2014-03-16 23:41:38 +01:00
jdescottes
903f6817cf feature : allow to delete current selection
* Users can now use DEL to delete the current selection
* Cheatsheet has been updated accordingly
* Cheatsheet has been refactored to mutualize markup creation code
2014-03-16 23:22:47 +01:00
Julian Descottes
4b608e98a9 Merge pull request #154 from juliandescottes/feature-change-grid-size
Feature change grid size
2014-03-16 22:56:07 +01:00
jdescottes
4b0b1a4bad doc : Updated JS Doc for ImageResizer 2014-03-16 22:53:10 +01:00
jdescottes
9ae01cb074 feature : change grid size
* removed SHOW_GRID boolean, replaced with GRID_WIDTH
* gridEnabled on a frame is now infered from the grid width setting
* updated template to use a select to pick the grid size
2014-03-16 22:46:43 +01:00
jdescottes
c38300392e Updating README.md 2014-03-16 22:09:48 +01:00
jdescottes
3258f0a383 Updating README.md 2014-03-16 21:25:20 +01:00
jdescottes
87574a2b30 Cleanup project root 2014-03-16 21:15:34 +01:00
Julian Descottes
50e7d05764 Update README.md 2014-03-15 17:00:11 +01:00
Julian Descottes
b32d0ddcfe Cleanup README.md
Removed old screenshots, added actual information about the project !
2014-03-15 16:59:16 +01:00
jdescottes
f139a9c130 Fix : Drawer was not opening when clicking on text
- SettingsController : event is stopped after click on icon has been
  processed. This way onBodyClick callback is not triggered
2014-03-13 00:22:15 +01:00
jdescottes
087b8c57c5 UI : Align PNG export with GIF export
- PNG export now has its own panel
- Lots of code duplication between PNG and GIF controller => FIXIT
- Added a link displayed after image upload
2014-03-08 17:23:20 +01:00
jdescottes
0072a2c8b0 UI : Use template for drawing tool markup
Switched to templates instead of string concatenation.
Template for drawing tool LI is defined in drawing-tools template
2014-03-05 00:01:47 +01:00
jdescottes
ab401d3013 UI : Add Keyboard shortcuts on tools tooltips 2014-03-04 23:47:56 +01:00
jdescottes
a430d72415 UI : Color of zoom border minimap
Also UI : Position of selected vertical mirror pen icon
2014-03-04 23:42:32 +01:00
Julian Descottes
47c6261289 Merge pull request #153 from juliandescottes/feature-local-storage
Feature local storage
2014-03-03 23:10:49 +01:00
jdescottes
cac1fa8ed5 UX : Primary/Secondary colors usability
- Added swap colors icon
- Created SVG icon, source is in resources (Inkscape)
2014-03-03 22:50:08 +01:00
jdescottes
b51620634e UI : update display of palette tool icons 2014-02-20 18:26:35 +01:00
jdescottes
2f1e13ca20 Added private rule to gitignore 2014-02-16 22:37:09 +01:00
jdescottes
0f817ddf58 Increased timeout config for Remote build 2014-02-12 00:14:24 +01:00
jdescottes
5d4ba0b79f Added comment 2014-02-12 00:08:52 +01:00
jdescottes
aae994b3d5 Feature : Saved status and warning msg
Added saved status (*) next to title when a Piskel is updated.
Upon saving, the * disappears.

If the workspace contains an unsaved piskel when leaving the application a
message will be displayed to the user, using onbeforeunload.

This logic should also be used everywhere we display a confirm message
before a navigation.
2014-02-11 23:42:38 +01:00
jdescottes
bd0adda73f Various bug fixes
- Added missing files from previous commit
- Fixed move cursor that would remain after using a Selection tool
- Switched to mousedown for Tool Selection to avoid missed clicks
2014-02-11 22:04:44 +01:00
jdescottes
85084b8279 Added localstorage save + read 2014-02-10 01:00:16 +01:00
jdescottes
676bf1c7fd Fix : Settings drawer close usability bug
+ Settings drawer could not be closed when clicking above or below its
container. This has been fixed by changin the logic used for determining
if the click was inside/outside of the Settings drawer.

+ Added DOM utility to compensate for the limitations of JQuery
contains...
2014-02-09 21:49:08 +01:00
Julian Descottes
c105619605 Merge pull request #152 from juliandescottes/feature-resize-panel
Feature resize panel
2014-02-09 21:14:42 +01:00
jdescottes
0dc5b2bc31 Merge branch 'feature-save-panel' into feature-resize-panel 2014-02-09 21:12:32 +01:00