Changeset View
Changeset View
Standalone View
Standalone View
runners/bookmarks/faviconfromblob.cpp
Show First 20 Lines • Show All 41 Lines • ▼ Show 20 Line(s) | 40 | public: | |||
---|---|---|---|---|---|
42 | QString query(QSqlDatabase *database) const override { | 42 | QString query(QSqlDatabase *database) const override { | ||
43 | Q_UNUSED(database); | 43 | Q_UNUSED(database); | ||
44 | return m_query; | 44 | return m_query; | ||
45 | } | 45 | } | ||
46 | private: | 46 | private: | ||
47 | const QString m_query; | 47 | const QString m_query; | ||
48 | }; | 48 | }; | ||
49 | 49 | | |||
50 | class ChromeQuery : public BuildQuery { | | |||
51 | public: | | |||
52 | ChromeQuery() {} | | |||
53 | QString query(QSqlDatabase *database) const override { | | |||
54 | //qDebug() << "tables: " << database->tables(); | | |||
55 | if(database->tables().contains(QStringLiteral("favicon_bitmaps"))) { | | |||
56 | return QStringLiteral("SELECT * FROM favicons " \ | | |||
57 | "inner join icon_mapping on icon_mapping.icon_id = favicons.id " \ | | |||
58 | "inner join favicon_bitmaps on icon_mapping.icon_id = favicon_bitmaps.icon_id " \ | | |||
59 | "WHERE page_url = :url ORDER BY height desc LIMIT 1;"); | | |||
60 | } | | |||
61 | | ||||
62 | return QStringLiteral("SELECT * FROM favicons inner join icon_mapping " \ | | |||
63 | "on icon_mapping.icon_id = favicons.id " \ | | |||
64 | "WHERE page_url = :url LIMIT 1;"); | | |||
65 | } | | |||
66 | }; | | |||
67 | | ||||
68 | FaviconFromBlob *FaviconFromBlob::chrome(const QString &profileDirectory, QObject *parent) | 50 | FaviconFromBlob *FaviconFromBlob::chrome(const QString &profileDirectory, QObject *parent) | ||
69 | { | 51 | { | ||
70 | QString profileName = QFileInfo(profileDirectory).fileName(); | 52 | QString profileName = QFileInfo(profileDirectory).fileName(); | ||
71 | QString faviconCache = QStringLiteral("%1/KRunner-Chrome-Favicons-%2.sqlite") | 53 | QString faviconCache = QStringLiteral("%1/KRunner-Chrome-Favicons-%2.sqlite") | ||
72 | .arg(QStandardPaths::writableLocation(QStandardPaths::CacheLocation), profileName); | 54 | .arg(QStandardPaths::writableLocation(QStandardPaths::CacheLocation), profileName); | ||
73 | FetchSqlite *fetchSqlite = new FetchSqlite(profileDirectory + QStringLiteral("/Favicons"), faviconCache, parent); | 55 | FetchSqlite *fetchSqlite = new FetchSqlite(profileDirectory + QStringLiteral("/Favicons"), faviconCache, parent); | ||
74 | return new FaviconFromBlob(profileName, new ChromeQuery(), QStringLiteral("image_data"), fetchSqlite, parent); | 56 | | ||
57 | QString faviconQuery; | ||||
58 | if(fetchSqlite->tables().contains(QStringLiteral("favicon_bitmaps"))) { | ||||
59 | faviconQuery = QLatin1String("SELECT * FROM favicons " \ | ||||
60 | "inner join icon_mapping on icon_mapping.icon_id = favicons.id " \ | ||||
61 | "inner join favicon_bitmaps on icon_mapping.icon_id = favicon_bitmaps.icon_id " \ | ||||
62 | "WHERE page_url = :url ORDER BY height desc LIMIT 1;"); | ||||
63 | } else { | ||||
64 | faviconQuery = QLatin1String("SELECT * FROM favicons " \ | ||||
65 | "inner join icon_mapping on icon_mapping.icon_id = favicons.id " \ | ||||
66 | "WHERE page_url = :url LIMIT 1;"); | ||||
67 | } | ||||
68 | | ||||
69 | return new FaviconFromBlob(profileName, new StaticQuery(faviconQuery), QStringLiteral("image_data"), fetchSqlite, parent); | ||||
75 | } | 70 | } | ||
76 | 71 | | |||
77 | FaviconFromBlob *FaviconFromBlob::firefox(FetchSqlite *fetchSqlite, QObject *parent) | 72 | FaviconFromBlob *FaviconFromBlob::firefox(FetchSqlite *fetchSqlite, QObject *parent) | ||
78 | { | 73 | { | ||
79 | 74 | | |||
80 | QString faviconQuery = QStringLiteral("SELECT moz_icons.data FROM moz_icons" \ | 75 | QString faviconQuery = QStringLiteral("SELECT moz_icons.data FROM moz_icons" \ | ||
81 | " INNER JOIN moz_icons_to_pages ON moz_icons.id = moz_icons_to_pages.icon_id" \ | 76 | " INNER JOIN moz_icons_to_pages ON moz_icons.id = moz_icons_to_pages.icon_id" \ | ||
82 | " INNER JOIN moz_pages_w_icons ON moz_icons_to_pages.page_id = moz_pages_w_icons.id" \ | 77 | " INNER JOIN moz_pages_w_icons ON moz_icons_to_pages.page_id = moz_pages_w_icons.id" \ | ||
▲ Show 20 Lines • Show All 61 Lines • Show Last 20 Lines |