Commit Graph

293 Commits

Author SHA1 Message Date
jdescottes
1fe327495c Issue #305 : Allow DrawingController to zoom out to real size 2015-09-13 22:44:59 +02:00
jdescottes
089b4ea14d Issue #306 : Selection : set opacity for overlay instead of pixel per pixel 2015-09-13 21:32:45 +02:00
jdescottes
84e26b28da Issue #305 : Add 1x icon, redesign popup icon 2015-09-13 19:16:08 +02:00
jdescottes
489298e87a Issue #304 : Blur FPS range input only on change event 2015-09-13 15:49:18 +02:00
Jason Neufeld
bd8eaa4307 Uses ImageResizer for spritesheet export scaling. 2015-09-06 11:48:04 -07:00
Jason Neufeld
72edf47734 Adds the ability to export a scaled spritesheet. 2015-08-31 11:21:17 -07:00
juliandescottes
1208324d4d Copy paste bug : add unit tests for FrameUtils with null value 2015-08-09 12:37:03 +02:00
jdescottes
d962217f90 Issue #281 : Add app.settings & user pref for layer preview opacity 2015-07-26 02:00:46 +02:00
jdescottes
9800d85cb7 Add keyboard shortcuts 1 to 9 to quickly select palette colors 2015-07-24 01:16:47 +02:00
jdescottes
12cfe16cb4 Cleaning up settings and dialogs CSS 2015-06-07 12:40:40 +02:00
James Lissiak
5c46cfe20a Updating for pull request feedback
- Using labels for the import type radio buttons
- Non animated gifs can now be imported as a spritesheet
- Fixing frame slicing to ignore a partial frame while looping
2015-06-03 19:48:29 -07:00
James Lissiak
2d9001db6e Updating the spritesheet import to use size
- The import dialog now allows users to select an option between single image or spritesheet importing
- The spritesheet option allows setting of the size of an indivdual frame and the offset from the left/top from which to start slicing frames
- Selecting the spritesheet option will display a frame slice grid over the preview image to give a quick view of where the frames will be made
- When importing the spritesheet blank (transparent) frames and also partial frames will be ignored
- This allows users to import spritesheets that have been packed into a larger image with excess padding
2015-06-02 21:54:26 -07:00
James Lissiak
8ff15fd0e1 Fixing the preview frame grid stroke
- The width/height of the canvas used to draw the frame grid in the preview was incorrect, so the stroke width was too thick
- This change fixes it so the stroke width remains nice and thin by applying the correct canvas size
2015-06-01 10:50:58 -07:00
James Lissiak
8e4ea8437f Fixing unnecessary whitespace changes
- My editor added additional whitespace to several unchanged lines, so I just reverted them
2015-06-01 10:38:10 -07:00
James Lissiak
48f24c0cf3 Adding spritesheet import
- Updated the import dialog to allow users to specify the number of frames in the image (which defaults to 1 x and 1 y)
- Setting the frame count for x and y will draw a dotted line in the preview that shows where the image will be split into individual frames
- When imported with a frame count above 1, the source image will be split into the different frames and loaded just as if it were an animated gif
- This allows users to import existing spritesheet pngs, including those produced by the piskel export function
2015-06-01 10:29:52 -07:00
juliandescottes
1beeb8d6e4 Revert "Fix a GIF bug ... again"
This reverts commit f9b07b29a9.
2015-05-18 11:47:48 +02:00
juliandescottes
f9b07b29a9 Fix a GIF bug ... again 2015-05-18 10:40:05 +02:00
Max Eden
034057dcd2 Moved subfunctions to prototype 2015-04-30 13:17:56 +06:00
Max Eden
016316518d Zip-Export: Split by layers option 2015-04-29 20:20:35 +06:00
juliandescottes
ce8d71f47e Fix : resize panel : maintain ratio is always on 2015-04-28 13:32:55 +02:00
jdescottes
d3f5a41c0d Fix popup preview on Firefox 2015-04-27 22:34:50 +02:00
jdescottes
cf62f2ac0b Merge branch 'master' of https://github.com/juliandescottes/piskel 2015-04-26 22:13:23 +02:00
jdescottes
16362e1b13 Fix : Online save failing 2015-04-26 22:07:14 +02:00
juliandescottes
6df145455e enhancement : use size-input instead of select for export 2015-04-24 14:57:01 +02:00
juliandescottes
daceb326c5 enhancement : use size-input instead of select for export 2015-04-24 14:55:00 +02:00
jdescottes
473bd4705c Add save as button 2015-04-23 23:59:05 +02:00
jdescottes
9e1cfef924 fix:focus preview popup if already opened 2015-04-15 07:27:00 +02:00
jdescottes
be3d2cf20d merge 2015-04-14 22:36:25 +02:00
juliandescottes
b480acc6a0 Added JSCS linter to enforce style conventions 2015-04-14 18:02:33 +02:00
juliandescottes
1f5272415c #261 replaced throw by console.error for recoverable errors 2015-04-13 14:33:34 +02:00
juliandescottes
e0c16486d3 fix : strip # from hexcolor before parseint16 2015-04-13 13:08:42 +02:00
juliandescottes
ba491736c1 test : add unit test for ColorUtils 2015-04-13 13:02:12 +02:00
juliandescottes
0e817a88a7 Fix for #265 2015-04-13 11:45:50 +02:00
jdescottes
3d6cd3e576 Fix post merge bugs for desktop mode 2015-04-07 23:54:49 +02:00
juliandescottes
4b7b18ca6f post merge 2015-04-07 23:15:36 +02:00
Lee Grey
f114676db7 Include save file path in "Successfully Saved" popup. Show full save path under the save button. Hide the "save to browser" portion of the save panel when running in desktop mode. 2015-03-26 20:32:27 +13:00
Lee Grey
93deb1c2c5 Just adding semicolons to make the linter happy 2015-03-24 22:33:14 +13:00
Lee Grey
6a6f75b3ce Moved desktop lO logic to new DesktopStorageService class. Bound keypresses for ctrl-o, ctrl-s, and ctrl-shift-s. Savepath is now also propagated on resize operation. SaveFile can optionally guarantee that a supplied file extension will be present on output file. 2015-03-19 23:46:53 +13:00
Lee Grey
04a1633a90 Moved desktop FileUtils into their own class. Split PiskelFileUtils::loadFromFile() so the decoding portion can be called separately by desktop load function. "savePath" is stored in piskel instance, and propagated to new instances in HistoryService. "savePath" is also stored on load so it is available for resave. 2015-03-18 00:24:03 +13:00
Lee Grey
b168e8ca76 Store user selected filePath on the Piskel instance stored in pskl.app.piskelController. Getter and Setter in PublicPiskelController for filePath. 2015-03-16 23:13:36 +13:00
Lee Grey
fa6f2e5db6 Added new save functions for when running in Node-Webkit. 2015-03-15 01:40:00 +13:00
jdescottes
6254490a23 feature #251 : Set default size in Resize pref panel 2015-03-04 08:37:37 +01:00
jdescottes
43e60e300c Set preview render flag when updating TILED_PREVIEW seW 2015-03-03 23:50:19 +01:00
jdescottes
fe95abca0f Switch to template for popup preview (easier integration) 2015-03-03 23:36:12 +01:00
jdescottes
bcecd3058b Popup preview : refactor, cross browser, WIP
- moved preview controllers to pskl.controller.preview
- renamed PreviewFilmController to FramesListController
- renamed AnimatedPreviewController to PreviewController
- fixed init of popup preview on IE (use ownerDocument to create
  TiledFrameRenderer container) => should try with innerHTML
