Commit Graph

36 Commits

Author SHA1 Message Date
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
85084b8279 Added localstorage save + read 2014-02-10 01:00:16 +01:00
jdescottes
e4cf2ac40b Merged 2013-12-18 23:22:25 +01:00
juliandescottes
b77f7057d7 save-panel : added piskel descriptor 2013-12-10 21:25:36 +01:00
grosbouddha
46b267c2a4 Merge pull request #143 from juliandescottes/add-keyboard-shortcuts
Add keyboard shortcuts
2013-11-24 06:23:47 -08:00
juliandescottes
e852fb7c57 Merge with master after PR zoom-level 2013-11-23 19:50:53 +01:00
juliandescottes
3de3c3542e Post merge fixes 2013-11-23 19:33:00 +01:00
juliandescottes
ce111be5c8 Merging from master after PR zoom level 2013-11-23 19:25:51 +01:00
jdescottes
2d3bbc73f1 Forgot to add duplicate frame shortcut to cheatsheet 2013-11-20 23:00:47 +01:00
jdescottes
6eabf01ffc feature : add keyboard shortcuts
+ decentralized shortcut declaration
+ each service/controller is now responsible for declaring its shorcuts
- documentation (cheatsheet) is still to be maintained manually
- init order matters (shortcutService has to be instanciated before
  everyone else) => should have a standalone KeyboardService singleton
  which is ready as soon as it is loaded
2013-11-19 23:46:33 +01:00
Julian Descottes
9d0f41362b Fix : typo 2013-11-19 08:15:37 +01:00
Julian Descottes
7d296f3dc3 Fix : add keyboard shortcuts : forgot misc keys 2013-11-19 08:13:16 +01:00
jdescottes
e0b76f5329 feature : add keyboard shortcuts : added help panel displayed on shift+? 2013-11-18 23:53:12 +01:00
jdescottes
f0ef016309 feature : add keyboard shortcuts : initial impl
+ added shortcuts for all tools in ToolController
+ modified structure of tools in Controller to Array of descriptors to
allow to declare shortcuts directly when setting up the tool controller
2013-11-17 22:07:26 +01:00
jdescottes
25e6470499 feature : add keyboard shortcuts : keycodes
+ moved keycode translation to KeycodeTranslator
+ made KeycodeTranslator more generic to handle 0-9 and a-z keys
+ small refactor in KeyboardEventService
2013-11-17 21:15:53 +01:00
jdescottes
86cd1cdeaa fix : reduce piskel model size
+ moved Serializer and Deserializer to utils.serialization package
+ put all backward code in utils.serialization.backward
+ added static method on Deserializer to make its usage similar to other
  utils in the package
- still not happy with the names used in Deserializer classes
  (deserializer.deserialize ...)
2013-11-15 00:03:05 +01:00
jdescottes
df4978f6af fix : reduce piskel model size
+ piskel deserialization is now clearly asynchronous
+ added utils.Deserializer (not a singleton though, more a builder/loader)
+ utils.Deserializer constructor expects a callback
+ when all layers are loaded and piskel is ready, the callback provided by
  the client is called with piskel as the first argument
- Deserializer doesn't fit in the utils package, which should be reserved
  to singletons : can move it to service as a PiskelLoaderService, and
  Deserializer could remain with only the purely static methods
- ImportController is realying on the Deserializer to build a Piskel but
  it shouldn't. Find a way to mutualize the code necessary to create a
  Piskel from an array of pskl.model.Frame
- still cleanup to do in app.js
- comments to add as well
2013-11-13 23:39:43 +01:00
jdescottes
4f54715f70 fix : reduce piskel model size
- Initial implementation : working but ...
- MODEL_VERSION has been bumped to 2
- The loading process is now theoretically asynchronous (loading images to
  read the content of the layers), but for now, the asynchronous behaviour
  is hidden behind a nasty hack, which is somehow similar to lazy loading.
  When loading the piskel, a Piskel is created synchronously, with fake
  empty frames, and as the images will get loaded, the fake frames will be
  replaced by the actual frames.

  I really don't like this, and the asynchronous nature of the loading
  should be clearly expressed
- There is no backward compatible deserializer for the previous version of
  the model (1)
- The Serializer utils is just badly designed. Serialization and
  deserialization should be splitted into two different classes
- Saving & loading are still done in app.js and should be moved to
  services

BUT : the size of the piskels is now pretty small. A piskel which was
using 890kB previously is now using only 10kB. Although it should be
noted, that after gzip there is no significant difference between this
version and the existing one. The only gains we can really expect with
this are : less disk space used on appengine, ability to reuse the
layers' pngs directly on piskel-website (but to be honest I can't see any
valid use case for this)
2013-11-08 00:44:24 +01:00
jdescottes
5693f34fb9 fix : LocalStorageService deserialization 2013-11-01 23:30:33 +01:00
jdescottes
4eebff804b Layers:Review:Renamed layers-container to layers-list-container. Extracted URLs to Constant.js 2013-09-29 23:26:09 +02:00
Julian Descottes
be9238c9b1 Layers : FRAMESHEET_RESET -> PISKEL_RESET
Framesheet no longer exists.
2013-09-29 00:01:18 +02:00
Julian Descottes
ca427e0853 Dev environment : closure compiler + jshint update
Fixed error raised by closure compiler
Added es3 option to jshint (detect trailing commas)
Added curly option to jshint (missing curly braces for if/for blocks)
Removed trailing whitespaces (not enforced through jshint though)
2013-09-28 23:52:51 +02:00
jdescottes
6528c7724b Issue 24 : Layers
!! NOT STABLE !!
Initial implementation. No UI update yet.
Check js/model/Piskel.js and js/model/Layer.js for an overview of the new
API.

Piskels can be saved on the existing service.

Previous piskels cannot be loaded. This should be fixed soon.
2013-09-22 21:02:43 +02:00
jdescottes
4f6863eb8a Gif export panel first draft 2013-09-07 17:50:43 +02:00
jdescottes
c23de31e07 Merge from master + bugfixing on b64 2013-08-10 14:47:26 +02:00
jdescottes
87a68bfe21 Dev environment:force indentation to 2 spaces. Added new grunt module, grunt-leading-indent to check space consistency, and modified jshint options to enforce 2 spaces 2013-08-10 12:11:16 +02:00
jdescottes
91bacd1dd9 Added concat and uglify tasks to grunt. Piskel on master will only be able to work in debug mode, by passing ?debug in URL. The minified version is built in /build, which has been added to .gitignore 2013-08-04 18:27:32 +02:00
jdescottes
032c8c4485 Added logic to switch behavior between appengine and static mode. Removed piskel on window in favor of pskl.app 2013-07-14 23:04:42 +02:00
Vince
2a32a7f9fe Fix user messages
I fixed the local storage service, user messages were jsut working fine.
I updated the UXD, they are now sticky to the right-bottom corner.
2013-06-13 20:07:12 +02:00
juliandescottes
0d1775b24c Dynamic size for frame 2012-09-16 18:48:32 +02:00
Vince
e235e34e0f Removing dead code 2012-09-16 15:36:45 +02:00
Vince
12680b7b8b fix keyboard eventservice 2012-09-16 13:27:00 +02:00
Vince
c4084cf9b6 move keyManager.js to KeyboardEventService.js 2012-09-16 13:19:31 +02:00
Vince
7d529aeaaa Move HistoryManager to a service 2012-09-16 13:10:05 +02:00
Vince
de3fa1ea01 Refactoring localStorageService into a prototype based class 2012-09-16 12:59:19 +02:00