From 250f1be0eb0d8721abdcc285aa22bac51cffa4f9 Mon Sep 17 00:00:00 2001 From: Joren Dandois Date: Sat, 4 Jul 2020 01:02:36 +0200 Subject: [PATCH 1/7] Added icons to font Added icons to font-icon.css Added lock button to layer --- src/css/font-icon.css | 8 ++++ src/css/fonts/icomoon.eot | Bin 4416 -> 3848 bytes src/css/fonts/icomoon.svg | 40 +++++++++--------- src/css/fonts/icomoon.ttf | Bin 4252 -> 3684 bytes src/css/fonts/icomoon.woff | Bin 4328 -> 3760 bytes src/css/toolbox-layers-list.css | 4 ++ src/js/controller/LayersListController.js | 7 ++- src/js/controller/piskel/PiskelController.js | 7 +++ .../piskel/PublicPiskelController.js | 1 + src/js/model/Layer.js | 12 ++++++ .../arraybuffer/ArrayBufferDeserializer.js | 3 ++ src/templates/layers-list.html | 3 ++ 12 files changed, 65 insertions(+), 20 deletions(-) diff --git a/src/css/font-icon.css b/src/css/font-icon.css index f771603a2..61a3e0969 100644 --- a/src/css/font-icon.css +++ b/src/css/font-icon.css @@ -94,3 +94,11 @@ .piskel-icon-arrow-down-thin:before { content: "\e60f"; } + +.piskel-icon-lock-locked:before { + content: "\e98f"; +} + +.piskel-icon-lock-unlocked:before { + content: "\e990"; +} diff --git a/src/css/fonts/icomoon.eot b/src/css/fonts/icomoon.eot index f5314adf7b63f3e372c57b1dc2c12280cfbba943..a700c4ddb83e0cb04e1f91f1a3bf10dba4746d10 100644 GIT binary patch literal 3848 zcmb7HO>7&-6@G93W_Lv{x%?+ZQA@5w(srspilp4cG3%zTRXMQWv_XM3C>2|go!S!N zAHW8JfIx~AD2i6dDQ$YtA%_$Q3ZLpr4?OhHLxUDg(Mt`H<8of>Qlvm$oIt zG0-7*=Dly;y!UqI&6^!FMs(gGVp8Z}VcKSioL)VMOWCj-di&mckMGn{`Av$9ekh2e(J*d+WG9odtZXW z_tD?F06_h_auobW;HNHJzINkChmR9QOz_=HTj$owe<}SM`~~m}m)CCe;O>9G{|vmh zxpsN|CttHZ0}p@r&ED44Yw#1rc~16|%J+Dibo8C(SAcwV)P72N`ks{AR~T*|EFGdd z+q}ECOCIAvC+`!GJO$RI#UlE`Rt=5xxie?xrWX6%ZeMz<(`n4XC%i+?(0A!A`W^in4hpEq zwu_ujWwIq6{WFGe7=J&#&}u)+_}AuVxc1<`DAD6^Fhx(v^{Tdp__CCh%`AN_4(G$-%2Ua0P=V8A_{*q1>qE zQ+bZ@xTa~g9x1wB!Z2bHYdoL(f}5Bv6z1b@&eo@sQ%&87YPwJi*BSS7lQRh?qw88m(~X3iIMGP8vsP59fgU@q>$>xls$~-K_@q-v zM)j0srG=dqrk)YPNXP7AB$A8gbM9Eqaq_0awx6(4!bw@e)$F_z%j-!|Nhd2&5fLJ3 z3fD?j>@Pm>MZlLaRZlqMg`DSRqWQ>J9KPtu$NO?9V);okZ90x6Qkq?NV&$>v^jtdG zj*6Ht z7FsfbARtnPU#T`1TaASb)8T6E#CRc*D2$(|RSzHFzMic*PBmNXR4ScfNVBSF+Dfyz zqG^iCuNPCPqI|d?89Q8>n3|d>9UhD9r@sLO7@9~X6Cs7Durrb7%1SemvBBg*4Kgu@ zIV8vfg>G3&>AM1??HAlXH+2ji#7kKb%*ZtsgG=z18~3!l}WE|57v5 zFgSYNpDU~!S?!eqydD^YUgR!WA@eFSgD1;Pw^;@~B=!bFZxD7PzcGHH47-hT!wtK6 zcL)$gC2u67Qj}bxY<mU%GUE@zuZxY_7(#~b#M3U@s2dxK8L<8HUp>3Uw*BS9UE zAHar%!*r5nsX=Xe8uM7L7!zEUi=Xw|jkaGgVr*od=7rWQ@`j&9e>PcS3AB@~s_NGo zS-%-Pygl5Nt6RJv-V`^qz8zv?my?^9eA`l*WsOF zDjrW2y@dtOvA=9bqo|ynWOTS2O(vu4MU%tbpak!ZDp+?DCs7h7fG=vkNSB*>IbG)9 zFlh5&wbxti$e9gix6|9+-tG1Jo`;F(^!wY}avtTGvjbfo&Lm38z%MVfj`3pE$9s|` zcvo1K7<$6ucvq6L3daR!&@TB<;$ymwAOa^47N}B~E~t`IbPVAb=;OP$g2A_>l7}RF zj{u`Sn2^4WY#2lqH(dOf_Go9YgYz2%1P;jP?7R3eP{??)mFF_kGOF8rn@VVF)e06g zmCY<1XE)sFE)oIUY_}F`e0#?(*gKYm`eHH~O*i9uQ(rP|$C2CBasH5ucB08XQ@6gfRPQ?WUD<`IE0?E>Wx*UuJIEw~l|avf zy?|tiy|Zl-zw$iONpND>yfU_CEix^?-Li zr*9d!e54M(F9Q}=1jK8JPVoCmMOjr|Q+}lECmKBsoox72slU#kDoa@q;)miCdJ zfxL7iNB5AUWs#~LEe`!+^e!Aoh3}<+?v8L3bZbOwps$Z;9k-tJh&F()jA)w*^aJcN z)+`_ndO}(Oy)mLy(8or!2Ku!Tt>g0Ljc5b-*%58iBE5U@+}7o-t<8fsxEI&2T)nup z>CMl~J^tGE*inxK&#rG=zqEGc;C=A1k|(z|uX!8mo9kEBuC1TKtP}tM literal 4416 zcmb7IU2Ggz6+UNX?%es?pIPthdi|H#tnGDNaBZ*G+Y;KY8Z|$vqeRd^6;#zGO_Nk{ zylR4!B2=v?Dnjam)z>0q@qk1nO2i8i;$ffQg-R8D=^M+B`h*}4sRRPneD}`U-d#cj zcV}nLJ@?%6ch5cd%rrxy?`Mga3>t1syR0x97l-kRHfirpow__aMwF%-bcJ?k8~+`; z1%fnviLTN$`Uc&kEqWc80(}LT*XcHB6-`Vlv_#9Ac62t7N}x||GHLn3mmgnsj{o!5 z!2A;b%`4kmt%*y&xelT!^f#_;-EQHjECP<4Yd7C`b@s3J9Qwcqo$FV(Ug019^zYD0 ziCe!8g!u=ffxe=jy}o_t?p%{UkN!L8zj$-!%GScWv+tw-C-j%Lx9+xRhQCLY$)g|N z+SjVX@uh2jhk zT?JdFdGM-4tLu%YdGM;PEOB+@T2n+TRk=J5rqKw~nIVn|_lNKWhx*$5DCZ0p@=@L% z(KR|$w0NN0=tQu>RV_A(k*q3XM@@qwBV23I@lpAWl>`2VE=ZJIX&hs4)m|KQ*dfbf zeBh(H_Rit_2D)qObv|3-3{P5?tpeg)oHSd474q52fu}La@PX7;J{6EHn7ILZoCSZJ8#p7-GXRObI!*Oxbo|%M92! zZdN*hux!(?Kx0}qusP56ZQ)q9WHZHVf}Oz@Lm)UAreTA*E!@28f;(74gj84)1Ok2L zwUUwMNtgh-lr6JPHfIUYLV)4eG8gz$=~T%%Fv$-FO*%f|9h#&iW{*3jG64U!v;9a zaZ6#iSn`ykeId0;5GjNQkBju@Ov_K(wy!)VGcuL6ZBL54i^UTzB!H!5sg)=wO)S%a z`BDVZ#-zZu(@rXsGVKV!DVZ)gX%=b6&ADz~$^b$v8G;KINIIC|8e?Y4aq^y*bKEp2 zY%Hqfg2?qk*GY>n99k)1rEeNiSbzT||Ks zITACaka0xs(g@DoPaYO+;|$sTg&R zAZ{0<=;Z9|$tWrwL6?+_$oCO

)#%+td}FHx{RsbBm?%_38RcmC8bLt{v#mNRE((Uev)wD9T!0 zCQGeDAR>r~^NX2r$8|O9{CpT5OP%dJAD$={S0^>|&h+|tX)(8)ipO%0t+aHcj5O60 zw9|UxT+?M1bm#&?RWMerhxIbx9&z01#T}3+8gkNpYXXM1eI% zR4k8`=hRsnHOj?$*_G!whoUMaq8Y9cQ;uI2`%D0vS(8Y5P0qx6PSNchC`;ub~ z_qs{L8t58M$BGO87EsAlWVIrra=j|bxU(*68WrwbY_%>n4QlpqQ>)l)?e4a^tyVjZ z+nqS(xZU2})v>n+ezB@e$B-6k<<<44cx}D{zeVIq?n>8{y;!=O-Bh5ysd>7d>e4LM zrGoW%44G+~u@=*uFPv0`fO7Uzj3lG^@%?*x@;$|50OWWSlMI6Gp$wbI`R_Y7OhvNQ6Ga2Q`~kGEAa4 z3GgscyapkIWWW3q~@xzY;cw5P&^m; zUO4T0DHIa66}Ms>xj2t|t$3FgTD?#Bba$#d#od(WPlu{l@&$-28|1y+-B{E7LXl{H z@c!?4pMOU$Ag-T4_1nM=nRtEvag=_lCPZIWaYG)Q*K4RwJ@kue1mkw$7|-b18vTYE z!FT}+{Io8x`5*7Sr%OBQoavz!G0;T;JeVrKHP{dpPG92<;)j9 zBVQ+7`smrl4-`Im_PvjHL`sHLoRE6gLIQ3Q8qmNDHROS#rUuniqe&b3dC)(4#=tlK z%b3C+j3shByt~cNv&J{gMf0Zlf!Q&CYd)~PZM|>(%KDq|#FV%$ekShQn-HL86!^Qy z;i@SSqb*Gz^z~ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/css/fonts/icomoon.ttf b/src/css/fonts/icomoon.ttf index 5ae72b63d94aa0e3ec7d7054ec589def6ca9f394..03c369e3da9c89a59bc787ecdb6007cd2faf4bc1 100644 GIT binary patch literal 3684 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 0) | (dataUriLengthFirstHalf << 16 >>> 0); + var locked = false; // Name var layerName = ''; @@ -97,6 +98,7 @@ layer.name = layerName; layer.opacity = opacity; + layer.locked = locked; layer.frameCount = frameCount; layer.dataUri = dataUri; layers.push(layer); @@ -128,6 +130,7 @@ var nlayer = new pskl.model.Layer(layer.name); layer.model = nlayer; nlayer.setOpacity(layer.opacity); + nlayer.setLocked(layer.locked); piskel.addLayer(nlayer); loadLayerImage.bind(this, layer, callback)(); diff --git a/src/templates/layers-list.html b/src/templates/layers-list.html index e66280769..11e6c8b85 100644 --- a/src/templates/layers-list.html +++ b/src/templates/layers-list.html @@ -37,6 +37,9 @@

Layers
  • {{layername}} + + α From 3b623c71650f86069bdc1f69b4880cfec04f2c82 Mon Sep 17 00:00:00 2001 From: Joren Dandois Date: Sat, 4 Jul 2020 01:50:14 +0200 Subject: [PATCH 2/7] Added check for merge with next layer --- src/js/controller/piskel/PiskelController.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/js/controller/piskel/PiskelController.js b/src/js/controller/piskel/PiskelController.js index ae34643f5..fd8ab3d56 100644 --- a/src/js/controller/piskel/PiskelController.js +++ b/src/js/controller/piskel/PiskelController.js @@ -294,6 +294,10 @@ ns.PiskelController.prototype.mergeDownLayerAt = function (index) { var layer = this.getLayerByIndex(index); var downLayer = this.getLayerByIndex(index - 1); + if (layer.locked || downLayer.locked) { + window.console.error('Could not merge with later below. One of the layers is locked.'); + return; + } if (layer && downLayer) { var mergedLayer = pskl.utils.LayerUtils.mergeLayers(layer, downLayer); this.removeLayerAt(index); From a4d3d441dbf5ee10f6fb0f6f0c31e16054b468d1 Mon Sep 17 00:00:00 2001 From: Joren Dandois Date: Sat, 4 Jul 2020 01:54:34 +0200 Subject: [PATCH 3/7] Space between if and bracket --- src/js/controller/LayersListController.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/controller/LayersListController.js b/src/js/controller/LayersListController.js index 841c0fee4..bcdebce14 100644 --- a/src/js/controller/LayersListController.js +++ b/src/js/controller/LayersListController.js @@ -182,7 +182,7 @@ var layer = this.piskelController.getLayerAt(parseInt(index, 10)); var opacity = window.prompt('Set layer opacity (value between 0 and 1)', layer.getOpacity()); this.piskelController.setLayerOpacityAt(index, opacity); - } else if(el.classList.contains('layer-lock')) { + } else if (el.classList.contains('layer-lock')) { index = pskl.utils.Dom.getData(el, 'layerIndex'); var layer = this.piskelController.getLayerAt(parseInt(index, 10)); this.piskelController.setLayerLockedAt(index, layer.getLocked()); From aff1f7ccb6abbc5d2ebd08b843db5ec9bdfa8d80 Mon Sep 17 00:00:00 2001 From: Joren Dandois Date: Sat, 4 Jul 2020 02:33:19 +0200 Subject: [PATCH 4/7] Disable move when locked Disable shift move when locked --- src/js/controller/DrawingController.js | 10 ++++++++++ src/js/tools/ToolsHelper.js | 3 +++ 2 files changed, 13 insertions(+) diff --git a/src/js/controller/DrawingController.js b/src/js/controller/DrawingController.js index 0ed1f055c..e18aa244a 100644 --- a/src/js/controller/DrawingController.js +++ b/src/js/controller/DrawingController.js @@ -137,6 +137,11 @@ }; ns.DrawingController.prototype.onTouchstart_ = function (event) { + var index = this.piskelController.getCurrentLayerIndex(); + var layer = this.piskelController.getLayerByIndex(index); + if (layer.locked) { + return; + } this.onMousedown_(event); }; @@ -153,6 +158,11 @@ * @private */ ns.DrawingController.prototype.onMousedown_ = function (event) { + var index = this.piskelController.getCurrentLayerIndex(); + var layer = this.piskelController.getLayerByIndex(index); + if (layer.locked) { + return; + } $.publish(Events.MOUSE_EVENT, [event, this]); var frame = this.piskelController.getCurrentFrame(); var coords = this.getSpriteCoordinates(event.clientX, event.clientY); diff --git a/src/js/tools/ToolsHelper.js b/src/js/tools/ToolsHelper.js index 8f9766a60..ac4f66a46 100644 --- a/src/js/tools/ToolsHelper.js +++ b/src/js/tools/ToolsHelper.js @@ -16,6 +16,9 @@ ns.ToolsHelper = { var currentFrameIndex = pskl.app.piskelController.getCurrentFrameIndex(); var layers = useAllLayers ? pskl.app.piskelController.getLayers() : [pskl.app.piskelController.getCurrentLayer()]; return layers.reduce(function (previous, layer) { + if (layer.locked) { + return previous; + } var frames = useAllFrames ? layer.getFrames() : [layer.getFrameAt(currentFrameIndex)]; return previous.concat(frames); }, []); From d55024d503a332baeffb7778a2774f6b9a0e0da6 Mon Sep 17 00:00:00 2001 From: Joren Dandois Date: Sat, 4 Jul 2020 02:45:32 +0200 Subject: [PATCH 5/7] Disable drawing of any type when locked --- src/js/controller/drawing/DragHandler.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/js/controller/drawing/DragHandler.js b/src/js/controller/drawing/DragHandler.js index f3b134d7b..7f9a90ec3 100644 --- a/src/js/controller/drawing/DragHandler.js +++ b/src/js/controller/drawing/DragHandler.js @@ -25,6 +25,11 @@ * @param {Number} y : y coordinate of the mouse event that initiated the drag */ ns.DragHandler.prototype.startDrag = function (x, y) { + var index = this.piskelController.getCurrentLayerIndex(); + var layer = this.piskelController.getLayerByIndex(index); + if (layer.locked) { + return; + } var coords = this.drawingController.getSpriteCoordinates(x, y); this.updateOrigin_(coords.x, coords.y); }; From 16014e4cd361ac4e72ad619e38da4216b60d7690 Mon Sep 17 00:00:00 2001 From: Joren Dandois Date: Sat, 4 Jul 2020 13:36:21 +0200 Subject: [PATCH 6/7] added semicolon to fix linter error --- package.json | 7 ++++--- src/js/model/Layer.js | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 8b6e2c322..f49ecf803 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "devDependencies": { "dateformat": "2.0.0", "fs-extra": "3.0.1", - "grunt": "^0.4.5", + "grunt": "^1.2.0", "grunt-casperjs": "^2.2.1", "grunt-cli": "^1.3.2", "grunt-contrib-clean": "1.1.0", @@ -54,8 +54,9 @@ "grunt-replace": "1.0.1", "grunt-spritesmith": "6.4.0", "jasmine-core": "2.6.1", - "karma": "1.7.0", - "karma-jasmine": "1.1.0", + "karma": "^1.7.1", + "karma-chrome-launcher": "^3.1.0", + "karma-jasmine": "^1.1.2", "karma-phantomjs-launcher": "1.0.4", "load-grunt-tasks": "3.5.0", "nw": "^0.42.3", diff --git a/src/js/model/Layer.js b/src/js/model/Layer.js index d3f1cece8..90f38a8b7 100644 --- a/src/js/model/Layer.js +++ b/src/js/model/Layer.js @@ -56,7 +56,7 @@ locked = false; } this.locked = locked; - } + }; ns.Layer.prototype.isTransparent = function () { return this.opacity < 1; From 73e4875cfbe4fd8214c7f76db4fecbd7da5def91 Mon Sep 17 00:00:00 2001 From: Joren Dandois Date: Sat, 4 Jul 2020 13:39:01 +0200 Subject: [PATCH 7/7] revert package.json change --- package.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index f49ecf803..8b6e2c322 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "devDependencies": { "dateformat": "2.0.0", "fs-extra": "3.0.1", - "grunt": "^1.2.0", + "grunt": "^0.4.5", "grunt-casperjs": "^2.2.1", "grunt-cli": "^1.3.2", "grunt-contrib-clean": "1.1.0", @@ -54,9 +54,8 @@ "grunt-replace": "1.0.1", "grunt-spritesmith": "6.4.0", "jasmine-core": "2.6.1", - "karma": "^1.7.1", - "karma-chrome-launcher": "^3.1.0", - "karma-jasmine": "^1.1.2", + "karma": "1.7.0", + "karma-jasmine": "1.1.0", "karma-phantomjs-launcher": "1.0.4", "load-grunt-tasks": "3.5.0", "nw": "^0.42.3",