- moved open popup button inside the minimap (show on hover)
2015-02-28 10:56:15 +01:00
jdescottes
68a807ccb5 Forgot PopupPreviewController.js 2015-02-27 23:57:14 +01:00
jdescottes
7a355b39a0 Refactored HistoryService, CurrentColorsService, draft for popup preview 2015-02-27 23:54:18 +01:00
jdescottes
0f1489727c Removed JQuery from ImportController 2015-02-26 22:07:36 +01:00
jdescottes
bab3d6677e Remove JQuery from all setting controllers 2015-02-26 01:25:33 +01:00
jdescottes
4f2f01ea36 Wrapped applicationSettings in FORM 2015-02-23 00:32:34 +01:00
jdescottes
8592cd2e53 Moved resize+app settings to AbstractSettingController 2015-02-23 00:23:11 +01:00
jdescottes
b4c1a4c714 Merge branch 'master' into fix-palette-bugs 2015-02-22 23:08:21 +01:00
jdescottes
3585a6f96e Merge resize content and resize canvas in single form 2015-02-22 23:01:43 +01:00
juliandescottes
0914e2816e Added Event utils to easily add/remove events without leaks. Added Max FPS setting to appl settings 2015-02-22 18:03:46 +01:00
juliandescottes
0b41c0f648 Removing jquery leftover 2015-02-22 16:47:44 +01:00
juliandescottes
beb2fa6ba9 Removed JQuery from ApplicationSettings 2015-02-21 15:41:32 +01:00
jdescottes
61fb6c5e6f Extract resize anchor code to dedicated widget file 2015-02-20 01:40:34 +01:00
jdescottes
d310a77893 Enhancement : choose anchor for resize canvas 2015-02-17 02:06:52 +01:00
juliandescottes
84f366e7e4 enhancement : resize panel 2015-02-15 23:41:58 +01:00
jdescottes
c7131678f8 Fix mousewheel event for IE11 2015-01-24 00:00:08 +01:00
juliandescottes
5831447f75 Fix #242, onion skin rendered not cleared if 0 frames 2014-12-27 15:02:41 +01:00
jdescottes
043f077408 Bug in undo when cancelling Shape tool used with Shift key 2014-12-24 08:27:54 +01:00
jdescottes
123ea31191 Cleanup minimapController, center previewFilm canvas 2014-12-21 18:38:14 +01:00
jdescottes
0642e17aa8 Draw lines of pixels instead of single pixels 2014-12-19 08:28:15 +01:00
jdescottes
1402394d07 Animation pauses when FPS slider at 0FPS + slight perf improvement 2014-12-18 23:57:34 +01:00
jdescottes
e1ba57c92f cleanup MinimapController 2014-12-18 22:29:14 +01:00
jdescottes
2db04fe7d6 Support rectangular resolution & maximize viewport usage 2014-12-18 21:42:03 +01:00
jdescottes
2ab1e29365 Merge branch 'master' into feature-add-effects 2014-11-23 21:54:31 +01:00
jdescottes
5afec16258 Cleanup of console.log in MinimapController.js-n 2014-11-23 21:48:32 +01:00
jdescottes
fad483ce7a Increased movement speed 2014-11-23 21:44:51 +01:00
jdescottes
b10e87d2b7 Fix for issue #189 : user can move the viewport via click n drag of middle mouse button 2014-11-23 21:37:34 +01:00
jdescottes
61ee1d9b32 Added clone tool + icon 2014-11-23 16:27:12 +01:00
jdescottes
ce1a5c4918 Rotate non square sprites, added rotate icon, unit tests for transforms 2014-11-23 15:03:35 +01:00
jdescottes
796cd4466e Added Rotate tool + abstract Transform tool 2014-11-22 00:07:11 +01:00
jdescottes
0f49c884f2 Mutualize HTML generation for drawing tools and transform 2014-11-21 01:15:55 +01:00
jdescottes
c8dae1cb79 Added mirror transformation 2014-11-19 23:00:25 +01:00
jdescottes
54837d0e21 Issue #228 : Zoom is very slow on Firefox 2014-11-01 14:00:35 +01:00
Andrey Etumyan
ac5083633b Combining oninput and onchange events for the FPS counter. 2014-10-31 22:38:11 +04:00
jdescottes
c32af500dc add notification if image upload fails 2014-10-01 01:21:49 +02:00
juliandescottes
fe5e8966a5 added shortcuts to select previous / next color in palette 2014-09-27 11:04:03 +02:00
jdescottes
8989e984cb added dedicated style for colors-list for IE and FF + bug fixing on ProgressBarCOntroller for FF 2014-09-23 08:00:46 +02:00
jdescottes
00dd660571 Use dedicated service to display progress information 2014-09-22 23:51:28 +02:00
jdescottes
8a29b78af8 Merge branch 'master' into enhancement-palette-sorting
Conflicts:
	src/js/utils/FrameUtils.js
