From 24186d5aec2672b9611acb8df0b37d1e15e19148 Mon Sep 17 00:00:00 2001 From: jdescottes Date: Fri, 4 Jul 2014 19:17:02 +0200 Subject: [PATCH 1/6] Added keyboard shortcuts --- src/js/controller/AnimatedPreviewController.js | 7 +++++++ src/js/controller/DrawingController.js | 9 +++++---- src/js/controller/LayersListController.js | 7 +++++++ src/js/service/keyboard/CheatsheetService.js | 4 +++- src/js/utils/UserSettings.js | 6 ++++-- 5 files changed, 26 insertions(+), 7 deletions(-) diff --git a/src/js/controller/AnimatedPreviewController.js b/src/js/controller/AnimatedPreviewController.js index 959f486e..28b79e94 100644 --- a/src/js/controller/AnimatedPreviewController.js +++ b/src/js/controller/AnimatedPreviewController.js @@ -19,6 +19,8 @@ this.updateZoom_(); $.subscribe(Events.FRAME_SIZE_CHANGED, this.onFrameSizeChange_.bind(this)); $.subscribe(Events.USER_SETTINGS_CHANGED, $.proxy(this.onUserSettingsChange_, this)); + + pskl.app.shortcutService.addShortcut('alt+O', this.toggleOnionSkin_.bind(this)); }; ns.AnimatedPreviewController.prototype.onUserSettingsChange_ = function () { @@ -122,4 +124,9 @@ containerEl.style.marginLeft = ((PREVIEW_SIZE - width) / 2) + "px"; containerEl.style.marginRight = ((PREVIEW_SIZE - width) / 2) + "px"; }; + + ns.AnimatedPreviewController.prototype.toggleOnionSkin_ = function () { + var currentValue = pskl.UserSettings.get(pskl.UserSettings.ONION_SKIN); + pskl.UserSettings.set(pskl.UserSettings.ONION_SKIN, !currentValue); + }; })(); \ No newline at end of file diff --git a/src/js/controller/DrawingController.js b/src/js/controller/DrawingController.js index 9ccdb1c4..7c6fec4e 100644 --- a/src/js/controller/DrawingController.js +++ b/src/js/controller/DrawingController.js @@ -113,7 +113,7 @@ ns.DrawingController.prototype.onUserSettingsChange_ = function (evt, settingsName, settingsValue) { if(settingsName == pskl.UserSettings.SHOW_GRID) { console.warn('DrawingController:onUserSettingsChange_ not implemented !'); - } else if (settingsName == pskl.UserSettings.OVERLAY) { + } else if (settingsName == pskl.UserSettings.ONION_SKIN || settingsName == pskl.UserSettings.LAYER_PREVIEW) { this.onionSkinRenderer.clear(); this.onionSkinRenderer.flush(); this.layersRenderer.clear(); @@ -319,10 +319,11 @@ this.overlayFrame = pskl.model.Frame.createEmptyFromFrame(currentFrame); } - var overlaySetting = pskl.UserSettings.get(pskl.UserSettings.OVERLAY); - if (overlaySetting === Constants.OVERLAY_ONION_SKIN) { + if (pskl.UserSettings.get(pskl.UserSettings.ONION_SKIN)) { this.onionSkinRenderer.render(); - } else if (overlaySetting === Constants.OVERLAY_LAYER_PREVIEW) { + } + + if (pskl.UserSettings.get(pskl.UserSettings.LAYER_PREVIEW)) { this.layersRenderer.render(); } diff --git a/src/js/controller/LayersListController.js b/src/js/controller/LayersListController.js index 27246926..b851e0e3 100644 --- a/src/js/controller/LayersListController.js +++ b/src/js/controller/LayersListController.js @@ -14,6 +14,8 @@ $.subscribe(Events.PISKEL_RESET, this.renderLayerList_.bind(this)); + pskl.app.shortcutService.addShortcut('alt+L', this.toggleLayerPreview_.bind(this)); + this.renderLayerList_(); }; @@ -69,4 +71,9 @@ this.piskelController.removeCurrentLayer(); } }; + + ns.LayersListController.prototype.toggleLayerPreview_ = function () { + var currentValue = pskl.UserSettings.get(pskl.UserSettings.LAYER_PREVIEW); + pskl.UserSettings.set(pskl.UserSettings.LAYER_PREVIEW, !currentValue); + }; })(); \ No newline at end of file diff --git a/src/js/service/keyboard/CheatsheetService.js b/src/js/service/keyboard/CheatsheetService.js index 58dd4a07..f0952e76 100644 --- a/src/js/service/keyboard/CheatsheetService.js +++ b/src/js/service/keyboard/CheatsheetService.js @@ -103,7 +103,9 @@ this.toDescriptor_('N', 'Create new frame'), this.toDescriptor_('shift + N', 'Duplicate selected frame'), this.toDescriptor_('shift + ?', 'Open/Close this popup'), - this.toDescriptor_('alt + P', 'Open the Palette Manager') + this.toDescriptor_('alt + P', 'Open the Palette Manager'), + this.toDescriptor_('alt + O', 'Toggle Onion Skin'), + this.toDescriptor_('alt + L', 'Toggle Layer Preview') ]; this.initMarkupAbstract_(descriptors, '.cheatsheet-misc-shortcuts'); diff --git a/src/js/utils/UserSettings.js b/src/js/utils/UserSettings.js index f9cd3a5c..82f4aa5a 100644 --- a/src/js/utils/UserSettings.js +++ b/src/js/utils/UserSettings.js @@ -6,14 +6,16 @@ CANVAS_BACKGROUND : 'CANVAS_BACKGROUND', SELECTED_PALETTE : 'SELECTED_PALETTE', TILED_PREVIEW : 'TILED_PREVIEW', - OVERLAY : 'OVERLAY', + ONION_SKIN : 'ONION_SKIN', + LAYER_PREVIEW : 'LAYER_PREVIEW', KEY_TO_DEFAULT_VALUE_MAP_ : { 'GRID_WIDTH' : 0, 'CANVAS_BACKGROUND' : 'lowcont-dark-canvas-background', 'SELECTED_PALETTE' : Constants.CURRENT_COLORS_PALETTE_ID, 'TILED_PREVIEW' : false, - 'OVERLAY' : Constants.OVERLAY_ONION_SKIN + 'ONION_SKIN' : false, + 'LAYER_PREVIEW' : true }, /** From a77168986aa42390175a264f2edc73e4960eae6e Mon Sep 17 00:00:00 2001 From: jdescottes Date: Sat, 5 Jul 2014 11:27:11 +0200 Subject: [PATCH 2/6] 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 --- misc/icons/SVG/eye.svg | 68 ++++++++++++ misc/icons/{ => SVG}/import-icon.svg | 0 misc/icons/SVG/onion.svg | 99 ++++++++++++++++++ misc/icons/{ => SVG}/swap-arrow-square.svg | 0 misc/icons/{ => SVG}/swap-arrow.svg | 0 src/css/font-icon.css | 33 ++++++ src/css/fonts/piskel.eot | Bin 0 -> 2320 bytes src/css/fonts/piskel.svg | 12 +++ src/css/fonts/piskel.ttf | Bin 0 -> 2156 bytes src/css/fonts/piskel.woff | Bin 0 -> 1692 bytes src/css/style.css | 51 --------- src/css/toolbox-animated-preview.css | 74 +++++++++++++ src/css/toolbox-layers-list.css | 22 ++++ .../controller/AnimatedPreviewController.js | 45 +++++--- src/js/controller/LayersListController.js | 24 ++++- src/js/utils/UserSettings.js | 8 +- src/piskel-style-list.js | 2 + src/templates/layers-list.html | 7 +- src/templates/preview.html | 4 + 19 files changed, 380 insertions(+), 69 deletions(-) create mode 100644 misc/icons/SVG/eye.svg rename misc/icons/{ => SVG}/import-icon.svg (100%) create mode 100644 misc/icons/SVG/onion.svg rename misc/icons/{ => SVG}/swap-arrow-square.svg (100%) rename misc/icons/{ => SVG}/swap-arrow.svg (100%) create mode 100644 src/css/font-icon.css create mode 100644 src/css/fonts/piskel.eot create mode 100644 src/css/fonts/piskel.svg create mode 100644 src/css/fonts/piskel.ttf create mode 100644 src/css/fonts/piskel.woff create mode 100644 src/css/toolbox-animated-preview.css diff --git a/misc/icons/SVG/eye.svg b/misc/icons/SVG/eye.svg new file mode 100644 index 00000000..9b7ed589 --- /dev/null +++ b/misc/icons/SVG/eye.svg @@ -0,0 +1,68 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/misc/icons/import-icon.svg b/misc/icons/SVG/import-icon.svg similarity index 100% rename from misc/icons/import-icon.svg rename to misc/icons/SVG/import-icon.svg diff --git a/misc/icons/SVG/onion.svg b/misc/icons/SVG/onion.svg new file mode 100644 index 00000000..7ef63a84 --- /dev/null +++ b/misc/icons/SVG/onion.svg @@ -0,0 +1,99 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/misc/icons/swap-arrow-square.svg b/misc/icons/SVG/swap-arrow-square.svg similarity index 100% rename from misc/icons/swap-arrow-square.svg rename to misc/icons/SVG/swap-arrow-square.svg diff --git a/misc/icons/swap-arrow.svg b/misc/icons/SVG/swap-arrow.svg similarity index 100% rename from misc/icons/swap-arrow.svg rename to misc/icons/SVG/swap-arrow.svg diff --git a/src/css/font-icon.css b/src/css/font-icon.css new file mode 100644 index 00000000..d0031924 --- /dev/null +++ b/src/css/font-icon.css @@ -0,0 +1,33 @@ +@font-face { + font-family: 'piskel'; + src:url('fonts/piskel.eot?-3olv93'); + src:url('fonts/piskel.eot?#iefix-3olv93') format('embedded-opentype'), + url('fonts/piskel.woff?-3olv93') format('woff'), + url('fonts/piskel.ttf?-3olv93') format('truetype'), + url('fonts/piskel.svg?-3olv93#icomoon') format('svg'); + font-weight: normal; + font-style: normal; +} + +[class^="piskel-icon-"], [class*=" piskel-icon-"] { + font-family: 'piskel'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.piskel-icon-eye:before { + content: "\e600"; +} + +.piskel-icon-onion:before { + content: "\e601"; +} + diff --git a/src/css/fonts/piskel.eot b/src/css/fonts/piskel.eot new file mode 100644 index 0000000000000000000000000000000000000000..9779c3932551c2192d36d78b1859dca560ac23cb GIT binary patch literal 2320 zcmaJ@O>9(E6h7zPcklcEpZ8`uoz6^$wxbkkr?wqX(?BtjCM5+-(UmxqLXnm>fC;!D zCc4m=7}h3k#JC}GMdCs?B${YqLZYcV6A}{^uH3N0)N|jPQl=nx-n;kwpYPl^x#tEZ zz^Va&z@T>^+(adrKi(@>w)wd8%l9Ac)&Y2M0hVAL*63Y_OJv}|Nmz#S@II_U2QHH& zg;ONC3|Gij+0>y0V=$iC?)E03N@&A}z+rsh&6g&O#-r~@@&mo^F0FMo%8S3gO-2>s z=g)VpY|t7Ize1~Ve)amfdxab4h$p%BXl1!`mN%jnfLta0^a=^&s79&f*TfI4tX;jP ze+q*5pNTK6t}k`iH}E;}_lft`I@dP9!Ow{Qhxq!X&f4 zUg?1|z?&)_&Lg3Kquuo(^ufo7o7rxBlJQA{h`38I4q6Nj6_N5-o-i_zfTa&cd+fLN&QE0*^TMp8SPd~2wjaB@1g?|R|lAd7K`an704b#8=F;v{9?)Hs^1 zDZRKa2y4}{?ey0Mqi|2H-?mlN+^y{2*R# z;KHbD#d;L^RF?_lj z#B{%%SH~Ek$$=<5Lh3@ZlE~N8py(MO+6uy%J8TZva;RKaTS1l6o^VNq+;n^^s+7w? zVW?Jd%+Rwb7{@B3Vz}jow$s>mpy3TR8iBOPD=VJ1Pvg34nQ9v`euXk{KlXjgPLhHd zrh#j6+i|7zTu0MA&lW=0u*x-E6E=MZ8HSNz1VLGzycS}>^wLlcf;OJO3q z!q7LvFfa(bd`6AF{(m*L{T!L=I>K^oOA5!fxSo_smX##2G454sRnHw99594snL=1L zA#+`ikQF0+`|P{@`)^;I_FsDlcHS57{kig!Iui4>d&1En|F~_^A)?M{>M?W5j^>>c zQwgYHg57-T&l~Q8Xg^1eSm`Ow}_1kWIBs%v{mL44K$~n

puJZ5i0 ze|F>VvAM9czP7%8Y1ciX_YTqHKt(UpEkfNWI&hWNvrvaKaGmD4>@ITb@m++FJ$L*E D_eSY0 literal 0 HcmV?d00001 diff --git a/src/css/fonts/piskel.svg b/src/css/fonts/piskel.svg new file mode 100644 index 00000000..78f687c3 --- /dev/null +++ b/src/css/fonts/piskel.svg @@ -0,0 +1,12 @@ + + + +Generated by IcoMoon + + + + + + + + \ No newline at end of file diff --git a/src/css/fonts/piskel.ttf b/src/css/fonts/piskel.ttf new file mode 100644 index 0000000000000000000000000000000000000000..49fc45d24e545f3d1c6b4d74c20fecf8211f9bb0 GIT binary patch literal 2156 zcmaJ?OK4nG82Y01b`5)*1{_i^j=K=zN z4IcuBsl_*5m^M03zo*C#^uDvaKG>`;{rnaHHpoAHWpHDY)`0v~T8%4fw=X|T?p!9H z;@Z>ImBA(6iFyEXjq-D=6p$0z6!~A1Kf1bp^OpVz2=ad-zq+=uJYe6zXXHO3-&-Ht z+5`tbCI2t-+t&x{E3a0+`wc)>J&$f~+_*_RX&9$f9ykO1T;btqBo=V0T%SMMJa<}jQ$B4=HmbQRf#N&CGC(w?^(wQdfXY;g9vaUYY zWNG3teUi`4%(F`B@iZy&vntQV-n@VJ-HTs7xOo2lSJ$rHy}u;KPxOX|dnd+s*6Kt% zj@uK}+C)2w+7mV0S{%HNc=p2Ca#|cL;yG+iogC{PpKc&FrjK{WPEIxP1V$qV>y<;T z1TkqHs?-mTM7cBpVtb3dOuXNQd+;YN;K#&W@9Jr#-^dA8n!J26BJXi}4y4obtUu4` z>GmdhcjuWMS7A2O>*`aJDANWuai^R~68ubge;#MXck6vjGMT7j*(t+Bs-lW&hLgCv zl}@o+=~q&{OEeqkVS$~`gi_SMn0Dx7b9((=&bMGaJC}!h{T9jwX4DXqoqDEfTd0a~ zX0F&@R^ieJi*b~3&Y9G8ZiG?lq;=oaIGV00y|@;Ht!CYJhFT+0c%U_8+e$Te8;1{g zS>#DBILC4@M8>kVZs=SH;dr4H#}=h2j$9L5n3ijrQQ#Y9l4iD@#i6d5x}Y*m7;#p0 z4c~J#AqCSSg~?PxFeG~P5=+B&b=|2~W1%rluh29K8U`u_s?Te=9&(wKQZs@mwX=#N zH3h`2up0WKW9?E+r>)euTyk%S)KtP})gWev?Lr-6#HJvk_z0;B%}OI*Q-jcRLUa_w zvnbdaw&iHOt&W0})0uEd8@cKDR@A81gJiVTaLmxN35;Wtkr-~dq3v`I9qD)@olYPv zs>;RF@o8LlEmIvM#xGF^?#I4w*=d@XVHUV1w;fkX&vi82^K2n>4VzrkHDS~LAj2>+ zj39{Zuo6eM?gycz{s<8>8D}*|I<76Oz;&f&TPD+kAhN6|aCl7%(;?5PW{F7}3{5zW zErsP!MKz7}Gy63f^k+z^GzMl=%d#M?hM{kUVPFt>`7auM{l7H!{eqe6I>K^oOA5!f zxSm$4mX)TlG37N|P0t+}88(DvnL=1LF>_sym{lTu=kB}r>n~qi@LzcXwz^&c9{#@i zVAroIg{EV?h7@BzC+wn|FO zzd~dc1jyJkJovW6NAM_K^kQV6Ds4{oXlZL?FO{}{jJ#sM1RbVJ+k)p{S$z*QlOhVU zunWw>E-(wbz%1+nv#=%A9xZDN%&UaE0qgW`z;!qeEASrNfUCLJh8|496nT60TwUH+ z-`KdmKM3cj@Cv*SYcL>yeFY?Xg`gGi0B+KH3EFTGZqvMw1D`3I=c@J`JKYiFF literal 0 HcmV?d00001 diff --git a/src/css/fonts/piskel.woff b/src/css/fonts/piskel.woff new file mode 100644 index 0000000000000000000000000000000000000000..6302ca0c8341caed74fdd9156a7ccebe765a10f9 GIT binary patch literal 1692 zcmZ`(ZERCj7=CZt+g&DZWsl2Nv~4{1xk)^05= z>&Nc?Ns0M7x7V7`2z1i5PM*a@~`A%v|-Ov5aCtlkJpr}Ls zG&OG5(;J;S?K$Mo;3&22tq)H2Xw8)S0%NXXb-mr%F68cFyq}tU*T#lkB$0cH@os9$ zR~7ZWI*T2ERb#xBT2%;Goz{+e?CTgSMN=LFy;j$a+(7_FL+!1t%Rinom@Sy%#2mF~ zavTAL0vLwj`Z^6dgFz3B47mfvowDK%d2y@anB0PQGa)RH0VwhD}>`s4I$<&RTD6ud&nM* z1|8Al$tqdR=T`|w-c}tUZEd8999e05Kpv2l6?EUUtsEg-&DVwBu|~f>l(hRvPsF&G zV~LMG5f?u^?iuq4BZ-j@Ju}XE)7|!Qb5bj`Iy)`>4zq2b!_(n86Vzb=9h)Pc^0yPW zguJHnHdonH`&(n46f* zWUeGL6Ib|4{B$gP{;Kt+KGi#C&Df{iGw#d&8ItA#cGX~rjSPkRNI!A%_NXgnj5}fu z-W?m{{c(H5>NR?dZqtC58#l4@6Q32mseQ{uM87cbxW?fTNxrR3yzoF9$xe3XykwnekS zbWjK;LUh}vv+T_lRnp0Zhaz-Qj!|3C6)+J`z!7kdSc5*_U`QJ`#*MN5l#Ls0XAMh+ z8}3goT#I~_m>x^VQezYGbS%wJ@~PN#^kOs@xfaQAHAP`_QBaZf)gZ@TGX^Z4lB3M~ z_>Uj1^iN53?gRAzid}jW{3mm7+^4~R#d^z`}zIlj@mb#zzehlz_HZvhHd+H8SLQKLgDH}R4DsO# zmLuL>!3xB!70kjGjHG-e-Uj -

Layers

+

Layers +
+

diff --git a/src/templates/preview.html b/src/templates/preview.html index 2a7509a2..d7129d62 100644 --- a/src/templates/preview.html +++ b/src/templates/preview.html @@ -3,6 +3,10 @@
+
From 2c235e659bd81880bed8908a5a581401ec10658f Mon Sep 17 00:00:00 2001 From: jdescottes Date: Sat, 5 Jul 2014 11:39:02 +0200 Subject: [PATCH 3/6] Fixed layout on FF, removed options in drawer --- src/css/toolbox-animated-preview.css | 7 ++++--- .../settings/ApplicationSettingsController.js | 9 --------- src/templates/settings/application.html | 11 ----------- 3 files changed, 4 insertions(+), 23 deletions(-) diff --git a/src/css/toolbox-animated-preview.css b/src/css/toolbox-animated-preview.css index 04ac857e..559e0ddf 100644 --- a/src/css/toolbox-animated-preview.css +++ b/src/css/toolbox-animated-preview.css @@ -41,21 +41,22 @@ font-size: 12px; min-width: 55px; vertical-align: bottom; - line-height: 24px; + line-height: 26px; } .range-fps { overflow: hidden; width: 100px; - height : 24px; + height : 26px; margin : 0; + box-sizing: border-box; } .preview-toggle-onion-skin { font-size: 1.6rem; color: #aaa; float: left; - line-height: 24px; + line-height: 26px; height: 100%; padding-left: 5px; padding-right: 5px; diff --git a/src/js/controller/settings/ApplicationSettingsController.js b/src/js/controller/settings/ApplicationSettingsController.js index 746dc66e..4364005f 100644 --- a/src/js/controller/settings/ApplicationSettingsController.js +++ b/src/js/controller/settings/ApplicationSettingsController.js @@ -18,10 +18,6 @@ $('#grid-width').val(gridWidth); $('#grid-width').change(this.onGridWidthChange.bind(this)); - var overlay = pskl.UserSettings.get(pskl.UserSettings.OVERLAY); - $('#overlay').val(overlay); - $('#overlay').change(this.onOverlayChange.bind(this)); - // Handle canvas background changes: $('#background-picker-wrapper').click(this.onBackgroundClick.bind(this)); }; @@ -31,11 +27,6 @@ pskl.UserSettings.set(pskl.UserSettings.GRID_WIDTH, parseInt(width, 10)); }; - ns.ApplicationSettingsController.prototype.onOverlayChange = function (evt) { - var overlay = $('#overlay').val(); - pskl.UserSettings.set(pskl.UserSettings.OVERLAY, overlay); - }; - ns.ApplicationSettingsController.prototype.onBackgroundClick = function (evt) { var target = $(evt.target).closest('.background-picker'); if (target.length) { diff --git a/src/templates/settings/application.html b/src/templates/settings/application.html index 77f6ca06..22c72076 100644 --- a/src/templates/settings/application.html +++ b/src/templates/settings/application.html @@ -30,17 +30,6 @@ -
- Overlay: -
-
- - -