[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