2014-09-21 21:56:22 +02:00
jdescottes
9ef46d5ec5 added FrameUtils unit tests 2014-09-21 21:39:54 +02:00
jdescottes
6445b44d02 Moved image import to worker 2014-09-20 09:14:21 +02:00
jdescottes
9afe69cb87 Split CreatePaletteControllers in ctrl + widget for colors list 2014-09-18 07:59:56 +02:00
jdescottes
508fb79c32 Homogeneize layout, drop palette 2014-09-18 07:18:07 +02:00
jdescottes
8ebdc4cd41 Enhancement palettes : Added download palette
- palettes can be downloaded as GPL palettes
- slightly tweaked the UI of hsl rgb picker
- switched preferred format of spectrum to hex
2014-09-17 01:32:59 +02:00
jdescottes
fab9c6e836 select new palette after saving 2014-09-16 00:37:24 +02:00
juliandescottes
4ed7338f25 Feature : merge layers
Added feature to merge a layer with the layer below
Done at #jsconfeu2014 :)

New icon in icons : merge-icon.png
TODO : reorder the icons folder, it's waaaaaaay too messy !!
2014-09-13 20:10:05 +02:00
jdescottes
90845b3a62 Enhancement : Color palettes
- Added clone feature when editing existing palette
- Added arrow up/down to increase decrease input values
- Paint.net palettes are supported
2014-09-09 23:53:57 +02:00
jdescottes
e457209c8f Enhancement : Palette color creator
- Added import button on create palette dialog
- implemented import from images
- missing limitation on color count when importing !!
- should remove button when editing existing palette
2014-09-07 14:31:28 +02:00
jdescottes
92d7109ef7 Enhancement : Palette colors creation
- Added cancel button to create palette dialog
- Added escape/unescapeHtml methods to pskl.utils
- Escaping palette name now ...
- Removed outdated comment in app.js regarding appEngine token
- Added a call to destroy() during dialogClose of AbstractDlgCtrl
2014-09-07 12:22:44 +02:00
juliandescottes
6b32239fa1 fixed bug with hue slider capped to 255 2014-09-06 22:37:05 +02:00
jdescottes
8441f28ac1 Palette creator can save palettes to local storage 2014-09-06 12:37:11 +02:00
jdescottes
e8db80a0ec Extracted ColorPicker code to dedicated widget package (noooooooo) ; Added basic palette creation mechanism (list colors + add color) 2014-09-04 08:34:17 +02:00
jdescottes
7d9f8a8ccf Added color picker in create palette popup 2014-09-04 00:22:02 +02:00
juliandescottes
073f46b0d7 starting palette implementation using creation wizard 2014-08-30 18:39:54 +02:00
jdescottes
32e528525c Small cleanup zip export screen 2014-08-27 01:12:29 +02:00
jdescottes
1a8f10c63d Merge branch 'posva-master' into feature-add-tests 2014-08-26 22:46:33 +02:00
Eduardo San Martin Morote
978319af20 Allow to rename basename for PNG in ZIP export option.
This may helps #192
2014-08-22 11:27:45 +02:00
jdescottes
1955d3f8f5 First implementation of tool tester 2014-08-21 00:50:59 +02:00
jdescottes
c1900a07f0 Final fixes before new version 2014-07-15 00:31:24 +02:00
jdescottes
b556143b66 fixed fps when restoring backup 2014-07-14 14:39:21 +02:00
jdescottes
5350255eee fixed lighten reset + fixed history bug 2014-07-13 17:59:53 +02:00
jdescottes
d4884a2de5 Capture events on tmp download link created by FileUtils 2014-07-13 15:54:13 +02:00
jdescottes
581bd46dcd Cleanup + updated tooltips 2014-07-13 15:15:45 +02:00
jdescottes
e5cb0717e2 cleanup 2014-07-13 00:43:35 +02:00
jdescottes
6af04bb599 cleanup 2014-07-13 00:21:36 +02:00
jdescottes
dfc3bfd181 Fixed Gruntfile for ghpages export 2014-07-12 21:14:07 +02:00
jdescottes
ad3dd935e0 Create 2 new dialog controllers
Image import is now triggering a popup after selecting the file.
Same for local saves.

