diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2015-12-01 10:50:02 +0100 |
---|---|---|
committer | Peter Varga <pvarga@inf.u-szeged.hu> | 2016-02-03 16:21:12 +0000 |
commit | 41d69eb0fa2375f0da6ba9b35136f5598be4b3a4 (patch) | |
tree | 3c754447cf5d1c854eb1bc7fdbe3d6777fcdac0c /src/core/type_conversion.cpp | |
parent | 4713387c052d54e0f5ea02efaeaa25931d1cd7ee (diff) |
Add FaviconManager to core
The new icon manager uses the WebContents::DownloadImage() API for
downloading icons. It proposes the best quality among the available
favicons via the iconChanged signal.
Change-Id: I66a014365b6f6560ff34d40ee870aee84e4e70e4
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Diffstat (limited to 'src/core/type_conversion.cpp')
-rw-r--r-- | src/core/type_conversion.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/core/type_conversion.cpp b/src/core/type_conversion.cpp index ac458df31..ccfc2fdc6 100644 --- a/src/core/type_conversion.cpp +++ b/src/core/type_conversion.cpp @@ -128,6 +128,23 @@ QImage toQImage(const gfx::ImageSkiaRep &imageSkiaRep) return image; } +QIcon toQIcon(const std::vector<SkBitmap> &bitmaps) +{ + if (!bitmaps.size()) + return QIcon(); + + QIcon icon; + + for (unsigned i = 0; i < bitmaps.size(); ++i) { + SkBitmap bitmap = bitmaps[i]; + QImage image = toQImage(bitmap); + + icon.addPixmap(QPixmap::fromImage(image).copy()); + } + + return icon; +} + int flagsFromModifiers(Qt::KeyboardModifiers modifiers) { int modifierFlags = ui::EF_NONE; @@ -152,5 +169,33 @@ int flagsFromModifiers(Qt::KeyboardModifiers modifiers) return modifierFlags; } +FaviconInfo toFaviconInfo(const content::FaviconURL &favicon_url) +{ + FaviconInfo info; + + info.url = toQt(favicon_url.icon_url); + + switch (favicon_url.icon_type) { + case content::FaviconURL::FAVICON: + info.type = FaviconInfo::Favicon; + break; + case content::FaviconURL::TOUCH_ICON: + info.type = FaviconInfo::TouchIcon; + break; + case content::FaviconURL::TOUCH_PRECOMPOSED_ICON: + info.type = FaviconInfo::TouchPrecomposedIcon; + break; + default: + info.type = FaviconInfo::InvalidIcon; + break; + } + + // TODO: Add support for rel sizes attribute (favicon_url.icon_sizes): + // http://www.w3schools.com/tags/att_link_sizes.asp + info.size = QSize(0, 0); + + return info; +} + } // namespace QtWebEngineCore |