summaryrefslogtreecommitdiff
path: root/src/icons/iconmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/icons/iconmanager.cpp')
-rw-r--r--src/icons/iconmanager.cpp24
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