Drag and drop of .piskel files opens the piskel immediately !

Remains to do :
- redesign the dialog for import image and browse local
- create dialog for recover session
- improve recover session to handle more than the last session
2014-07-12 15:34:50 +02:00
jdescottes
b2fbe269d3 Merge branch 'master' into feature-export-to-file 2014-07-12 00:46:27 +02:00
jdescottes
b66d5ee93b Cleanup of tooltip generation 2014-07-11 00:14:21 +02:00
jdescottes
982a5ab048 Refactoring tooltip code + display CMD on mac 2014-07-10 01:32:16 +02:00
jdescottes
a6d70920e2 Improve tooltip design 2014-07-09 07:56:22 +02:00
jdescottes
4aac65fb9e Settled on temp icon for swap colors 2014-07-08 20:04:16 +02:00
jdescottes
b3bb2472f1 perf step 1 : ok on chrome,horrible on FF 2014-07-07 22:48:13 +02:00
jdescottes
41a4ee3f3d cleanup of import tab 2014-07-06 12:55:29 +02:00
jdescottes
f8b6d7b0d3 Merge branch 'master' into feature-export-to-file 2014-07-05 23:53:03 +02:00
jdescottes
2c235e659b Fixed layout on FF, removed options in drawer 2014-07-05 11:39:02 +02:00
jdescottes
a77168986a Enhancement : Shortcuts for onion kin + layer prev
Added 2 new icons :
- Animated Preview Panel : toggle onion skin
- Layers Toolbox : toggle layer preview

