summaryrefslogtreecommitdiffstats
path: root/mandriva/2010.2/other/ksplash-engine-moodin/moodin-external_svgrender.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mandriva/2010.2/other/ksplash-engine-moodin/moodin-external_svgrender.patch')
-rw-r--r--mandriva/2010.2/other/ksplash-engine-moodin/moodin-external_svgrender.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/mandriva/2010.2/other/ksplash-engine-moodin/moodin-external_svgrender.patch b/mandriva/2010.2/other/ksplash-engine-moodin/moodin-external_svgrender.patch
new file mode 100644
index 000000000..6c0a5e900
--- /dev/null
+++ b/mandriva/2010.2/other/ksplash-engine-moodin/moodin-external_svgrender.patch
@@ -0,0 +1,51 @@
+diff -p -up moodin/src/cache.cpp.external_svgrender moodin/src/cache.cpp
+--- moodin/src/cache.cpp.external_svgrender 2007-12-20 15:15:29.000000000 -0200
++++ moodin/src/cache.cpp 2007-12-20 16:12:35.000000000 -0200
+@@ -13,9 +13,9 @@
+ #include <kstandarddirs.h>
+ #include <kconfig.h>
+
+-#ifdef HAVE_LIBART
+-#include <ksvgiconengine.h>
+-#endif
++// for external svg rendering
++#include <ktempfile.h>
++#include <kprocess.h>
+
+ #include <qfileinfo.h>
+ #include <qdatetime.h>
+@@ -49,22 +49,18 @@ QImage* Cache::cacheFile(const QString&
+ {
+ QImage *i;
+ if (file.endsWith(".svg") || file.endsWith(".svgz")) {
+-#ifdef HAVE_LIBART
+- KSVGIconEngine* svgEngine = new KSVGIconEngine();
+- QSize size = mScaler->targetResolution();
+- if (svgEngine->load(size.width(), size.height(), file )) {
+- QImage *image = svgEngine->image();
+- i = new QImage(*image);
+- delete image;
+- i->save(cachedFile.name(), QImage::imageFormat(file));
+- } else {
+- kdWarning() << "failed to load SVG file " << file << endl;
+- }
+- delete svgEngine;
+-#else
+- kdWarning() << k_funcinfo
+- << "tried to load SVG file but libart not installed" << endl;
+-#endif
++ QSize size = mScaler->targetResolution();
++ KProcess proc;
++ proc << "moodin_svgrender";
++ KTempFile tmp("/tmp/moodin_cache", ".png");
++ tmp.setAutoDelete(false);
++ tmp.close();
++ proc << QString::number(size.width()) << QString::number(size.height()) << file << tmp.name();
++ proc.start(KProcess::Block);
++
++ i = new QImage(tmp.name());
++ if (i->save(cachedFile.name(), "PNG"))
++ QFile(tmp.name()).remove();
+ }
+ else
+ {