Browse Source

Track properly css composer rules

pull/3411/head
Artur Arseniev 6 years ago
parent
commit
07c5a46442
  1. 25
      src/css_composer/index.js
  2. 4
      src/css_composer/model/CssRule.js
  3. 4
      src/undo_manager/index.js

25
src/css_composer/index.js

@ -106,28 +106,9 @@ export default () => {
* @param {Editor} em
* @private
*/
postLoad(em) {
const ev = 'add remove';
const rules = this.getAll();
const um = em.get('UndoManager');
um && um.add(rules);
em.stopListening(rules, ev, this.handleChange);
em.listenTo(rules, ev, this.handleChange);
rules.each(rule => this.handleChange(rule, null, { avoidStore: 1 }));
},
/**
* Handle rule changes
* @private
*/
handleChange(model, val, opts = {}) {
const ev = 'change:style';
const um = em.get('UndoManager');
um && um.add(model);
const handleUpdates = em.handleUpdates.bind(em);
em.stopListening(model, ev, handleUpdates);
em.listenTo(model, ev, handleUpdates);
!opts.avoidStore && handleUpdates('', '', opts);
postLoad() {
const um = em && em.get('UndoManager');
um && um.add(this.getAll());
},
/**

4
src/css_composer/model/CssRule.js

@ -36,7 +36,9 @@ export default Backbone.Model.extend(Styleable).extend({
// If true, sets '!important' on all properties
// You can use an array to specify properties to set important
// Used in view
important: 0
important: 0,
_undo: true
},
initialize(c, opt = {}) {

4
src/undo_manager/index.js

@ -68,9 +68,9 @@ export default () => {
}
return false;
},
on(object, v, opt = {}) {
on(object, v, opts) {
!beforeCache && (beforeCache = object.previousAttributes());
const opt = opts || v || {};
if (hasSkip(opt)) {
return;
} else {

Loading…
Cancel
Save