Added an icon font generated with icomoon.

SVGs for both icons have been made under Inkscape and are kept under
misc/svg.

All reference SVGs have been moved to misc/svg.

Added 2 keyboard shortcuts for toggling onion skin / layer preview :
- alt L : toggle layer preview
- alt O : toggle onion skin
2014-07-05 11:27:11 +02:00
jdescottes
24186d5aec Added keyboard shortcuts 2014-07-04 19:17:02 +02:00
jdescottes
7b3f5ee858 Merged changes 2014-07-03 23:40:30 +02:00
jdescottes
fa4e96e7e5 Added documentation in CachedFrameProcessor 2014-07-03 23:23:31 +02:00
jdescottes
fa626532ba cleanup of performance improvement 2014-07-03 00:48:49 +02:00
jdescottes
a2e2459169 cleanup of performance improvement 2014-07-03 00:09:47 +02:00
jdescottes
8a70943b09 Fix : fix classes extending simplePen 2014-07-02 07:34:07 +02:00
jdescottes
d126023c4a temp 2014-06-30 20:38:14 +02:00
jdescottes
3efa94dce5 Merge branch 'master' into feature-export-to-file 2014-06-27 07:16:48 +02:00
jdescottes
bd7ebc5f7d Fix : add backup service and make undo safer 2014-06-27 02:08:00 +02:00
jdescottes
89466d582a Feature : Save Piskel project as File
First commit :
Removed Local storage feature
Added 'download project' 'open project' options

First attempt at simplifying right panel.

To be continued ...
2014-06-23 00:49:54 +02:00
jdescottes
98f59fecf1 Feature : add onion skin option
New option in application settings : onion skin.
You can choose the overlay to display now :
- no overlay
- onion skin (default)
- layer preview (previous default)

Available in Application Settings panel.

Only one overlay can be used at the same time.
The onion skin overlay is driven by a new OnionSkinRenderer maanged by the
drawing.

