From 58b732bdef4d85f55d890c453547a031f2affca4 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Mon, 11 Dec 2017 02:11:32 +0100 Subject: [PATCH] Remove UndoManager references in Editor --- src/editor/model/Editor.js | 7 --- src/undo_manager/index.js | 88 ++------------------------------------ 2 files changed, 4 insertions(+), 91 deletions(-) diff --git a/src/editor/model/Editor.js b/src/editor/model/Editor.js index ef09b05b9..d443bd277 100644 --- a/src/editor/model/Editor.js +++ b/src/editor/model/Editor.js @@ -23,7 +23,6 @@ const deps = [ ]; const Backbone = require('backbone'); -const UndoManager = require('backbone-undo'); const key = require('keymaster'); let timedInterval; @@ -59,7 +58,6 @@ module.exports = Backbone.Model.extend({ // Load modules deps.forEach(name => this.loadModule(name)); - //this.initUndoManager(); this.on('change:selectedComponent', this.componentSelected, this); this.on('change:changesCount', this.updateChanges, this); }, @@ -93,11 +91,6 @@ module.exports = Backbone.Model.extend({ // Stuff to do post load (eg. init undo manager for loaded components) const postLoad = () => { - // I've initialized undo manager in initialize() because otherwise the - // editor will unable to fetch the instance via 'editor.UndoManager' but - // I need to cleare the stack now as it was dirtied by 'onLoad' method - //this.um && this.um.clear(); - //this.initUndoManager(); this.get('modules').forEach(module => module.postLoad && module.postLoad(this) ); diff --git a/src/undo_manager/index.js b/src/undo_manager/index.js index de701818f..df26561b6 100644 --- a/src/undo_manager/index.js +++ b/src/undo_manager/index.js @@ -11,84 +11,10 @@ import UndoManager from 'backbone-undo'; module.exports = () => { let em; - let config; let um; + let config; let beforeCache; const configDef = {}; - const keymaps = {}; - - /* - const canvas = this.get('Canvas'); - - if (this.um) { - return; - } - - var cmp = this.get('DomComponents'); - if(cmp && this.config.undoManager) { - var that = this; - this.um = new UndoManager({ - register: [cmp.getComponents(), this.get('CssComposer').getAll()], - track: true - }); - this.UndoManager = this.um; - this.set('UndoManager', this.um); - - key('⌘+z, ctrl+z', () => { - if (canvas.isInputFocused()) { - return; - } - - that.um.undo(true); - that.trigger('component:update'); - }); - - key('⌘+shift+z, ctrl+shift+z', () => { - if (canvas.isInputFocused()) { - return; - } - that.um.redo(true); - that.trigger('component:update'); - }); - - var beforeCache; - const customUndoType = { - on: function (model, value, opts) { - var opt = opts || {}; - if(!beforeCache){ - beforeCache = model.previousAttributes(); - } - if (opt && opt.avoidStore) { - return; - } else { - var obj = { - object: model, - before: beforeCache, - after: model.toJSON() - }; - beforeCache = null; - return obj; - } - }, - undo: function (model, bf, af, opt) { - model.set(bf); - // Update also inputs inside Style Manager - that.trigger('change:selectedComponent'); - }, - redo: function (model, bf, af, opt) { - model.set(af); - // Update also inputs inside Style Manager - that.trigger('change:selectedComponent'); - } - }; - - UndoManager.removeUndoType("change"); - UndoManager.addUndoType("change:style", customUndoType); - UndoManager.addUndoType("change:attributes", customUndoType); - UndoManager.addUndoType("change:content", customUndoType); - UndoManager.addUndoType("change:src", customUndoType); - } - */ return { @@ -105,12 +31,6 @@ module.exports = () => { em = config.em; this.em = em; um = new UndoManager({ track: true, register: [] }); - um.changeUndoType('change', { condition: false }); - const updated = () => { - em.trigger('change:selectedComponent'); - em.trigger('change:canvasOffset'); - console.log('updated'); - }; const customUndoType = { on(object, value, opt = {}) { !beforeCache && (beforeCache = object.previousAttributes()); @@ -130,17 +50,17 @@ module.exports = () => { undo(model, bf, af, opt) { model.set(bf); - updated(); }, redo(model, bf, af, opt) { model.set(af); - updated(); } }; const events = ['style', 'attributes', 'content', 'src']; events.forEach(ev => um.addUndoType(`change:${ev}`, customUndoType)); + um.changeUndoType('change', { condition: false }); + um.on('undo redo', () => em.trigger('change:selectedComponent change:canvasOffset')); return this; }, @@ -156,7 +76,7 @@ module.exports = () => { /** - * Add an entity (Model/Collection) to track changes + * Add an entity (Model/Collection) to track * @param {Model|Collection} entity Entity to track */ add(entity) {