summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMavridis Philippe <mavridisf@gmail.com>2022-03-10 13:29:18 +0200
committerMavridis Philippe <mavridisf@gmail.com>2022-03-10 13:29:18 +0200
commitd52839aabbba103f273dbae5c17a59d646598d1d (patch)
tree6543ce0302db024abc2d7f8ef5e7e41909938176
parent2fcbb8f256f515bec9b5db93743f281b00aba827 (diff)
downloadtdelibs-feat/tdehtml+svg.tar.gz
tdelibs-feat/tdehtml+svg.zip
svgicons: API changes proposalfeat/tdehtml+svg
Signed-off-by: Mavridis Philippe <mavridisf@gmail.com>
-rw-r--r--tdecore/svgicons/ksvgiconengine.cpp33
-rw-r--r--tdecore/svgicons/ksvgiconengine.h72
2 files changed, 95 insertions, 10 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;
diff --git a/tdecore/svgicons/ksvgiconengine.h b/tdecore/svgicons/ksvgiconengine.h
index 9ed825194..51f76acc4 100644
--- a/tdecore/svgicons/ksvgiconengine.h
+++ b/tdecore/svgicons/ksvgiconengine.h
@@ -21,8 +21,13 @@
#ifndef KSVGIconEngine_H
#define KSVGIconEngine_H
+#include <tqdom.h>
#include <tdelibs_export.h>
+/**
+ * \file ksvgiconengine.h
+ */
+
class KSVGIconPainter;
class TDECORE_EXPORT KSVGIconEngine
@@ -30,14 +35,69 @@ class TDECORE_EXPORT KSVGIconEngine
public:
KSVGIconEngine();
~KSVGIconEngine();
-
- bool load(int width, int height, const TQString &path);
- KSVGIconPainter *painter();
- TQImage *image();
+ /**
+ * @short Reads SVG(Z) document @p path, parses and renders its contents.
+ *
+ * @param path is the path of the SVG document.
+ * @param width is the width of the render result. Omit it or pass 0 to use document's default.
+ * @param height is the height of the render result. Omit it or pass 0 to use document's default.
+ *
+ * @return True if rendering is successful, otherwise false.
+ */
+ bool load(const TQString &path, int width = 0, int height = 0);
+
+ /**
+ * @deprecated
+ * @short Reads SVG(Z) document @p path, parses and renders its contents.
+ *
+ * This function uses the old parameter order which does not allow width and height to be omitted
+ * and is kept for compatibility. Prefer the variant below instead.
+ *
+ * @see load(const TQString&, int, int);
+ */
+ bool load(int width, int height, const TQString &path) KDE_DEPRECATED;
+
+ /**
+ * @short Renders the SVG data stored as DOM in @p data.
+ *
+ * @param data is the TQDocDocument representation of the SVG document to render.
+ * @see load(const TQString&, int, int);
+ */
+ bool parse(const TQDomDocument &data, int width = 0, int height = 0);
+
+ /**
+ * @short Renders the SVG data stored as string in @p data.
+ *
+ * This function is a wrapper provided for convenience.
+ *
+ * @param data is a TQString containing the SVG document to render.
+ * @see parse(const TQDomDocument&, int, int);
+ */
+ bool parse(const TQString &data, int width = 0, int height = 0);
+
+ /**
+ * @short Returns a pointer to the engine's KSVGIconPainter object.
+ *
+ * Typically you won't need access to the painter and you won't be able to do so
+ * from outside tdelibs (since the KSVGIconPainter header is not installed).
+ */
+ KSVGIconPainter *painter();
+
+ /**
+ * @short Returns a pointer to the rendered TQImage.
+ */
+ TQImage *image();
+
+ /**
+ * @short Returns the rendered image's width.
+ */
+ double width();
- double width();
- double height();
+ /**
+ * @short Returns the rendered image's height.
+ */
+ double height();
private:
struct Private;