The drawing controller is responsible for instanciating and 'choosing' the
overlay renderer.

When switching to a new overlay, other overlays are cleared and flushed
(they cache their rendering frame, flush empties the cache).

NB : flush is only available on LayersRenderer and OnionSkinRenderer for
now.
2014-06-19 23:33:57 +02:00
jdescottes
fbb5ccc7e2 Fix : bugs in imageToBlob and PngExportController 2014-06-17 07:46:15 +02:00
jdescottes
2809a551d7 Fix : Export to GIF : download option
In the GIF export panel, user can now choose between :
- export online (previous 'upload' feature)
- download GIF

Labels have been updated in the PNG export panel to follow the same
convention.

CanvasToBlob library was modified and moved to dedicated utils to handle
not only canvas, but also any base64 dateURI.
2014-06-14 14:21:26 +02:00
jdescottes
cdef28c60f Fix : force zoomMultiplier to 1 on using +/- 2014-05-18 17:32:20 +02:00
jdescottes
f1b6ea4ae3 Fix : zoom step depends on mousewheel event delta value 2014-05-18 16:33:01 +02:00
jdescottes
0fec4eff4a Fix: cannot detect mac touchpad : switch to throttling 2014-05-18 16:05:59 +02:00
jdescottes
6dc3a2bdf7 merge 2014-05-18 15:51:11 +02:00
jdescottes
c7c536dc80 Fix : Loading state with delete frame/layer
The Frame and Layer selected after an undo/redo are now taken from the
next state saved in the HistoryQueue.
2014-05-17 11:03:18 +02:00
jdescottes
1401c30d87 Fix : Lighten tooltip + fix for #170
Issue 170 : both selected frame and layer are kept after a resize
2014-05-17 00:38:13 +02:00
jdescottes
0c441c214b Feature : darken lighten
Added new tool to lighten/darken. By default is in lightening mode. If the
user holds ctrl/cmd while using the tool, switches to darkening mode.

If the user holds shift while using the tool, then each pixel can only be
modified once per tool usage (ie user keeps hovering the same pixel, it
won't get lighter/darker after the first time). Can be useful if you want
to keep control of the amount of colors in the sprite.

TODO :
- Ability to select explicitly lighten/darken (context menu for
tools).
- Ability to set the 'step' (ie the strength of the lighten/darken)
2014-05-16 23:51:04 +02:00
jdescottes
7569a4343c Fix : Undo/redo for eraser 2014-05-16 22:40:09 +02:00
jdescottes
21a759d8eb Fix : trigger tool move on keyup to acknowledge modifier changes 2014-05-16 22:36:23 +02:00
juliandescottes
a3108225f6 Fix : Zoom level : reduce zoom step on mac os + added keyboard shortcuts 2014-05-14 23:52:32 +02:00
jdescottes
6c882928cc Enhancement : Lossless GIF encoding
If there are less than 256 colors in the piskel, do not perform anycolor
quantization, just reuse the colors from the piskel.

Added preserveColorsParameter to gif.js library.

If nb colors>256, fallback to the previous behavior. This could be
improved by checking the number of colors for each frame. The palette is
defined independantly for each frame, so as long as a frame is <256
colors, we could reuse the original colors.

I also believe that images with more colors would get a better quality if
we could use a single color sample for all frames. This would avoid color
'gaps' as we can experience today. In any case, for piskel, < 256 is a
reasonable assumption
2014-05-12 01:06:37 +02:00
jdescottes
cf560fce0f Merge branch 'master' into enhancement-gif-encoding 2014-05-12 00:50:48 +02:00
jdescottes
cc45ede931 Initial commit 2014-05-12 00:50:13 +02:00
jdescottes
384f8f71b1 Merge 2014-05-12 00:18:34 +02:00
jdescottes
a8e0fef416 Merge branch 'master' into feature-dynamic-palette 2014-05-11 23:34:49 +02:00
juliandescottes
cfb846b6de Moved hardcoded values to constants in PaletteListController 2014-05-11 11:55:00 +02:00