summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/icons/iconmanager.cpp24
-rw-r--r--src/icons/iconmanager.h5
-rw-r--r--src/icons/webicon.cpp11
3 files changed, 19 insertions, 21 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
diff --git a/src/icons/iconmanager.h b/src/icons/iconmanager.h
index 4903d7c4..a120be16 100644
--- a/src/icons/iconmanager.h
+++ b/src/icons/iconmanager.h
@@ -67,10 +67,9 @@ public:
private:
IconManager(QObject *parent = 0);
- QString favIconForUrl(const KUrl &url);
-
QString _faviconsDir;
-
+ QString _tempIconsDir;
+
static QWeakPointer<IconManager> s_iconManager;
};
diff --git a/src/icons/webicon.cpp b/src/icons/webicon.cpp
index 6e9ec0d5..3bcf18f3 100644
--- a/src/icons/webicon.cpp
+++ b/src/icons/webicon.cpp
@@ -100,11 +100,18 @@ void WebIcon::saveIcon(bool b)
faviconUrl = KUrl(relUrlString);
if (!faviconUrl.isValid())
- {
-
+ {
faviconUrl = KUrl(rootUrlString + QL1C('/') + relUrlString);
}
+
+ if (faviconUrl.host().isEmpty())
+ {
+ faviconUrl = KUrl(rootUrlString + relUrlString);
+ }
}
+
+ kDebug() << "FAVICON RETRIEVING URL: " << faviconUrl;
+
QString faviconsDir = KStandardDirs::locateLocal("cache" , "favicons/" , true);
// dest url