Updated jGraduate and made radialGradients work as expected, fixing issue 298
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1452 eee81c28-f429-11dd-99c0-75d572ba1ddd
This commit is contained in:
@@ -1509,11 +1509,11 @@ function BatchCommand(text) {
|
||||
}
|
||||
});
|
||||
|
||||
var lgrads = svgcontent.getElementsByTagNameNS(svgns, "linearGradient"),
|
||||
var grads = $(svgcontent).find("linearGradient, radialGradient");
|
||||
grad_ids = [],
|
||||
i = lgrads.length;
|
||||
i = grads.length;
|
||||
while (i--) {
|
||||
var grad = lgrads[i];
|
||||
var grad = grads[i];
|
||||
var id = grad.id;
|
||||
if($.inArray(id, grad_uses) == -1) {
|
||||
// Not found, so remove
|
||||
@@ -6651,16 +6651,29 @@ function BatchCommand(text) {
|
||||
|
||||
var findDuplicateGradient = function(grad) {
|
||||
var defs = findDefs();
|
||||
var existing_grads = defs.getElementsByTagNameNS(svgns, "linearGradient");
|
||||
var existing_grads = $(defs).find("linearGradient, radialGradient");
|
||||
var i = existing_grads.length;
|
||||
var rad_attrs = ['r','cx','cy','fx','fy'];
|
||||
while (i--) {
|
||||
var og = existing_grads.item(i);
|
||||
if (grad.getAttribute('x1') != og.getAttribute('x1') ||
|
||||
grad.getAttribute('y1') != og.getAttribute('y1') ||
|
||||
grad.getAttribute('x2') != og.getAttribute('x2') ||
|
||||
grad.getAttribute('y2') != og.getAttribute('y2'))
|
||||
{
|
||||
continue;
|
||||
var og = existing_grads[i];
|
||||
if(grad.tagName == "linearGradient") {
|
||||
if (grad.getAttribute('x1') != og.getAttribute('x1') ||
|
||||
grad.getAttribute('y1') != og.getAttribute('y1') ||
|
||||
grad.getAttribute('x2') != og.getAttribute('x2') ||
|
||||
grad.getAttribute('y2') != og.getAttribute('y2'))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
var grad_attrs = $(grad).attr(rad_attrs);
|
||||
var og_attrs = $(og).attr(rad_attrs);
|
||||
|
||||
var diff = false;
|
||||
$.each(rad_attrs, function(i, attr) {
|
||||
if(grad_attrs[attr] != og_attrs[attr]) diff = true;
|
||||
});
|
||||
|
||||
if(diff) continue;
|
||||
}
|
||||
|
||||
// else could be a duplicate, iterate through stops
|
||||
@@ -6673,8 +6686,8 @@ function BatchCommand(text) {
|
||||
|
||||
var j = stops.length;
|
||||
while(j--) {
|
||||
var stop = stops.item(j);
|
||||
var ostop = ostops.item(j);
|
||||
var stop = stops[j];
|
||||
var ostop = ostops[j];
|
||||
|
||||
if (stop.getAttribute('offset') != ostop.getAttribute('offset') ||
|
||||
stop.getAttribute('stop-opacity') != ostop.getAttribute('stop-opacity') ||
|
||||
@@ -6708,6 +6721,10 @@ function BatchCommand(text) {
|
||||
canvas.strokeGrad = p.linearGradient;
|
||||
if(addGrad) addGradient();
|
||||
}
|
||||
else if(p.type == "radialGradient") {
|
||||
canvas.strokeGrad = p.radialGradient;
|
||||
if(addGrad) addGradient();
|
||||
}
|
||||
else {
|
||||
// console.log("none!");
|
||||
}
|
||||
@@ -6727,6 +6744,10 @@ function BatchCommand(text) {
|
||||
canvas.fillGrad = p.linearGradient;
|
||||
if(addGrad) addGradient();
|
||||
}
|
||||
else if(p.type == "radialGradient") {
|
||||
canvas.fillGrad = p.radialGradient;
|
||||
if(addGrad) addGradient();
|
||||
}
|
||||
else {
|
||||
// console.log("none!");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user