Changing stroke/fill properties when multiple elements selected now apply to all elements selected. Remove commented out logging messages
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@245 eee81c28-f429-11dd-99c0-75d572ba1ddd
This commit is contained in:
@@ -115,7 +115,6 @@ function SvgCanvas(c)
|
|||||||
|
|
||||||
// this function is used to reset the id and element that the selector is attached to
|
// this function is used to reset the id and element that the selector is attached to
|
||||||
this.reset = function(e) {
|
this.reset = function(e) {
|
||||||
// console.log("Selector.reset() with e=" + e.id);
|
|
||||||
this.locked = true;
|
this.locked = true;
|
||||||
this.selectedElement = e;
|
this.selectedElement = e;
|
||||||
this.resize();
|
this.resize();
|
||||||
@@ -189,7 +188,6 @@ function SvgCanvas(c)
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.resize = function(bbox) {
|
this.resize = function(bbox) {
|
||||||
// console.log("in Selector.resize()");
|
|
||||||
var selectedBox = this.selectorRect;
|
var selectedBox = this.selectorRect;
|
||||||
var selectedGrips = this.selectorGrips;
|
var selectedGrips = this.selectorGrips;
|
||||||
var selected = this.selectedElement;
|
var selected = this.selectedElement;
|
||||||
@@ -202,7 +200,6 @@ function SvgCanvas(c)
|
|||||||
offset += 2;
|
offset += 2;
|
||||||
}
|
}
|
||||||
var bbox = bbox || this.selectedElement.getBBox();
|
var bbox = bbox || this.selectedElement.getBBox();
|
||||||
// console.log(" bbox=" + bbox.x + "," + bbox.y + "," + bbox.width + "," + bbox.height);
|
|
||||||
var l=bbox.x-offset, t=bbox.y-offset, w=bbox.width+(offset<<1), h=bbox.height+(offset<<1);
|
var l=bbox.x-offset, t=bbox.y-offset, w=bbox.width+(offset<<1), h=bbox.height+(offset<<1);
|
||||||
selectedBox.x.baseVal.value = l;
|
selectedBox.x.baseVal.value = l;
|
||||||
selectedBox.y.baseVal.value = t;
|
selectedBox.y.baseVal.value = t;
|
||||||
@@ -259,18 +256,15 @@ function SvgCanvas(c)
|
|||||||
if (elem == null) return null;
|
if (elem == null) return null;
|
||||||
var N = this.selectors.length;
|
var N = this.selectors.length;
|
||||||
|
|
||||||
// console.log("requestSelector() with N=" + N);
|
|
||||||
if (this.selectorParentGroup == null) {
|
if (this.selectorParentGroup == null) {
|
||||||
initGroup();
|
initGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
// if we've already acquired one for this element, return it
|
// if we've already acquired one for this element, return it
|
||||||
if (typeof(this.selectorMap[elem]) == "object") {
|
if (typeof(this.selectorMap[elem]) == "object") {
|
||||||
// console.log("-found elem in selectorMap");
|
|
||||||
this.selectorMap[elem].locked = true;
|
this.selectorMap[elem].locked = true;
|
||||||
return this.selectorMap[elem];
|
return this.selectorMap[elem];
|
||||||
}
|
}
|
||||||
// console.log(this.selectors);
|
|
||||||
|
|
||||||
for (var i = 0; i < N; ++i) {
|
for (var i = 0; i < N; ++i) {
|
||||||
if (this.selectors[i] && !this.selectors[i].locked) {
|
if (this.selectors[i] && !this.selectors[i].locked) {
|
||||||
@@ -287,15 +281,11 @@ function SvgCanvas(c)
|
|||||||
return this.selectors[N];
|
return this.selectors[N];
|
||||||
};
|
};
|
||||||
this.releaseSelector = function(elem) {
|
this.releaseSelector = function(elem) {
|
||||||
// console.log("releaseSelector() with N=" + N +", elem=" + elem.id);
|
|
||||||
if (elem == null) return;
|
if (elem == null) return;
|
||||||
var N = this.selectors.length;
|
var N = this.selectors.length;
|
||||||
var sel = this.selectorMap[elem];
|
var sel = this.selectorMap[elem];
|
||||||
// console.log("sel=" + sel);
|
|
||||||
// console.log(this.selectors);
|
|
||||||
for (var i = 0; i < N; ++i) {
|
for (var i = 0; i < N; ++i) {
|
||||||
if (this.selectors[i] && this.selectors[i] == sel) {
|
if (this.selectors[i] && this.selectors[i] == sel) {
|
||||||
// console.log("found it");
|
|
||||||
if (sel.locked == false) {
|
if (sel.locked == false) {
|
||||||
console.log("WARNING! selector was released but was already unlocked");
|
console.log("WARNING! selector was released but was already unlocked");
|
||||||
}
|
}
|
||||||
@@ -423,8 +413,6 @@ function SvgCanvas(c)
|
|||||||
}
|
}
|
||||||
undoStack[undoStack.length] = cmd;
|
undoStack[undoStack.length] = cmd;
|
||||||
undoStackPointer = undoStack.length;
|
undoStackPointer = undoStack.length;
|
||||||
// console.log("after add command, stackPointer=" + undoStackPointer);
|
|
||||||
// console.log(undoStack);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// private functions
|
// private functions
|
||||||
@@ -517,6 +505,7 @@ function SvgCanvas(c)
|
|||||||
var recalculateSelectedDimensions = function() {
|
var recalculateSelectedDimensions = function() {
|
||||||
for (var i = 0; i < selectedElements.length; ++i) {
|
for (var i = 0; i < selectedElements.length; ++i) {
|
||||||
var selected = selectedElements[i];
|
var selected = selectedElements[i];
|
||||||
|
if (selected == null) break;
|
||||||
var selectedBBox = selectedBBoxes[i];
|
var selectedBBox = selectedBBoxes[i];
|
||||||
var box = selected.getBBox();
|
var box = selected.getBBox();
|
||||||
|
|
||||||
@@ -626,6 +615,7 @@ function SvgCanvas(c)
|
|||||||
var recalculateSelectedOutline = function() {
|
var recalculateSelectedOutline = function() {
|
||||||
for (var i = 0; i < selectedElements.length; ++i) {
|
for (var i = 0; i < selectedElements.length; ++i) {
|
||||||
var selected = selectedElements[i];
|
var selected = selectedElements[i];
|
||||||
|
if (selected == null) break;
|
||||||
var selectedBBox = selectedBBoxes[i]
|
var selectedBBox = selectedBBoxes[i]
|
||||||
var theSelector = selectorManager.requestSelector(selected);
|
var theSelector = selectorManager.requestSelector(selected);
|
||||||
if (selected != null && theSelector != null) {
|
if (selected != null && theSelector != null) {
|
||||||
@@ -640,7 +630,6 @@ function SvgCanvas(c)
|
|||||||
|
|
||||||
this.clearSelection = function() {
|
this.clearSelection = function() {
|
||||||
if (selectedElements[0] == null) { return; }
|
if (selectedElements[0] == null) { return; }
|
||||||
// console.log("clearSelection() with length=" + selectedElements.length);
|
|
||||||
|
|
||||||
for (var i = 0; i < selectedElements.length; ++i) {
|
for (var i = 0; i < selectedElements.length; ++i) {
|
||||||
var elem = selectedElements[i];
|
var elem = selectedElements[i];
|
||||||
@@ -653,7 +642,6 @@ function SvgCanvas(c)
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.addToSelection = function(elemsToAdd) {
|
this.addToSelection = function(elemsToAdd) {
|
||||||
// console.log("addToSelection() with: " + elemsToAdd);
|
|
||||||
if (elemsToAdd.length == 0) { return; }
|
if (elemsToAdd.length == 0) { return; }
|
||||||
|
|
||||||
// find the first null in our selectedElements array
|
// find the first null in our selectedElements array
|
||||||
@@ -664,8 +652,6 @@ function SvgCanvas(c)
|
|||||||
}
|
}
|
||||||
++j;
|
++j;
|
||||||
}
|
}
|
||||||
// console.log(" j=" + j + " and # to add is " + elemsToAdd.length);
|
|
||||||
// console.log(selectedElements);
|
|
||||||
|
|
||||||
// now add each element consecutively
|
// now add each element consecutively
|
||||||
for (var i = 0; i < elemsToAdd.length; ++i) {
|
for (var i = 0; i < elemsToAdd.length; ++i) {
|
||||||
@@ -678,12 +664,8 @@ function SvgCanvas(c)
|
|||||||
selectedBBoxes[j++] = elem.getBBox();
|
selectedBBoxes[j++] = elem.getBBox();
|
||||||
selectorManager.requestSelector(elem);
|
selectorManager.requestSelector(elem);
|
||||||
call("selected", selectedElements);
|
call("selected", selectedElements);
|
||||||
// console.log(selectorManager.selectors);
|
|
||||||
// console.log(selectorManager.selectorMap);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// console.log(selectedElements);
|
|
||||||
// TODO: if there is only one element, then set the current fill/stroke properties to it
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -702,8 +684,6 @@ function SvgCanvas(c)
|
|||||||
newSelectedItems[j++] = elem;
|
newSelectedItems[j++] = elem;
|
||||||
}
|
}
|
||||||
else { // remove the item and its selector
|
else { // remove the item and its selector
|
||||||
// console.log(selectorManager.selectors);
|
|
||||||
// console.log(selectorManager.selectorMap);
|
|
||||||
selectorManager.releaseSelector(elem);
|
selectorManager.releaseSelector(elem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -721,7 +701,6 @@ function SvgCanvas(c)
|
|||||||
{
|
{
|
||||||
var x = evt.pageX - container.parentNode.offsetLeft + container.parentNode.scrollLeft;
|
var x = evt.pageX - container.parentNode.offsetLeft + container.parentNode.scrollLeft;
|
||||||
var y = evt.pageY - container.parentNode.offsetTop + container.parentNode.scrollTop;
|
var y = evt.pageY - container.parentNode.offsetTop + container.parentNode.scrollTop;
|
||||||
// console.log("mouseDown, current_mode=" + current_mode);
|
|
||||||
switch (current_mode) {
|
switch (current_mode) {
|
||||||
case "select":
|
case "select":
|
||||||
started = true;
|
started = true;
|
||||||
@@ -1040,7 +1019,6 @@ function SvgCanvas(c)
|
|||||||
var mouseUp = function(evt)
|
var mouseUp = function(evt)
|
||||||
{
|
{
|
||||||
if (!started) return;
|
if (!started) return;
|
||||||
// console.log("mouseUp, current_mode=" + current_mode);
|
|
||||||
|
|
||||||
started = false;
|
started = false;
|
||||||
var element = svgdoc.getElementById(getId());
|
var element = svgdoc.getElementById(getId());
|
||||||
@@ -1345,20 +1323,24 @@ function SvgCanvas(c)
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.changeSelectedAttribute = function(attr, val) {
|
this.changeSelectedAttribute = function(attr, val) {
|
||||||
var selected = selectedElements[0];
|
for (var i = 0; i < selectedElements.length; ++i) {
|
||||||
if (selected != null) {
|
var selected = selectedElements[i];
|
||||||
|
if (selected == null) break;
|
||||||
|
|
||||||
var oldval = (attr == "#text" ? selected.textContent : selected.getAttribute(attr));
|
var oldval = (attr == "#text" ? selected.textContent : selected.getAttribute(attr));
|
||||||
if (oldval != val) {
|
if (oldval != val) {
|
||||||
if (attr == "#text") selected.textContent = val;
|
if (attr == "#text") selected.textContent = val;
|
||||||
else selected.setAttribute(attr, val);
|
else selected.setAttribute(attr, val);
|
||||||
selectedBBoxes[0] = selected.getBBox();
|
selectedBBoxes[i] = selected.getBBox();
|
||||||
recalculateSelectedOutline();
|
recalculateSelectedOutline();
|
||||||
var changes = {};
|
var changes = {};
|
||||||
changes[attr] = oldval;
|
changes[attr] = oldval;
|
||||||
|
// TODO: create a batch command here
|
||||||
addCommandToHistory(new ChangeElementCommand(selected, changes, attr));
|
addCommandToHistory(new ChangeElementCommand(selected, changes, attr));
|
||||||
call("changed", [selected]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// TODO: add batch command to history here
|
||||||
|
call("changed", selectedElements);
|
||||||
};
|
};
|
||||||
|
|
||||||
$(container).mouseup(mouseUp);
|
$(container).mouseup(mouseUp);
|
||||||
|
|||||||
Reference in New Issue
Block a user