From a76225dc7f8ec707fc2dc563a796c65620b1c5a4 Mon Sep 17 00:00:00 2001 From: timb Date: Wed, 22 Jul 2015 00:25:07 -0700 Subject: finally hook up undo --- js/clipboard.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'js/clipboard.js') diff --git a/js/clipboard.js b/js/clipboard.js index ee79320..0ac2150 100644 --- a/js/clipboard.js +++ b/js/clipboard.js @@ -81,6 +81,7 @@ var clipboard = (function () { var rapper = document.createElement("div") rapper.innerHTML = import_textarea.value var y = 0; + undo.new() toArray(rapper.childNodes).forEach(function(span){ if (span.nodeName !== "SPAN") { return } var x = 0; @@ -106,6 +107,7 @@ var clipboard = (function () { for (var i = 0; i < line.length; i++, x++) { var lex = row[x] + undo.save_lex(x, y, lex) if (! lex) return lex.char = line[i] lex.fg = alphabet[ colorcode[1] ] @@ -141,9 +143,12 @@ var clipboard = (function () { var json = colorcode.to_json(data, {fg:0, bg:1}) - canvas_width_el.innerHTML = json.w - canvas_height_el.innerHTML = json.h - canvas.resize(json.w, json.h) + undo.new() + undo.save_rect(0,0, canvas.w, canvas.h) + if (json.w !== canvas.w || json.h !== canvas.h){ + undo.save_size(canvas.w, canvas.h) + canvas.resize(json.w, json.h, true) + } canvas.clear() for (var y = 0, line; line = json.lines[y]; y++){ @@ -165,12 +170,14 @@ var clipboard = (function () { var lines = data.split("\n") var width = lines.reduce(function(a,b){ console.log(a,b); return Math.max(a, b.length) }, 0) var height = lines.length - if (width > 200) { + if (width > canvas.max) { return alert("input too wide") } - if (height > 200) { + if (height > canvas.max) { return alert("input too tall") } + undo.new() + undo.save_rect(0,0, canvas.w, canvas.h) canvas.clear() lines.forEach(function(line, y){ var row = canvas.aa[y] -- cgit v1.2.3-70-g09d2