From da105e6237758cec09e729953a13e3e0da75e3cb Mon Sep 17 00:00:00 2001 From: Matt D Date: Wed, 23 Mar 2016 21:32:22 +1100 Subject: [PATCH] Moved the padding code to a new StringUtils.js utility and made the export code use it --- .../settings/exportimage/PngExportController.js | 11 ++++------- src/js/utils/StringUtils.js | 10 ++++++++++ src/piskel-script-list.js | 3 ++- 3 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 src/js/utils/StringUtils.js diff --git a/src/js/controller/settings/exportimage/PngExportController.js b/src/js/controller/settings/exportimage/PngExportController.js index 7e5f04db..17e90e9f 100644 --- a/src/js/controller/settings/exportimage/PngExportController.js +++ b/src/js/controller/settings/exportimage/PngExportController.js @@ -59,31 +59,28 @@ ns.PngExportController.prototype.mergedExport_ = function (zip) { var paddingLength = (""+this.piskelController.getFrameCount()).length; - var padding = new Array(paddingLength).join("0"); for (var i = 0; i < this.piskelController.getFrameCount(); i++) { var frame = this.piskelController.getFrameAt(i); var canvas = this.getFrameAsCanvas_(frame); var basename = this.pngFilePrefixInput.value; - var id = (padding + (i + 1)).slice(-paddingLength); + var id = pskl.utils.StringUtils.leftPad(i, paddingLength, "0"); var filename = basename + id + '.png'; zip.file(filename, pskl.utils.CanvasUtils.getBase64FromCanvas(canvas) + '\n', {base64: true}); } }; ns.PngExportController.prototype.splittedExport_ = function (zip) { - var framePaddingLength = (""+this.piskelController.getFrameCount()).length; - var framePadding = new Array(framePaddingLength).join("0"); var layers = this.piskelController.getLayers(); + var framePaddingLength = (""+this.piskelController.getFrameCount()).length; var layerPaddingLength = (""+layers.length).length; - var layerPadding = new Array(layerPaddingLength).join("0"); for (var j = 0; this.piskelController.hasLayerAt(j); j++) { var layer = this.piskelController.getLayerAt(j); - var layerid = (layerPadding + j).slice(-layerPaddingLength); + var layerid = pskl.utils.StringUtils.leftPad(j, layerPaddingLength, "0"); for (var i = 0; i < this.piskelController.getFrameCount(); i++) { var frame = layer.getFrameAt(i); var canvas = this.getFrameAsCanvas_(frame); var basename = this.pngFilePrefixInput.value; - var frameid = (framePadding + (i + 1)).slice(-framePaddingLength); + var frameid = pskl.utils.StringUtils.leftPad(i + 1, framePaddingLength, "0"); var filename = 'l' + layerid + '_' + basename + frameid + '.png'; zip.file(filename, pskl.utils.CanvasUtils.getBase64FromCanvas(canvas) + '\n', {base64: true}); } diff --git a/src/js/utils/StringUtils.js b/src/js/utils/StringUtils.js new file mode 100644 index 00000000..75fb55a6 --- /dev/null +++ b/src/js/utils/StringUtils.js @@ -0,0 +1,10 @@ +(function () { + var ns = $.namespace('pskl.utils'); + + ns.StringUtils = { + leftPad : function (input, length, pad) { + var padding = new Array(length).join(pad); + return (padding + input).slice(-length); + }, + } +})(); diff --git a/src/piskel-script-list.js b/src/piskel-script-list.js index baf3a787..c9929859 100644 --- a/src/piskel-script-list.js +++ b/src/piskel-script-list.js @@ -32,6 +32,7 @@ "js/utils/LayerUtils.js", "js/utils/PixelUtils.js", "js/utils/PiskelFileUtils.js", + "js/utils/StringUtils.js", "js/utils/Template.js", "js/utils/TooltipFormatter.js", "js/utils/UserSettings.js", @@ -227,4 +228,4 @@ // Bonus features !! "js/snippets.js" -]; \ No newline at end of file +];