diff options
Diffstat (limited to 'src/icons/iconmanager.cpp')
-rw-r--r-- | src/icons/iconmanager.cpp | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/src/icons/iconmanager.cpp b/src/icons/iconmanager.cpp index 1fa4f662..2948fde3 100644 --- a/src/icons/iconmanager.cpp +++ b/src/icons/iconmanager.cpp @@ -65,6 +65,7 @@ IconManager::IconManager(QObject *parent) : QObject(parent) { _faviconsDir = KStandardDirs::locateLocal("cache" , "favicons/" , true); + _tempIconsDir = KStandardDirs::locateLocal("tmp", "favicons/", true); // Use webkit icon database path QWebSettings::setIconDatabasePath(_faviconsDir); @@ -190,10 +191,14 @@ QString IconManager::iconPathForUrl(const KUrl &url) return icon; } - QString i = favIconForUrl(url); - if (!i.isEmpty()) + QIcon ic = QWebSettings::iconForUrl(url); + if (!ic.isNull()) { - return QL1S("file://") + _faviconsDir + i; + QPixmap px = ic.pixmap(16, 16); + QString tempIconPath = _tempIconsDir + url.host() + QL1S(".png"); + bool b = px.save(tempIconPath); + if (b) + return QL1S("file://") + tempIconPath; } // Not found icon. Return default one. @@ -202,19 +207,6 @@ QString IconManager::iconPathForUrl(const KUrl &url) } -QString IconManager::favIconForUrl(const KUrl &url) -{ - if (url.isLocalFile() - || !url.protocol().startsWith(QL1S("http"))) - return QString(); - - if (QFile::exists(_faviconsDir + url.host() + QL1S(".png"))) - return url.host() + QL1S(".png"); - else - return QString(); -} - - void IconManager::provideEngineFavicon(const KUrl &url) { // will autodelete itself when done |