From 9fc106b9167e56521907c6b82de1be042ae9a8fc Mon Sep 17 00:00:00 2001 From: Wouter R Date: Wed, 23 Oct 2013 02:43:58 +0200 Subject: [PATCH] loading/saving sketches: metadata is now written in cdata as json and loaded back so sketches can be fully restored. --- js_src/canvasDrawing.js | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/js_src/canvasDrawing.js b/js_src/canvasDrawing.js index 51f1ba6..3ec6cda 100644 --- a/js_src/canvasDrawing.js +++ b/js_src/canvasDrawing.js @@ -329,8 +329,25 @@ function loadFromSvg(svgData) { parseCommand(); //depends on value of p, so don't move this without taking that into consideration - //find '): skipSpace(); parse '(\w+):\w*(\w+)'; assign corresp. var if key matches + //TODO: untested from here + const fieldDefMarker = "", p); + if (endP == -1) { console.log("loadFromSvg: could not find metadata end-marker"); return false; } + var metaFields = JSON.parse(svgData.substr(p, endP - p)); + //TODO: log error and return false if parsing failed + for (var k in metaFields) { + var v = metaFields[k]; + switch (k) { + case "height": numLayers = v; break; + case "outlineShape": VERTICALSHAPE = v; break; + case "twist": rStep = v; break; + } + } renderToImageDataPreview(); @@ -343,6 +360,8 @@ function loadFromSvg(svgData) { return true; } +//SVG validator: http://validator.w3.org/ +//SVG viewer: http://svg-edit.googlecode.com/svn/branches/2.6/editor/svg-editor.html function saveToSvg() { var lastX = 0, lastY = 0, lastIsMove; var svg = ''; @@ -374,8 +393,8 @@ function saveToSvg() { svg += '\t\n'; - var makeField = function(k,v) { return k + ': ' + v + '; '; } - svg += '\n'; + var fields = JSON.stringify({'height': numLayers, 'outlineShape': VERTICALSHAPE, 'twist': rStep}); + svg += '\t\n'; svg += '\n';