summaryrefslogtreecommitdiffstats
path: root/tdecore/svgicons/ksvgiconengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tdecore/svgicons/ksvgiconengine.cpp')
-rw-r--r--tdecore/svgicons/ksvgiconengine.cpp33
1 files changed, 29 insertions, 4 deletions
diff --git a/tdecore/svgicons/ksvgiconengine.cpp b/tdecore/svgicons/ksvgiconengine.cpp
index 97e60fcb7..2866739ed 100644
--- a/tdecore/svgicons/ksvgiconengine.cpp
+++ b/tdecore/svgicons/ksvgiconengine.cpp
@@ -18,7 +18,6 @@
Boston, MA 02110-1301, USA.
*/
-#include <tqdom.h>
#include <tqfile.h>
#include <tqcolor.h>
#include <tqimage.h>
@@ -540,7 +539,7 @@ KSVGIconEngine::~KSVGIconEngine()
delete d;
}
-bool KSVGIconEngine::load(int width, int height, const TQString &path)
+bool KSVGIconEngine::load(const TQString &path, int width, int height)
{
if(path.isNull()) return false;
@@ -585,11 +584,24 @@ bool KSVGIconEngine::load(int width, int height, const TQString &path)
svgDocument.setContent(buffer);
}
- if(svgDocument.isNull())
+ return parse(svgDocument, width, height);
+}
+
+bool KSVGIconEngine::load(int width, int height, const TQString &path)
+{
+ return load(path, width, height);
+}
+
+
+bool KSVGIconEngine::parse(const TQDomDocument& data, int width, int height)
+{
+ if(data.isNull())
+ {
return false;
+ }
// Check for root element
- TQDomNode rootNode = svgDocument.namedItem("svg");
+ TQDomNode rootNode = data.namedItem("svg");
if(rootNode.isNull() || !rootNode.isElement())
return false;
@@ -691,6 +703,19 @@ bool KSVGIconEngine::load(int width, int height, const TQString &path)
return true;
}
+bool KSVGIconEngine::parse(const TQString& data, int width, int height)
+{
+ if(data.isNull())
+ {
+ return false;
+ }
+
+ TQDomDocument svgDocument("svg");
+ svgDocument.setContent(data);
+
+ return parse(svgDocument, width, height);
+}
+
KSVGIconPainter *KSVGIconEngine::painter()
{
return d->painter;