Browse Source

Update sorting in layers

pull/856/head
Artur Arseniev 8 years ago
parent
commit
8646a61ffd
  1. 2
      src/commands/view/SelectPosition.js
  2. 5
      src/dom_components/view/ComponentView.js
  3. 4
      src/editor/model/Editor.js
  4. 7
      src/navigator/view/ItemsView.js
  5. 12
      src/utils/Sorter.js

2
src/commands/view/SelectPosition.js

@ -23,7 +23,7 @@ module.exports = {
em: this.editorModel,
canvasRelative: 1
});
this.sorter.startSort(trg);
trg && this.sorter.startSort(trg);
},
/**

5
src/dom_components/view/ComponentView.js

@ -106,6 +106,7 @@ module.exports = Backbone.View.extend({
var selectedCls = pfx + 'selected';
var selectedParentCls = selectedCls + '-parent';
var freezedCls = `${ppfx}freezed`;
this.$el.removeClass(`${selectedCls} ${selectedParentCls} ${freezedCls}`);
var actualCls = el.getAttribute('class') || '';
var cls = '';
@ -119,10 +120,6 @@ module.exports = Backbone.View.extend({
case 'freezed':
cls = `${actualCls} ${freezedCls}`;
break;
default:
this.$el.removeClass(
`${selectedCls} ${selectedParentCls} ${freezedCls}`
);
}
cls = cls.trim();

4
src/editor/model/Editor.js

@ -197,9 +197,6 @@ module.exports = Backbone.Model.extend({
* @private
* */
componentSelected(model, val, options) {
const previous = this.previous('selectedComponent');
console.log('previous', previous, previous && previous.get('status'));
if (!this.get('selectedComponent')) {
this.trigger('deselect-comp');
} else {
@ -227,6 +224,7 @@ module.exports = Backbone.Model.extend({
let model = el;
isElement(el) && (model = $(el).data('model'));
if (model && !model.get('selectable')) return;
opts.forceChange && this.set('selectedComponent', '');
this.set('selectedComponent', model, opts);
},

7
src/navigator/view/ItemsView.js

@ -17,14 +17,19 @@ module.exports = require('backbone').View.extend({
this.listenTo(coll, 'add', this.addTo);
this.listenTo(coll, 'reset resetNavigator', this.render);
this.className = `${pfx}layers`;
const em = config.em;
if (config.sortable && !this.opt.sorter) {
const utils = config.em.get('Utils');
const utils = em.get('Utils');
this.opt.sorter = new utils.Sorter({
container: config.sortContainer || this.el,
containerSel: `.${this.className}`,
itemSel: `.${pfx}layer`,
ignoreViewChildren: 1,
onEndMove(created, sorter) {
const srcModel = sorter.getSourceModel();
em.setSelected(srcModel, { forceChange: 1 });
},
avoidSelectOnEnd: 1,
nested: 1,
ppfx,

12
src/utils/Sorter.js

@ -1,4 +1,4 @@
import { isString } from 'underscore';
import { isString, isFunction } from 'underscore';
import { on, off, matches } from 'utils/mixins';
const $ = Backbone.$;
@ -670,7 +670,6 @@ module.exports = Backbone.View.extend({
const width = rect.width;
const height = rect.height;
//console.log(pos, {top, left});
if (
y < top + off || // near top edge
y > top + height - off || // near bottom edge
@ -719,8 +718,6 @@ module.exports = Backbone.View.extend({
width = el.offsetWidth;
}
//console.log('get dim', top, left, this.canvasRelative);
return [top, left, height, width];
},
@ -918,12 +915,11 @@ module.exports = Backbone.View.extend({
var clsReg = new RegExp('(?:^|\\s)' + this.freezeClass + '(?!\\S)', 'gi');
let src = this.eV;
if (src) {
if (src && this.selectOnEnd) {
var srcModel = this.getSourceModel();
if (srcModel && srcModel.set) {
srcModel.set('status', '');
srcModel.set('status', 'selected');
//this.selectOnEnd && srcModel.set('status', 'selected');
}
}
@ -932,9 +928,7 @@ module.exports = Backbone.View.extend({
}
if (this.plh) this.plh.style.display = 'none';
if (typeof this.onEndMove === 'function') this.onEndMove(created);
if (isFunction(this.onEndMove)) this.onEndMove(created, this);
var dragHelper = this.dragHelper;
if (dragHelper) {

Loading…
Cancel
Save