diff --git a/src/core/Base.js b/src/core/Base.js index f7547606..bb1be6a5 100644 --- a/src/core/Base.js +++ b/src/core/Base.js @@ -469,11 +469,7 @@ this.Base = Base.inject(/** @lends Base# */{ */ formatFloat: function(num, precision) { precision = precision ? Math.pow(10, precision) : 100000; - return (Math.round(num * precision) / precision); - }, - - toFloat: function(str) { - return parseFloat(str, 10); + return Math.round(num * precision) / precision; } } }); diff --git a/src/svg/SvgImport.js b/src/svg/SvgImport.js index 6ea52ac1..33e50364 100644 --- a/src/svg/SvgImport.js +++ b/src/svg/SvgImport.js @@ -30,6 +30,7 @@ new function() { // Base.pick(base.value, base) return base ? index !== undefined + // Item list? Look up by index: ? index < base.numberOfItems ? Base.pick((base = base.getItem(index)).value, base) : null @@ -56,7 +57,7 @@ new function() { return value === 'none' ? null : type === 'number' - ? Base.toFloat(value) + ? parseFloat(value) : type === 'array' ? value ? value.split(/[\s,]+/g).map(parseFloat) : [] : type === 'color' && getDefinition(value) @@ -358,6 +359,9 @@ new function() { function applyAttributes(item, node) { // SVG attributes can be set both as styles and direct node attributes, // so we need to parse both + // TODO: Instead of looping through the styles, we need to loop through + // a list of styles relevant to SVG, and calculate the computed style, + // to support style classes too. for (var i = 0, l = node.style.length; i < l; i++) { var name = node.style[i]; item = applyAttribute(item, node, name, node.style[Base.camelize(name)]); @@ -411,7 +415,7 @@ new function() { case 'stop-opacity': // http://www.w3.org/TR/SVG/masking.html#OpacityProperty case 'opacity': - var opacity = Base.toFloat(value); + var opacity = parseFloat(value); if (name === 'stop-opacity') { item.color.setAlpha(opacity); } else { @@ -425,7 +429,7 @@ new function() { var color = item[name == 'fill-opacity' ? 'getFillColor' : 'getStrokeColor'](); if (color) - color.setAlpha(Base.toFloat(value)); + color.setAlpha(parseFloat(value)); break; case 'visibility': item.setVisible(value === 'visible'); @@ -485,7 +489,7 @@ new function() { item.setFont(value.split(',')[0].replace(/^\s+|\s+$/g, '')); break; case 'font-size': - item.setFontSize(Base.toFloat(value)); + item.setFontSize(parseFloat(value)); break; case 'text-anchor': item.setJustification({ diff --git a/src/ui/Component.js b/src/ui/Component.js index e80f4f23..845df744 100644 --- a/src/ui/Component.js +++ b/src/ui/Component.js @@ -129,12 +129,12 @@ var Component = this.Component = Base.extend(Callback, /** @lends Component# */{ DomElement.set(this._inputItem, key, value); // Read back and convert from input again, to make sure we're in sync value = DomElement.get(this._inputItem, key); - this._value = this._info.number ? Base.toFloat(value) : value; + this._value = this._info.number ? parseFloat(value, 10) : value; }, getRange: function() { - return [Base.toFloat(DomElement.get(this._inputItem, 'min')), - Base.toFloat(DomElement.get(this._inputItem, 'max'))]; + return [parseFloat(DomElement.get(this._inputItem, 'min')), + parseFloat(DomElement.get(this._inputItem, 'max'))]; }, setRange: function(min, max) { @@ -159,7 +159,7 @@ var Component = this.Component = Base.extend(Callback, /** @lends Component# */{ }, getStep: function() { - return Base.toFloat(DomElement.get(this._inputItem, 'step')); + return parseFloat(DomElement.get(this._inputItem, 'step')); }, setStep: function(step) {