diff --git a/.gitignore b/.gitignore index 41c1deac..9d68abca 100644 --- a/.gitignore +++ b/.gitignore @@ -13,10 +13,11 @@ npm-debug.log *.stackdump # builds -build - -# marked as private -*.private.* +build/*.js +build/*.css # Closure compiler generated JS binary. -closure_compiled_binary.js \ No newline at end of file +build/closure/closure_compiled_binary.js + +# marked as private +*.private.* \ No newline at end of file diff --git a/Gruntfile.js b/Gruntfile.js index 01ea242a..1f65ddf0 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -10,15 +10,20 @@ * If you run this task locally, it may require some env set up first. */ +var SOURCE_FOLDER = "src"; + module.exports = function(grunt) { - var piskelScripts = require('./piskel-script-list.js').scripts; - var piskelStyles = require('./piskel-style-list.js').styles; + var mapToSrcFolder = function (path) {return [SOURCE_FOLDER, path].join('/');}; + + var piskelScripts = require('./src/piskel-script-list.js').scripts.map(mapToSrcFolder); + var piskelStyles = require('./src/piskel-style-list.js').styles.map(mapToSrcFolder); + var getGhostConfig = function (delay) { return { - filesSrc : ['tests/integration/casperjs/*_test.js'], + filesSrc : ['test/integration/casperjs/*_test.js'], options : { args : { - baseUrl : 'http://localhost:' + '<%= connect.test.options.port %>/', + baseUrl : 'http://localhost:' + '<%= connect.test.options.port %>/src/', mode : '?debug', delay : delay }, @@ -45,8 +50,8 @@ module.exports = function(grunt) { files: [ 'Gruntfile.js', 'package.json', - 'js/**/*.js', - '!js/lib/**/*.js' // Exclude lib folder (note the leading !) + 'src/js/**/*.js', + '!src/js/lib/**/*.js' // Exclude lib folder (note the leading !) ] }, connect : { @@ -94,7 +99,7 @@ module.exports = function(grunt) { closureCompiler: { options: { // [REQUIRED] Path to closure compiler - compilerFile: 'closure_compiler_20130823.jar', + compilerFile: 'build/closure/closure_compiler_20130823.jar', // [OPTIONAL] set to true if you want to check if files were modified // before starting compilation (can save some time in large sourcebases) @@ -109,7 +114,7 @@ module.exports = function(grunt) { */ //compilation_level: 'ADVANCED_OPTIMIZATIONS', compilation_level: 'SIMPLE_OPTIMIZATIONS', - externs: ['piskel-closure-externs.js'], + externs: ['build/closure/piskel-closure-externs.js'], // Inject some constants in JS code, could we use that for appengine wiring ? //define: ["'goog.DEBUG=false'"], warning_level: 'verbose', @@ -133,27 +138,27 @@ module.exports = function(grunt) { TEMPcompilerOpts: { }, src: [ - 'js/**/*.js', - 'piskel-boot.js', - 'piskel-script-list.js', - '!js/lib/bootstrap/**/*.js', - '!js/lib/gif/**/*.js', - '!js/lib/jquery-1.8.0.js', - '!js/lib/jsColor_1_4_0/**/*.js' + 'src/js/**/*.js', + 'src/piskel-boot.js', + 'src/piskel-script-list.js', + '!src/js/lib/**/*.js' ], // This generated JS binary is currently not used and even excluded from source control using .gitignore. - dest: 'closure_compiled_binary.js' + dest: 'build/closure/closure_compiled_binary.js' } } }); grunt.config.set('leadingIndent.indentation', 'spaces'); grunt.config.set('leadingIndent.jsFiles', { - src: ['js/**/*.js','!js/lib/**/*.js'] + src: [ + 'src/js/**/*.js', + '!src/js/lib/**/*.js' + ] }); grunt.config.set('leadingIndent.cssFiles', { - src: ['css/**/*.css'] + src: ['src/css/**/*.css'] }); grunt.loadNpmTasks('grunt-contrib-connect'); diff --git a/closure_compiler_20130823.jar b/build/closure/closure_compiler_20130823.jar similarity index 100% rename from closure_compiler_20130823.jar rename to build/closure/closure_compiler_20130823.jar diff --git a/piskel-closure-externs.js b/build/closure/piskel-closure-externs.js similarity index 100% rename from piskel-closure-externs.js rename to build/closure/piskel-closure-externs.js diff --git a/diff.txt b/diff.txt deleted file mode 100644 index 6e5bf0c5..00000000 --- a/diff.txt +++ /dev/null @@ -1,222 +0,0 @@ -diff --git a/css/settings.css b/css/settings.css -index 829a727..32dd7df 100644 ---- a/css/settings.css -+++ b/css/settings.css -@@ -161,7 +161,8 @@ - border: gold 1px solid; - } - --/* Gif Export Setting panel*/ -+/* Gif/Png Export Setting panel*/ -+/*******************************/ - .gif-upload-button, - .gif-render-button { - /*float : right;*/ -@@ -173,12 +174,26 @@ - margin:10px 0; - } - --.gif-export-preview { -+.gif-export-preview, -+.png-export-preview { - margin-top:20px; - max-width:240px; - position:relative; - } - -+.png-export-preview { -+ margin:10px 0; -+ overflow: hidden; -+} -+ -+.png-export-preview img { -+ float: left; -+} -+ -+.png-upload-status { -+ margin : 10px 0; -+} -+ - .preview-upload-ongoing:before{ - content: "Upload ongoing ..."; - position: absolute; -diff --git a/css/style.css b/css/style.css -index a61879a..fe9405b 100644 ---- a/css/style.css -+++ b/css/style.css -@@ -300,3 +300,7 @@ body { - .user-message .close:hover { - color: black; - } -+ -+.image-link { -+ color : gold; -+} -\ No newline at end of file -diff --git a/index.html b/index.html -index 05d758b..36cb01c 100644 ---- a/index.html -+++ b/index.html -@@ -51,12 +51,13 @@ - -
-
-+ - - -- - - -- -+ -+ -
-
- -diff --git a/js/Constants.js b/js/Constants.js -index 71a12bc..67be116 100644 ---- a/js/Constants.js -+++ b/js/Constants.js -@@ -44,8 +44,8 @@ var Constants = { - SAVE : 'save' - } - }, -- IMAGE_SERVICE_UPLOAD_URL : 'http://screenletstore.appspot.com/__/upload', -- IMAGE_SERVICE_GET_URL : 'http://screenletstore.appspot.com/img/', -+ IMAGE_SERVICE_UPLOAD_URL : 'http://piskel-imgstore-a.appspot.com/__/upload', -+ IMAGE_SERVICE_GET_URL : 'http://piskel-imgstore-a.appspot.com/img/', - - GRID_STROKE_WIDTH: 1, - ZOOMED_OUT_BACKGROUND_COLOR : '#A0A0A0', -diff --git a/js/controller/settings/GifExportController.js b/js/controller/settings/GifExportController.js -index ac7602e..9a5bd75 100644 ---- a/js/controller/settings/GifExportController.js -+++ b/js/controller/settings/GifExportController.js -@@ -1,6 +1,8 @@ - (function () { - var ns = $.namespace("pskl.controller.settings"); - -+ var URL_MAX_LENGTH = 60; -+ - ns.GifExportController = function (piskelController) { - this.piskelController = piskelController; - }; -@@ -26,6 +28,8 @@ - ns.GifExportController.prototype.init = function () { - this.radioTemplate_ = pskl.utils.Template.get("gif-export-radio-template"); - -+ this.uploadStatusContainerEl = document.querySelectorAll(".gif-upload-status")[0]; -+ - this.previewContainerEl = document.querySelectorAll(".gif-export-preview")[0]; - this.radioGroupEl = document.querySelectorAll(".gif-export-radio-group")[0]; - -@@ -52,7 +56,9 @@ - - ns.GifExportController.prototype.onImageUploadCompleted_ = function (imageUrl) { - this.updatePreview_(imageUrl); -+ this.updateStatus_(imageUrl); - this.previewContainerEl.classList.remove("preview-upload-ongoing"); -+ - }; - - ns.GifExportController.prototype.updatePreview_ = function (src) { -@@ -127,4 +133,27 @@ - - gif.render(); - }; -+ -+ // FIXME : HORRIBLE COPY/PASTA -+ -+ ns.GifExportController.prototype.updateStatus_ = function (imageUrl, error) { -+ if (imageUrl) { -+ var linkTpl = "{{shortLink}}"; -+ var linkHtml = pskl.utils.Template.replace(linkTpl, { -+ link : imageUrl, -+ shortLink : this.shorten_(imageUrl, URL_MAX_LENGTH, '...') -+ }); -+ this.uploadStatusContainerEl.innerHTML = 'Your image is now available at : ' + linkHtml; -+ } else { -+ // FIXME : Should display error message instead -+ } -+ }; -+ -+ ns.GifExportController.prototype.shorten_ = function (url, maxLength, suffix) { -+ if (url.length > maxLength) { -+ url = url.substring(0, maxLength); -+ url += suffix; -+ } -+ return url; -+ }; - })(); -\ No newline at end of file -diff --git a/js/controller/settings/SettingsController.js b/js/controller/settings/SettingsController.js -index de4a0bd..dc20b2d 100644 ---- a/js/controller/settings/SettingsController.js -+++ b/js/controller/settings/SettingsController.js -@@ -14,6 +14,10 @@ - template : 'templates/settings/export-gif.html', - controller : ns.GifExportController - }, -+ 'png' : { -+ template : 'templates/settings/export-png.html', -+ controller : ns.PngExportController -+ }, - 'import' : { - template : 'templates/settings/import.html', - controller : ns.ImportController -diff --git a/js/drawingtools/BaseTool.js b/js/drawingtools/BaseTool.js -index 1d2dfd4..a78d5cf 100644 ---- a/js/drawingtools/BaseTool.js -+++ b/js/drawingtools/BaseTool.js -@@ -33,7 +33,11 @@ - - ns.BaseTool.prototype.hideHighlightedPixel = function(overlay) { - if (this.highlightedPixelRow !== null && this.highlightedPixelCol !== null) { -- overlay.setPixel(this.highlightedPixelCol, this.highlightedPixelRow, Constants.TRANSPARENT_COLOR); -+ try { -+ overlay.setPixel(this.highlightedPixelCol, this.highlightedPixelRow, Constants.TRANSPARENT_COLOR); -+ } catch (e) { -+ console.warn('ns.BaseTool.prototype.hideHighlightedPixel failed'); -+ } - this.highlightedPixelRow = null; - this.highlightedPixelCol = null; - } -diff --git a/piskel-script-list.js b/piskel-script-list.js -index 65247a7..6048fa7 100644 ---- a/piskel-script-list.js -+++ b/piskel-script-list.js -@@ -72,6 +72,7 @@ exports.scripts = [ - "js/controller/settings/ApplicationSettingsController.js", - "js/controller/settings/ResizeController.js", - "js/controller/settings/GifExportController.js", -+ "js/controller/settings/PngExportController.js", - "js/controller/settings/LocalStorageController.js", - "js/controller/settings/SaveController.js", - "js/controller/settings/ImportController.js", -diff --git a/templates/settings.html b/templates/settings.html -index bb12a43..22b9a43 100644 ---- a/templates/settings.html -+++ b/templates/settings.html -@@ -43,9 +43,9 @@ - - -
- PNG -
-diff --git a/templates/settings/export-gif.html b/templates/settings/export-gif.html -index b2c9576..97feaf3 100644 ---- a/templates/settings/export-gif.html -+++ b/templates/settings/export-gif.html -@@ -13,5 +13,6 @@ - - -
-+
- - -\ No newline at end of file diff --git a/resources/cursors-resources.jpg b/misc/cursors-resources.jpg similarity index 100% rename from resources/cursors-resources.jpg rename to misc/cursors-resources.jpg diff --git a/resources/eraser.ai b/misc/eraser.ai similarity index 100% rename from resources/eraser.ai rename to misc/eraser.ai diff --git a/resources/icons.png b/misc/icons.png similarity index 100% rename from resources/icons.png rename to misc/icons.png diff --git a/resources/import-icon.svg b/misc/import-icon.svg similarity index 100% rename from resources/import-icon.svg rename to misc/import-icon.svg diff --git a/resources/mirror.ai b/misc/mirror.ai similarity index 100% rename from resources/mirror.ai rename to misc/mirror.ai diff --git a/resources/proto-ui-1/img/dragndrop-dark.png b/misc/proto-ui-1/img/dragndrop-dark.png similarity index 100% rename from resources/proto-ui-1/img/dragndrop-dark.png rename to misc/proto-ui-1/img/dragndrop-dark.png diff --git a/img/dragndrop.png b/misc/proto-ui-1/img/dragndrop.png similarity index 100% rename from img/dragndrop.png rename to misc/proto-ui-1/img/dragndrop.png diff --git a/img/tools/eyedropper-dark.png b/misc/proto-ui-1/img/eyedropper-dark.png similarity index 100% rename from img/tools/eyedropper-dark.png rename to misc/proto-ui-1/img/eyedropper-dark.png diff --git a/resources/proto-ui-1/img/eyedropper-icon.png b/misc/proto-ui-1/img/eyedropper-icon.png similarity index 100% rename from resources/proto-ui-1/img/eyedropper-icon.png rename to misc/proto-ui-1/img/eyedropper-icon.png diff --git a/resources/proto-ui-1/img/garbage-dark.png b/misc/proto-ui-1/img/garbage-dark.png similarity index 100% rename from resources/proto-ui-1/img/garbage-dark.png rename to misc/proto-ui-1/img/garbage-dark.png diff --git a/img/garbage.png b/misc/proto-ui-1/img/garbage.png similarity index 100% rename from img/garbage.png rename to misc/proto-ui-1/img/garbage.png diff --git a/resources/proto-ui-1/img/magicwand-icon-dark.png b/misc/proto-ui-1/img/magicwand-icon-dark.png similarity index 100% rename from resources/proto-ui-1/img/magicwand-icon-dark.png rename to misc/proto-ui-1/img/magicwand-icon-dark.png diff --git a/resources/proto-ui-1/img/magicwand-icon.png b/misc/proto-ui-1/img/magicwand-icon.png similarity index 100% rename from resources/proto-ui-1/img/magicwand-icon.png rename to misc/proto-ui-1/img/magicwand-icon.png diff --git a/resources/proto-ui-1/img/paintbucket-icon-dark.png b/misc/proto-ui-1/img/paintbucket-icon-dark.png similarity index 100% rename from resources/proto-ui-1/img/paintbucket-icon-dark.png rename to misc/proto-ui-1/img/paintbucket-icon-dark.png diff --git a/resources/proto-ui-1/img/paintbucket-icon.png b/misc/proto-ui-1/img/paintbucket-icon.png similarity index 100% rename from resources/proto-ui-1/img/paintbucket-icon.png rename to misc/proto-ui-1/img/paintbucket-icon.png diff --git a/resources/proto-ui-1/img/pen-icon-dark.png b/misc/proto-ui-1/img/pen-icon-dark.png similarity index 100% rename from resources/proto-ui-1/img/pen-icon-dark.png rename to misc/proto-ui-1/img/pen-icon-dark.png diff --git a/resources/proto-ui-1/img/pen-icon.png b/misc/proto-ui-1/img/pen-icon.png similarity index 100% rename from resources/proto-ui-1/img/pen-icon.png rename to misc/proto-ui-1/img/pen-icon.png diff --git a/resources/proto-ui-1/img/preview-state-1.png b/misc/proto-ui-1/img/preview-state-1.png similarity index 100% rename from resources/proto-ui-1/img/preview-state-1.png rename to misc/proto-ui-1/img/preview-state-1.png diff --git a/resources/proto-ui-1/img/preview.gif b/misc/proto-ui-1/img/preview.gif similarity index 100% rename from resources/proto-ui-1/img/preview.gif rename to misc/proto-ui-1/img/preview.gif diff --git a/resources/proto-ui-1/img/transparent_background.png b/misc/proto-ui-1/img/transparent_background.png similarity index 100% rename from resources/proto-ui-1/img/transparent_background.png rename to misc/proto-ui-1/img/transparent_background.png diff --git a/resources/proto-ui-1/index.html b/misc/proto-ui-1/index.html similarity index 100% rename from resources/proto-ui-1/index.html rename to misc/proto-ui-1/index.html diff --git a/js/lib/jquery-1.8.0.js b/misc/proto-ui-1/jquery-1.8.0.js similarity index 100% rename from js/lib/jquery-1.8.0.js rename to misc/proto-ui-1/jquery-1.8.0.js diff --git a/resources/proto-ui-1/main.css b/misc/proto-ui-1/main.css similarity index 100% rename from resources/proto-ui-1/main.css rename to misc/proto-ui-1/main.css diff --git a/resources/proto-ui-1/main.js b/misc/proto-ui-1/main.js similarity index 100% rename from resources/proto-ui-1/main.js rename to misc/proto-ui-1/main.js diff --git a/resources/rectangle.ai b/misc/rectangle.ai similarity index 100% rename from resources/rectangle.ai rename to misc/rectangle.ai diff --git a/resources/rectangle_selection.ai b/misc/rectangle_selection.ai similarity index 100% rename from resources/rectangle_selection.ai rename to misc/rectangle_selection.ai diff --git a/resources/stroke.ai b/misc/stroke.ai similarity index 100% rename from resources/stroke.ai rename to misc/stroke.ai diff --git a/resources/swap-arrow-small.png b/misc/swap-arrow-small.png similarity index 100% rename from resources/swap-arrow-small.png rename to misc/swap-arrow-small.png diff --git a/img/tools/swap-arrow-square-small-grey.png b/misc/swap-arrow-square-small-grey.png similarity index 100% rename from img/tools/swap-arrow-square-small-grey.png rename to misc/swap-arrow-square-small-grey.png diff --git a/resources/swap-arrow-square-small.png b/misc/swap-arrow-square-small.png similarity index 100% rename from resources/swap-arrow-square-small.png rename to misc/swap-arrow-square-small.png diff --git a/resources/swap-arrow-square.svg b/misc/swap-arrow-square.svg similarity index 100% rename from resources/swap-arrow-square.svg rename to misc/swap-arrow-square.svg diff --git a/resources/swap-arrow.svg b/misc/swap-arrow.svg similarity index 100% rename from resources/swap-arrow.svg rename to misc/swap-arrow.svg diff --git a/css/bootstrap/bootstrap-tooltip-custom.css b/src/css/bootstrap/bootstrap-tooltip-custom.css similarity index 100% rename from css/bootstrap/bootstrap-tooltip-custom.css rename to src/css/bootstrap/bootstrap-tooltip-custom.css diff --git a/css/bootstrap/bootstrap.css b/src/css/bootstrap/bootstrap.css similarity index 100% rename from css/bootstrap/bootstrap.css rename to src/css/bootstrap/bootstrap.css diff --git a/css/bootstrap/readme.txt b/src/css/bootstrap/readme.txt similarity index 100% rename from css/bootstrap/readme.txt rename to src/css/bootstrap/readme.txt diff --git a/css/cheatsheet.css b/src/css/cheatsheet.css similarity index 100% rename from css/cheatsheet.css rename to src/css/cheatsheet.css diff --git a/css/forms.css b/src/css/forms.css similarity index 100% rename from css/forms.css rename to src/css/forms.css diff --git a/css/minimap.css b/src/css/minimap.css similarity index 100% rename from css/minimap.css rename to src/css/minimap.css diff --git a/css/preview-film-section.css b/src/css/preview-film-section.css similarity index 100% rename from css/preview-film-section.css rename to src/css/preview-film-section.css diff --git a/css/reset.css b/src/css/reset.css similarity index 100% rename from css/reset.css rename to src/css/reset.css diff --git a/css/settings.css b/src/css/settings.css similarity index 100% rename from css/settings.css rename to src/css/settings.css diff --git a/css/spectrum/spectrum-overrides.css b/src/css/spectrum/spectrum-overrides.css similarity index 100% rename from css/spectrum/spectrum-overrides.css rename to src/css/spectrum/spectrum-overrides.css diff --git a/css/spectrum/spectrum.css b/src/css/spectrum/spectrum.css similarity index 100% rename from css/spectrum/spectrum.css rename to src/css/spectrum/spectrum.css diff --git a/css/style.css b/src/css/style.css similarity index 100% rename from css/style.css rename to src/css/style.css diff --git a/css/tools.css b/src/css/tools.css similarity index 100% rename from css/tools.css rename to src/css/tools.css diff --git a/img/canvas_background/light_canvas_background.png b/src/img/canvas_background/light_canvas_background.png similarity index 100% rename from img/canvas_background/light_canvas_background.png rename to src/img/canvas_background/light_canvas_background.png diff --git a/img/canvas_background/lowcont_dark_canvas_background.png b/src/img/canvas_background/lowcont_dark_canvas_background.png similarity index 100% rename from img/canvas_background/lowcont_dark_canvas_background.png rename to src/img/canvas_background/lowcont_dark_canvas_background.png diff --git a/img/canvas_background/lowcont_medium_canvas_background.png b/src/img/canvas_background/lowcont_medium_canvas_background.png similarity index 100% rename from img/canvas_background/lowcont_medium_canvas_background.png rename to src/img/canvas_background/lowcont_medium_canvas_background.png diff --git a/img/canvas_background/medium_canvas_background.png b/src/img/canvas_background/medium_canvas_background.png similarity index 100% rename from img/canvas_background/medium_canvas_background.png rename to src/img/canvas_background/medium_canvas_background.png diff --git a/img/cloud_export.png b/src/img/cloud_export.png similarity index 100% rename from img/cloud_export.png rename to src/img/cloud_export.png diff --git a/resources/proto-ui-1/img/dragndrop.png b/src/img/dragndrop.png similarity index 100% rename from resources/proto-ui-1/img/dragndrop.png rename to src/img/dragndrop.png diff --git a/img/duplicate.png b/src/img/duplicate.png similarity index 100% rename from img/duplicate.png rename to src/img/duplicate.png diff --git a/img/favicon.png b/src/img/favicon.png similarity index 100% rename from img/favicon.png rename to src/img/favicon.png diff --git a/img/gallery.png b/src/img/gallery.png similarity index 100% rename from img/gallery.png rename to src/img/gallery.png diff --git a/resources/proto-ui-1/img/garbage.png b/src/img/garbage.png similarity index 100% rename from resources/proto-ui-1/img/garbage.png rename to src/img/garbage.png diff --git a/img/gear.png b/src/img/gear.png similarity index 100% rename from img/gear.png rename to src/img/gear.png diff --git a/img/icons/circle.png b/src/img/icons/circle.png similarity index 100% rename from img/icons/circle.png rename to src/img/icons/circle.png diff --git a/img/icons/color-palette.png b/src/img/icons/color-palette.png similarity index 100% rename from img/icons/color-palette.png rename to src/img/icons/color-palette.png diff --git a/img/icons/dropper.png b/src/img/icons/dropper.png similarity index 100% rename from img/icons/dropper.png rename to src/img/icons/dropper.png diff --git a/img/icons/eraser.png b/src/img/icons/eraser.png similarity index 100% rename from img/icons/eraser.png rename to src/img/icons/eraser.png diff --git a/img/icons/hand.png b/src/img/icons/hand.png similarity index 100% rename from img/icons/hand.png rename to src/img/icons/hand.png diff --git a/img/icons/mirror-pen.png b/src/img/icons/mirror-pen.png similarity index 100% rename from img/icons/mirror-pen.png rename to src/img/icons/mirror-pen.png diff --git a/img/icons/paint-bucket.png b/src/img/icons/paint-bucket.png similarity index 100% rename from img/icons/paint-bucket.png rename to src/img/icons/paint-bucket.png diff --git a/img/icons/pen.png b/src/img/icons/pen.png similarity index 100% rename from img/icons/pen.png rename to src/img/icons/pen.png diff --git a/img/icons/rectangle.png b/src/img/icons/rectangle.png similarity index 100% rename from img/icons/rectangle.png rename to src/img/icons/rectangle.png diff --git a/img/icons/select.png b/src/img/icons/select.png similarity index 100% rename from img/icons/select.png rename to src/img/icons/select.png diff --git a/img/icons/stroke.png b/src/img/icons/stroke.png similarity index 100% rename from img/icons/stroke.png rename to src/img/icons/stroke.png diff --git a/img/icons/vertical-mirror-pen.png b/src/img/icons/vertical-mirror-pen.png similarity index 100% rename from img/icons/vertical-mirror-pen.png rename to src/img/icons/vertical-mirror-pen.png diff --git a/img/icons/wand.png b/src/img/icons/wand.png similarity index 100% rename from img/icons/wand.png rename to src/img/icons/wand.png diff --git a/img/import-icon.png b/src/img/import-icon.png similarity index 100% rename from img/import-icon.png rename to src/img/import-icon.png diff --git a/img/layers.svg b/src/img/layers.svg similarity index 100% rename from img/layers.svg rename to src/img/layers.svg diff --git a/img/local-storage-icon.png b/src/img/local-storage-icon.png similarity index 100% rename from img/local-storage-icon.png rename to src/img/local-storage-icon.png diff --git a/img/plus.png b/src/img/plus.png similarity index 100% rename from img/plus.png rename to src/img/plus.png diff --git a/img/resize-icon.png b/src/img/resize-icon.png similarity index 100% rename from img/resize-icon.png rename to src/img/resize-icon.png diff --git a/img/save.png b/src/img/save.png similarity index 100% rename from img/save.png rename to src/img/save.png diff --git a/img/tools/circle-dark.png b/src/img/tools/circle-dark.png similarity index 100% rename from img/tools/circle-dark.png rename to src/img/tools/circle-dark.png diff --git a/img/tools/circle.png b/src/img/tools/circle.png similarity index 100% rename from img/tools/circle.png rename to src/img/tools/circle.png diff --git a/img/tools/eraser-dark.png b/src/img/tools/eraser-dark.png similarity index 100% rename from img/tools/eraser-dark.png rename to src/img/tools/eraser-dark.png diff --git a/img/tools/eraser.png b/src/img/tools/eraser.png similarity index 100% rename from img/tools/eraser.png rename to src/img/tools/eraser.png diff --git a/resources/proto-ui-1/img/eyedropper-dark.png b/src/img/tools/eyedropper-dark.png similarity index 100% rename from resources/proto-ui-1/img/eyedropper-dark.png rename to src/img/tools/eyedropper-dark.png diff --git a/img/tools/eyedropper.png b/src/img/tools/eyedropper.png similarity index 100% rename from img/tools/eyedropper.png rename to src/img/tools/eyedropper.png diff --git a/img/tools/hand-dark.png b/src/img/tools/hand-dark.png similarity index 100% rename from img/tools/hand-dark.png rename to src/img/tools/hand-dark.png diff --git a/img/tools/hand.png b/src/img/tools/hand.png similarity index 100% rename from img/tools/hand.png rename to src/img/tools/hand.png diff --git a/img/tools/magicwand-dark.png b/src/img/tools/magicwand-dark.png similarity index 100% rename from img/tools/magicwand-dark.png rename to src/img/tools/magicwand-dark.png diff --git a/img/tools/magicwand.png b/src/img/tools/magicwand.png similarity index 100% rename from img/tools/magicwand.png rename to src/img/tools/magicwand.png diff --git a/img/tools/mirror.png b/src/img/tools/mirror.png similarity index 100% rename from img/tools/mirror.png rename to src/img/tools/mirror.png diff --git a/img/tools/paintbucket-dark.png b/src/img/tools/paintbucket-dark.png similarity index 100% rename from img/tools/paintbucket-dark.png rename to src/img/tools/paintbucket-dark.png diff --git a/img/tools/paintbucket.png b/src/img/tools/paintbucket.png similarity index 100% rename from img/tools/paintbucket.png rename to src/img/tools/paintbucket.png diff --git a/img/tools/pen-dark.png b/src/img/tools/pen-dark.png similarity index 100% rename from img/tools/pen-dark.png rename to src/img/tools/pen-dark.png diff --git a/img/tools/pen.png b/src/img/tools/pen.png similarity index 100% rename from img/tools/pen.png rename to src/img/tools/pen.png diff --git a/img/tools/rectangle-dark.png b/src/img/tools/rectangle-dark.png similarity index 100% rename from img/tools/rectangle-dark.png rename to src/img/tools/rectangle-dark.png diff --git a/img/tools/rectangle.png b/src/img/tools/rectangle.png similarity index 100% rename from img/tools/rectangle.png rename to src/img/tools/rectangle.png diff --git a/img/tools/rectangle_selection-dark.png b/src/img/tools/rectangle_selection-dark.png similarity index 100% rename from img/tools/rectangle_selection-dark.png rename to src/img/tools/rectangle_selection-dark.png diff --git a/img/tools/rectangle_selection.png b/src/img/tools/rectangle_selection.png similarity index 100% rename from img/tools/rectangle_selection.png rename to src/img/tools/rectangle_selection.png diff --git a/img/tools/stroke.png b/src/img/tools/stroke.png similarity index 100% rename from img/tools/stroke.png rename to src/img/tools/stroke.png diff --git a/resources/swap-arrow-square-small-grey.png b/src/img/tools/swap-arrow-square-small-grey.png similarity index 100% rename from resources/swap-arrow-square-small-grey.png rename to src/img/tools/swap-arrow-square-small-grey.png diff --git a/index.html b/src/index.html similarity index 100% rename from index.html rename to src/index.html diff --git a/js/Constants.js b/src/js/Constants.js similarity index 100% rename from js/Constants.js rename to src/js/Constants.js diff --git a/js/Events.js b/src/js/Events.js similarity index 100% rename from js/Events.js rename to src/js/Events.js diff --git a/js/app.js b/src/js/app.js similarity index 100% rename from js/app.js rename to src/js/app.js diff --git a/js/controller/AnimatedPreviewController.js b/src/js/controller/AnimatedPreviewController.js similarity index 100% rename from js/controller/AnimatedPreviewController.js rename to src/js/controller/AnimatedPreviewController.js diff --git a/js/controller/DrawingController.js b/src/js/controller/DrawingController.js similarity index 100% rename from js/controller/DrawingController.js rename to src/js/controller/DrawingController.js diff --git a/js/controller/LayersListController.js b/src/js/controller/LayersListController.js similarity index 100% rename from js/controller/LayersListController.js rename to src/js/controller/LayersListController.js diff --git a/js/controller/MinimapController.js b/src/js/controller/MinimapController.js similarity index 100% rename from js/controller/MinimapController.js rename to src/js/controller/MinimapController.js diff --git a/js/controller/NotificationController.js b/src/js/controller/NotificationController.js similarity index 100% rename from js/controller/NotificationController.js rename to src/js/controller/NotificationController.js diff --git a/js/controller/PaletteController.js b/src/js/controller/PaletteController.js similarity index 100% rename from js/controller/PaletteController.js rename to src/js/controller/PaletteController.js diff --git a/js/controller/PiskelController.js b/src/js/controller/PiskelController.js similarity index 100% rename from js/controller/PiskelController.js rename to src/js/controller/PiskelController.js diff --git a/js/controller/PreviewFilmController.js b/src/js/controller/PreviewFilmController.js similarity index 100% rename from js/controller/PreviewFilmController.js rename to src/js/controller/PreviewFilmController.js diff --git a/js/controller/ToolController.js b/src/js/controller/ToolController.js similarity index 100% rename from js/controller/ToolController.js rename to src/js/controller/ToolController.js diff --git a/js/controller/settings/ApplicationSettingsController.js b/src/js/controller/settings/ApplicationSettingsController.js similarity index 100% rename from js/controller/settings/ApplicationSettingsController.js rename to src/js/controller/settings/ApplicationSettingsController.js diff --git a/js/controller/settings/GifExportController.js b/src/js/controller/settings/GifExportController.js similarity index 100% rename from js/controller/settings/GifExportController.js rename to src/js/controller/settings/GifExportController.js diff --git a/js/controller/settings/ImportController.js b/src/js/controller/settings/ImportController.js similarity index 100% rename from js/controller/settings/ImportController.js rename to src/js/controller/settings/ImportController.js diff --git a/js/controller/settings/LocalStorageController.js b/src/js/controller/settings/LocalStorageController.js similarity index 100% rename from js/controller/settings/LocalStorageController.js rename to src/js/controller/settings/LocalStorageController.js diff --git a/js/controller/settings/PngExportController.js b/src/js/controller/settings/PngExportController.js similarity index 100% rename from js/controller/settings/PngExportController.js rename to src/js/controller/settings/PngExportController.js diff --git a/js/controller/settings/ResizeController.js b/src/js/controller/settings/ResizeController.js similarity index 100% rename from js/controller/settings/ResizeController.js rename to src/js/controller/settings/ResizeController.js diff --git a/js/controller/settings/SaveController.js b/src/js/controller/settings/SaveController.js similarity index 100% rename from js/controller/settings/SaveController.js rename to src/js/controller/settings/SaveController.js diff --git a/js/controller/settings/SettingsController.js b/src/js/controller/settings/SettingsController.js similarity index 100% rename from js/controller/settings/SettingsController.js rename to src/js/controller/settings/SettingsController.js diff --git a/js/drawingtools/BaseTool.js b/src/js/drawingtools/BaseTool.js similarity index 100% rename from js/drawingtools/BaseTool.js rename to src/js/drawingtools/BaseTool.js diff --git a/js/drawingtools/Circle.js b/src/js/drawingtools/Circle.js similarity index 100% rename from js/drawingtools/Circle.js rename to src/js/drawingtools/Circle.js diff --git a/js/drawingtools/ColorPicker.js b/src/js/drawingtools/ColorPicker.js similarity index 100% rename from js/drawingtools/ColorPicker.js rename to src/js/drawingtools/ColorPicker.js diff --git a/js/drawingtools/Eraser.js b/src/js/drawingtools/Eraser.js similarity index 100% rename from js/drawingtools/Eraser.js rename to src/js/drawingtools/Eraser.js diff --git a/js/drawingtools/Move.js b/src/js/drawingtools/Move.js similarity index 100% rename from js/drawingtools/Move.js rename to src/js/drawingtools/Move.js diff --git a/js/drawingtools/PaintBucket.js b/src/js/drawingtools/PaintBucket.js similarity index 100% rename from js/drawingtools/PaintBucket.js rename to src/js/drawingtools/PaintBucket.js diff --git a/js/drawingtools/Rectangle.js b/src/js/drawingtools/Rectangle.js similarity index 100% rename from js/drawingtools/Rectangle.js rename to src/js/drawingtools/Rectangle.js diff --git a/js/drawingtools/SimplePen.js b/src/js/drawingtools/SimplePen.js similarity index 100% rename from js/drawingtools/SimplePen.js rename to src/js/drawingtools/SimplePen.js diff --git a/js/drawingtools/Stroke.js b/src/js/drawingtools/Stroke.js similarity index 100% rename from js/drawingtools/Stroke.js rename to src/js/drawingtools/Stroke.js diff --git a/js/drawingtools/VerticalMirrorPen.js b/src/js/drawingtools/VerticalMirrorPen.js similarity index 100% rename from js/drawingtools/VerticalMirrorPen.js rename to src/js/drawingtools/VerticalMirrorPen.js diff --git a/js/drawingtools/selectiontools/BaseSelect.js b/src/js/drawingtools/selectiontools/BaseSelect.js similarity index 100% rename from js/drawingtools/selectiontools/BaseSelect.js rename to src/js/drawingtools/selectiontools/BaseSelect.js diff --git a/js/drawingtools/selectiontools/RectangleSelect.js b/src/js/drawingtools/selectiontools/RectangleSelect.js similarity index 100% rename from js/drawingtools/selectiontools/RectangleSelect.js rename to src/js/drawingtools/selectiontools/RectangleSelect.js diff --git a/js/drawingtools/selectiontools/ShapeSelect.js b/src/js/drawingtools/selectiontools/ShapeSelect.js similarity index 100% rename from js/drawingtools/selectiontools/ShapeSelect.js rename to src/js/drawingtools/selectiontools/ShapeSelect.js diff --git a/js/lib/.DS_Store b/src/js/lib/.DS_Store similarity index 100% rename from js/lib/.DS_Store rename to src/js/lib/.DS_Store diff --git a/js/lib/bootstrap/bootstrap.js b/src/js/lib/bootstrap/bootstrap.js similarity index 100% rename from js/lib/bootstrap/bootstrap.js rename to src/js/lib/bootstrap/bootstrap.js diff --git a/js/lib/bootstrap/readme.txt b/src/js/lib/bootstrap/readme.txt similarity index 100% rename from js/lib/bootstrap/readme.txt rename to src/js/lib/bootstrap/readme.txt diff --git a/js/lib/gif/gif.js b/src/js/lib/gif/gif.js similarity index 100% rename from js/lib/gif/gif.js rename to src/js/lib/gif/gif.js diff --git a/js/lib/gif/gif.worker.js b/src/js/lib/gif/gif.worker.js similarity index 100% rename from js/lib/gif/gif.worker.js rename to src/js/lib/gif/gif.worker.js diff --git a/js/lib/iframeLoader.js b/src/js/lib/iframeLoader.js similarity index 100% rename from js/lib/iframeLoader.js rename to src/js/lib/iframeLoader.js diff --git a/resources/proto-ui-1/jquery-1.8.0.js b/src/js/lib/jquery-1.8.0.js similarity index 100% rename from resources/proto-ui-1/jquery-1.8.0.js rename to src/js/lib/jquery-1.8.0.js diff --git a/js/lib/jquery-ui-1.10.3.custom.js b/src/js/lib/jquery-ui-1.10.3.custom.js similarity index 100% rename from js/lib/jquery-ui-1.10.3.custom.js rename to src/js/lib/jquery-ui-1.10.3.custom.js diff --git a/js/lib/pubsub.js b/src/js/lib/pubsub.js similarity index 100% rename from js/lib/pubsub.js rename to src/js/lib/pubsub.js diff --git a/js/lib/spectrum/spectrum.js b/src/js/lib/spectrum/spectrum.js similarity index 100% rename from js/lib/spectrum/spectrum.js rename to src/js/lib/spectrum/spectrum.js diff --git a/js/model/Frame.js b/src/js/model/Frame.js similarity index 100% rename from js/model/Frame.js rename to src/js/model/Frame.js diff --git a/js/model/Layer.js b/src/js/model/Layer.js similarity index 100% rename from js/model/Layer.js rename to src/js/model/Layer.js diff --git a/js/model/Piskel.js b/src/js/model/Piskel.js similarity index 100% rename from js/model/Piskel.js rename to src/js/model/Piskel.js diff --git a/js/model/piskel/Descriptor.js b/src/js/model/piskel/Descriptor.js similarity index 100% rename from js/model/piskel/Descriptor.js rename to src/js/model/piskel/Descriptor.js diff --git a/js/rendering/AbstractRenderer.js b/src/js/rendering/AbstractRenderer.js similarity index 100% rename from js/rendering/AbstractRenderer.js rename to src/js/rendering/AbstractRenderer.js diff --git a/js/rendering/CanvasRenderer.js b/src/js/rendering/CanvasRenderer.js similarity index 100% rename from js/rendering/CanvasRenderer.js rename to src/js/rendering/CanvasRenderer.js diff --git a/js/rendering/CompositeRenderer.js b/src/js/rendering/CompositeRenderer.js similarity index 100% rename from js/rendering/CompositeRenderer.js rename to src/js/rendering/CompositeRenderer.js diff --git a/js/rendering/DrawingLoop.js b/src/js/rendering/DrawingLoop.js similarity index 100% rename from js/rendering/DrawingLoop.js rename to src/js/rendering/DrawingLoop.js diff --git a/js/rendering/FramesheetRenderer.js b/src/js/rendering/FramesheetRenderer.js similarity index 100% rename from js/rendering/FramesheetRenderer.js rename to src/js/rendering/FramesheetRenderer.js diff --git a/js/rendering/PiskelRenderer.js b/src/js/rendering/PiskelRenderer.js similarity index 100% rename from js/rendering/PiskelRenderer.js rename to src/js/rendering/PiskelRenderer.js diff --git a/js/rendering/frame/CachedFrameRenderer.js b/src/js/rendering/frame/CachedFrameRenderer.js similarity index 100% rename from js/rendering/frame/CachedFrameRenderer.js rename to src/js/rendering/frame/CachedFrameRenderer.js diff --git a/js/rendering/frame/FrameRenderer.js b/src/js/rendering/frame/FrameRenderer.js similarity index 100% rename from js/rendering/frame/FrameRenderer.js rename to src/js/rendering/frame/FrameRenderer.js diff --git a/js/rendering/layer/LayersRenderer.js b/src/js/rendering/layer/LayersRenderer.js similarity index 100% rename from js/rendering/layer/LayersRenderer.js rename to src/js/rendering/layer/LayersRenderer.js diff --git a/js/selection/BaseSelection.js b/src/js/selection/BaseSelection.js similarity index 100% rename from js/selection/BaseSelection.js rename to src/js/selection/BaseSelection.js diff --git a/js/selection/RectangularSelection.js b/src/js/selection/RectangularSelection.js similarity index 100% rename from js/selection/RectangularSelection.js rename to src/js/selection/RectangularSelection.js diff --git a/js/selection/SelectionManager.js b/src/js/selection/SelectionManager.js similarity index 100% rename from js/selection/SelectionManager.js rename to src/js/selection/SelectionManager.js diff --git a/js/selection/ShapeSelection.js b/src/js/selection/ShapeSelection.js similarity index 100% rename from js/selection/ShapeSelection.js rename to src/js/selection/ShapeSelection.js diff --git a/js/service/AppEngineStorageService.js b/src/js/service/AppEngineStorageService.js similarity index 100% rename from js/service/AppEngineStorageService.js rename to src/js/service/AppEngineStorageService.js diff --git a/js/service/GithubStorageService.js b/src/js/service/GithubStorageService.js similarity index 100% rename from js/service/GithubStorageService.js rename to src/js/service/GithubStorageService.js diff --git a/js/service/HistoryService.js b/src/js/service/HistoryService.js similarity index 100% rename from js/service/HistoryService.js rename to src/js/service/HistoryService.js diff --git a/js/service/ImageUploadService.js b/src/js/service/ImageUploadService.js similarity index 100% rename from js/service/ImageUploadService.js rename to src/js/service/ImageUploadService.js diff --git a/js/service/LocalStorageService.js b/src/js/service/LocalStorageService.js similarity index 100% rename from js/service/LocalStorageService.js rename to src/js/service/LocalStorageService.js diff --git a/js/service/SavedStatusService.js b/src/js/service/SavedStatusService.js similarity index 100% rename from js/service/SavedStatusService.js rename to src/js/service/SavedStatusService.js diff --git a/js/service/keyboard/CheatsheetService.js b/src/js/service/keyboard/CheatsheetService.js similarity index 100% rename from js/service/keyboard/CheatsheetService.js rename to src/js/service/keyboard/CheatsheetService.js diff --git a/js/service/keyboard/KeycodeTranslator.js b/src/js/service/keyboard/KeycodeTranslator.js similarity index 100% rename from js/service/keyboard/KeycodeTranslator.js rename to src/js/service/keyboard/KeycodeTranslator.js diff --git a/js/service/keyboard/ShortcutService.js b/src/js/service/keyboard/ShortcutService.js similarity index 100% rename from js/service/keyboard/ShortcutService.js rename to src/js/service/keyboard/ShortcutService.js diff --git a/js/utils/CanvasUtils.js b/src/js/utils/CanvasUtils.js similarity index 100% rename from js/utils/CanvasUtils.js rename to src/js/utils/CanvasUtils.js diff --git a/js/utils/Dom.js b/src/js/utils/Dom.js similarity index 100% rename from js/utils/Dom.js rename to src/js/utils/Dom.js diff --git a/js/utils/FileUtils.js b/src/js/utils/FileUtils.js similarity index 100% rename from js/utils/FileUtils.js rename to src/js/utils/FileUtils.js diff --git a/js/utils/FrameUtils.js b/src/js/utils/FrameUtils.js similarity index 100% rename from js/utils/FrameUtils.js rename to src/js/utils/FrameUtils.js diff --git a/js/utils/ImageResizer.js b/src/js/utils/ImageResizer.js similarity index 100% rename from js/utils/ImageResizer.js rename to src/js/utils/ImageResizer.js diff --git a/js/utils/LayerUtils.js b/src/js/utils/LayerUtils.js similarity index 100% rename from js/utils/LayerUtils.js rename to src/js/utils/LayerUtils.js diff --git a/js/utils/Math.js b/src/js/utils/Math.js similarity index 100% rename from js/utils/Math.js rename to src/js/utils/Math.js diff --git a/js/utils/PixelUtils.js b/src/js/utils/PixelUtils.js similarity index 100% rename from js/utils/PixelUtils.js rename to src/js/utils/PixelUtils.js diff --git a/js/utils/Template.js b/src/js/utils/Template.js similarity index 100% rename from js/utils/Template.js rename to src/js/utils/Template.js diff --git a/js/utils/UserAgent.js b/src/js/utils/UserAgent.js similarity index 100% rename from js/utils/UserAgent.js rename to src/js/utils/UserAgent.js diff --git a/js/utils/UserSettings.js b/src/js/utils/UserSettings.js similarity index 100% rename from js/utils/UserSettings.js rename to src/js/utils/UserSettings.js diff --git a/js/utils/core.js b/src/js/utils/core.js similarity index 100% rename from js/utils/core.js rename to src/js/utils/core.js diff --git a/js/utils/serialization/Deserializer.js b/src/js/utils/serialization/Deserializer.js similarity index 100% rename from js/utils/serialization/Deserializer.js rename to src/js/utils/serialization/Deserializer.js diff --git a/js/utils/serialization/Serializer.js b/src/js/utils/serialization/Serializer.js similarity index 100% rename from js/utils/serialization/Serializer.js rename to src/js/utils/serialization/Serializer.js diff --git a/js/utils/serialization/backward/Deserializer_v0.js b/src/js/utils/serialization/backward/Deserializer_v0.js similarity index 100% rename from js/utils/serialization/backward/Deserializer_v0.js rename to src/js/utils/serialization/backward/Deserializer_v0.js diff --git a/js/utils/serialization/backward/Deserializer_v1.js b/src/js/utils/serialization/backward/Deserializer_v1.js similarity index 100% rename from js/utils/serialization/backward/Deserializer_v1.js rename to src/js/utils/serialization/backward/Deserializer_v1.js diff --git a/piskel-boot.js b/src/piskel-boot.js similarity index 100% rename from piskel-boot.js rename to src/piskel-boot.js diff --git a/piskel-script-list.js b/src/piskel-script-list.js similarity index 100% rename from piskel-script-list.js rename to src/piskel-script-list.js diff --git a/piskel-style-list.js b/src/piskel-style-list.js similarity index 100% rename from piskel-style-list.js rename to src/piskel-style-list.js diff --git a/templates/cheatsheet.html b/src/templates/cheatsheet.html similarity index 100% rename from templates/cheatsheet.html rename to src/templates/cheatsheet.html diff --git a/templates/drawing-tools.html b/src/templates/drawing-tools.html similarity index 100% rename from templates/drawing-tools.html rename to src/templates/drawing-tools.html diff --git a/templates/frames-list.html b/src/templates/frames-list.html similarity index 100% rename from templates/frames-list.html rename to src/templates/frames-list.html diff --git a/templates/layers-list.html b/src/templates/layers-list.html similarity index 100% rename from templates/layers-list.html rename to src/templates/layers-list.html diff --git a/templates/preview.html b/src/templates/preview.html similarity index 100% rename from templates/preview.html rename to src/templates/preview.html diff --git a/templates/settings.html b/src/templates/settings.html similarity index 100% rename from templates/settings.html rename to src/templates/settings.html diff --git a/templates/settings/application.html b/src/templates/settings/application.html similarity index 100% rename from templates/settings/application.html rename to src/templates/settings/application.html diff --git a/templates/settings/export-gif.html b/src/templates/settings/export-gif.html similarity index 100% rename from templates/settings/export-gif.html rename to src/templates/settings/export-gif.html diff --git a/templates/settings/export-png.html b/src/templates/settings/export-png.html similarity index 100% rename from templates/settings/export-png.html rename to src/templates/settings/export-png.html diff --git a/templates/settings/import.html b/src/templates/settings/import.html similarity index 100% rename from templates/settings/import.html rename to src/templates/settings/import.html diff --git a/templates/settings/localstorage.html b/src/templates/settings/localstorage.html similarity index 100% rename from templates/settings/localstorage.html rename to src/templates/settings/localstorage.html diff --git a/templates/settings/resize.html b/src/templates/settings/resize.html similarity index 100% rename from templates/settings/resize.html rename to src/templates/settings/resize.html diff --git a/templates/settings/save.html b/src/templates/settings/save.html similarity index 100% rename from templates/settings/save.html rename to src/templates/settings/save.html diff --git a/tests/integration/casperjs/smoke_test.js b/test/integration/casperjs/smoke_test.js similarity index 100% rename from tests/integration/casperjs/smoke_test.js rename to test/integration/casperjs/smoke_test.js