[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdebase/kcontrol/icons
From:       Stephan Binner <binner () kde ! org>
Date:       2004-07-30 19:32:59
Message-ID: 20040730193259.6BD5B99E2 () office ! kde ! org
[Download RAW message or body]

CVS commit by binner: 

Bug 83171: SVG ICONSETS: KControl does not show preview of SVG iconsets 


  M +43 -23    iconthemes.cpp   1.43


--- kdebase/kcontrol/icons/iconthemes.cpp  #1.42:1.43
@@ -19,4 +19,6 @@
  */
 
+#include <config.h>
+
 #include <stdlib.h>
 #include <unistd.h>
@@ -46,4 +48,8 @@
 #include <dcopclient.h>
 
+#ifdef HAVE_LIBART
+#include <ksvgiconengine.h>
+#endif
+
 #include "iconthemes.h"
 
@@ -337,4 +343,7 @@ void IconThemesConfig::updateRemoveButto
 void IconThemesConfig::themeSelected(QListViewItem *item)
 {
+#ifdef HAVE_LIBART
+  KSVGIconEngine engine;  
+#endif 
   QString dirName(m_themeNames[item->text(0)]);
   KIconTheme icontheme(dirName);
@@ -342,28 +351,39 @@ void IconThemesConfig::themeSelected(QLi
 
   updateRemoveButton();
+  const int size = icontheme.defaultSize(KIcon::Desktop);
 
-  KIcon icon=icontheme.iconPath("exec.png",
-        icontheme.defaultSize(KIcon::Desktop),KIcon::MatchBest);
-  if (!icon.isValid())
-          icon=icontheme.iconPath("exec.svg",
-          icontheme.defaultSize(KIcon::Desktop),KIcon::MatchBest);
-  kdDebug() << icon.path<< "\n";
+  KIcon icon=icontheme.iconPath("exec.png", size, KIcon::MatchBest);
+  if (!icon.isValid()) {
+#ifdef HAVE_LIBART
+          icon=icontheme.iconPath("exec.svg", size, KIcon::MatchBest);
+          if(engine.load(size, size, icon.path))
+                m_previewExec->setPixmap(*engine.image());
+#endif
+  }
+  else
   m_previewExec->setPixmap(QPixmap(icon.path));
 
-  icon=icontheme.iconPath("folder.png",
-        icontheme.defaultSize(KIcon::Desktop),KIcon::MatchBest);
-  if (!icon.isValid())
-          icon=icontheme.iconPath("folder.svg",
-          icontheme.defaultSize(KIcon::Desktop),KIcon::MatchBest); 
-  kdDebug() << icon.path<< "\n";
+  icon=icontheme.iconPath("folder.png",size,KIcon::MatchBest);
+  if (!icon.isValid()) {
+#ifdef HAVE_LIBART
+          icon=icontheme.iconPath("folder.svg", size, KIcon::MatchBest);
+          if(engine.load(size, size, icon.path))
+                m_previewFolder->setPixmap(*engine.image());
+#endif
+  }
+  else
   m_previewFolder->setPixmap(QPixmap(icon.path));
 
-  icon=icontheme.iconPath("txt.png",
-        icontheme.defaultSize(KIcon::Desktop),KIcon::MatchBest);
-  if (!icon.isValid())
-          icon=icontheme.iconPath("txt.svg",
-          icontheme.defaultSize(KIcon::Desktop),KIcon::MatchBest);
-  kdDebug() << icon.path<< "\n";
+  icon=icontheme.iconPath("txt.png",size,KIcon::MatchBest);
+  if (!icon.isValid()) {
+#ifdef HAVE_LIBART
+          icon=icontheme.iconPath("txt.svg", size, KIcon::MatchBest);
+          if(engine.load(size, size, icon.path))
+                m_previewDocument->setPixmap(*engine.image());
+#endif
+  }
+  else  
   m_previewDocument->setPixmap(QPixmap(icon.path));
+  
   emit changed(true);
   m_bChanged = true;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic