OSDN Git Service

plasma: drop firefox bookmarks support, fetch icons via KDED module
authorIvailo Monev <xakepa10@gmail.com>
Sun, 3 Oct 2021 01:56:25 +0000 (04:56 +0300)
committerIvailo Monev <xakepa10@gmail.com>
Sun, 3 Oct 2021 01:58:10 +0000 (04:58 +0300)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
20 files changed:
plasma/runners/bookmarks/CMakeLists.txt
plasma/runners/bookmarks/bookmarksrunner.h
plasma/runners/bookmarks/browser.h
plasma/runners/bookmarks/browserfactory.cpp
plasma/runners/bookmarks/browsers/chrome.cpp
plasma/runners/bookmarks/browsers/chrome.h
plasma/runners/bookmarks/browsers/chromefindprofile.cpp
plasma/runners/bookmarks/browsers/chromefindprofile.h
plasma/runners/bookmarks/browsers/findprofile.h
plasma/runners/bookmarks/browsers/firefox.cpp [deleted file]
plasma/runners/bookmarks/browsers/firefox.h [deleted file]
plasma/runners/bookmarks/browsers/kdebrowser.cpp
plasma/runners/bookmarks/browsers/kdebrowser.h
plasma/runners/bookmarks/favicon.cpp
plasma/runners/bookmarks/favicon.h
plasma/runners/bookmarks/faviconfromblob.cpp [deleted file]
plasma/runners/bookmarks/faviconfromblob.h [deleted file]
plasma/runners/bookmarks/fetchsqlite.cpp [deleted file]
plasma/runners/bookmarks/fetchsqlite.h [deleted file]
plasma/runners/bookmarks/tests/CMakeLists.txt

index 84c5451..912d67c 100644 (file)
@@ -3,12 +3,9 @@
 set(krunner_bookmarksrunner_SRCS
     browserfactory.cpp
     bookmarkmatch.cpp
-    faviconfromblob.cpp
     favicon.cpp
-    fetchsqlite.cpp
     bookmarksrunner.cpp
     browsers/kdebrowser.cpp
-    browsers/firefox.cpp
     browsers/chromefindprofile.cpp
     browsers/chrome.cpp
 )
@@ -18,7 +15,7 @@ target_link_libraries(krunner_bookmarksrunner
     ${KDE4_KIO_LIBS}
     ${KDE4_PLASMA_LIBS}
     ${QT_QTSCRIPT_LIBRARY}
-    ${QT_QTSQL_LIBRARY}
+    ${QT_QTDBUS_LIBRARY}
 )
 
 install(TARGETS krunner_bookmarksrunner DESTINATION ${KDE4_PLUGIN_INSTALL_DIR} )
index b176028..314eef2 100644 (file)
@@ -30,7 +30,7 @@ class Browser;
 class BrowserFactory;
 class KJob;
 
-/** This runner searchs for bookmarks in browsers like Konqueror, Firefox and Chromium */
+/** This runner searchs for bookmarks in browsers like Konqueror and Chromium */
 class BookmarksRunner : public Plasma::AbstractRunner
 {
     Q_OBJECT
index 300e646..ec006c4 100644 (file)
@@ -20,6 +20,7 @@
 
 #ifndef BROWSER_H
 #define BROWSER_H
+
 #include <QObject>
 #include <QString>
 #include "bookmarkmatch.h"
index e8f351a..4b4018d 100644 (file)
@@ -21,7 +21,6 @@
 #include "browserfactory.h"
 #include "browser.h"
 #include "browsers/kdebrowser.h"
-#include "browsers/firefox.h"
 #include "browsers/chromefindprofile.h"
 #include "browsers/chrome.h"
 
@@ -32,9 +31,7 @@ Browser *BrowserFactory::find(const QString& browserName, QObject* parent)
     }
     delete m_previousBrowser;
     m_previousBrowserName = browserName;
-    if (browserName.contains("firefox", Qt::CaseInsensitive) || browserName.contains("iceweasel", Qt::CaseInsensitive)) {
-        m_previousBrowser = new Firefox(parent);
-    } else if (browserName.contains("chrome", Qt::CaseInsensitive)) {
+    if (browserName.contains("chrome", Qt::CaseInsensitive)) {
         m_previousBrowser = new Chrome(new FindChromeProfile("google-chrome", QDir::homePath(), parent), parent);
     } else if (browserName.contains("chromium", Qt::CaseInsensitive)) {
         m_previousBrowser = new Chrome(new FindChromeProfile("chromium", QDir::homePath(), parent), parent);
index 6b5a4d2..4b20ad7 100644 (file)
@@ -26,9 +26,9 @@
 #include <KDebug>
 
 #include "chrome.h"
-#include "faviconfromblob.h"
 #include "browsers/findprofile.h"
 #include "bookmarksrunner_defs.h"
+#include "favicon.h"
 
 class ProfileBookmarks {
 public:
index 3e36f32..873592d 100644 (file)
@@ -28,7 +28,6 @@
 #include <QList>
 #include <QtCore/qvariant.h>
 
-class FaviconFromBlob;
 class ProfileBookmarks;
 class Chrome : public QObject, public Browser
 {
index 11e1ae7..640ad32 100644 (file)
@@ -27,8 +27,7 @@
 
 #include "chromefindprofile.h"
 #include "bookmarksrunner_defs.h"
-#include "faviconfromblob.h"
-
+#include "favicon.h"
 
 FindChromeProfile::FindChromeProfile (const QString &applicationName, const QString &homeDirectory, QObject* parent )
     : QObject(parent), m_applicationName(applicationName), m_homeDirectory(homeDirectory)
@@ -59,7 +58,7 @@ QList<Profile> FindChromeProfile::find()
     foreach(QString profile, profilesConfig.keys()) {
         QString profilePath = QString("%1/%2").arg(configDirectory).arg(profile);
         QString profileBookmarksPath = QString("%1/%2").arg(profilePath).arg("Bookmarks");
-        profiles << Profile(profileBookmarksPath, FaviconFromBlob::chrome(profilePath, this));
+        profiles << Profile(profileBookmarksPath, new Favicon(this));
     }
 
     return profiles;
index 680b45e..a0c65d9 100644 (file)
@@ -24,6 +24,7 @@
 
 #include <QObject>
 #include <QDir>
+
 #include "browsers/findprofile.h"
 
 class FindChromeProfile : public QObject, public FindProfile
index 44a0ea8..31070b7 100644 (file)
@@ -19,6 +19,7 @@
  */
 #ifndef FIND_PROFILE_H
 #define FIND_PROFILE_H
+
 #include <QString>
 #include <QList>
 
diff --git a/plasma/runners/bookmarks/browsers/firefox.cpp b/plasma/runners/bookmarks/browsers/firefox.cpp
deleted file mode 100644 (file)
index f8143d0..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- *   Copyright 2007 Glenn Ergeerts <glenn.ergeerts@telenet.be>
- *   Copyright 2012 Glenn Ergeerts <marco.gulino@gmail.com>
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU Library General Public License as
- *   published by the Free Software Foundation; either version 2, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details
- *
- *   You should have received a copy of the GNU Library General Public
- *   License along with this program; if not, write to the
- *   Free Software Foundation, Inc.,
- *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-#include <QFile>
-#include <QDir>
-#include <QUrl>
-#include <QSqlDatabase>
-
-#include <KConfigGroup>
-#include <KSharedConfig>
-#include <KJob>
-#include <KStandardDirs>
-#include <KDebug>
-
-#include "firefox.h"
-#include "bookmarksrunner_defs.h"
-#include "bookmarkmatch.h"
-#include "favicon.h"
-#include "fetchsqlite.h"
-#include "faviconfromblob.h"
-
-Firefox::Firefox(QObject *parent) :
-    QObject(parent),
-    m_favicon(new FallbackFavicon(this)),
-    m_fetchsqlite(0)
-{
-    reloadConfiguration();
-    kDebug(kdbg_code) << "Loading Firefox Bookmarks Browser";
-}
-
-
-Firefox::~Firefox()
-{
-    if (!m_dbCacheFile.isEmpty()) {
-        QFile db_CacheFile(m_dbCacheFile);
-        if (db_CacheFile.exists()) {
-            kDebug(kdbg_code) << "Cache file was removed: " << db_CacheFile.remove();
-        }
-    }
-    kDebug(kdbg_code) << "Deleted Firefox Bookmarks Browser";
-}
-
-void Firefox::prepare()
-{
-    if (m_dbCacheFile.isEmpty()) {
-        m_dbCacheFile = KStandardDirs::locateLocal("cache", "") + "bookmarkrunnerfirefoxdbfile.sqlite";
-    }
-    if (!m_dbFile.isEmpty()) {
-        m_fetchsqlite = new FetchSqlite(m_dbFile, m_dbCacheFile);
-        m_fetchsqlite->prepare();
-
-        delete m_favicon;
-        m_favicon = 0;
-
-        m_favicon = FaviconFromBlob::firefox(m_fetchsqlite, this);
-    }
-}
-
-QList< BookmarkMatch > Firefox::match(const QString& term, bool addEverything)
-{
-    QList< BookmarkMatch > matches;
-    if (!m_fetchsqlite) {
-        return matches;
-    }
-    kDebug(kdbg_code) << "Firefox bookmark: match " << term;
-
-    QString tmpTerm = term;
-    QString query;
-    if (addEverything) {
-        query = QString("SELECT moz_bookmarks.fk, moz_bookmarks.title, moz_places.url," \
-                    "moz_places.favicon_id FROM moz_bookmarks, moz_places WHERE " \
-                    "moz_bookmarks.type = 1 AND moz_bookmarks.fk = moz_places.id");
-    } else {
-        const QString escapedTerm = tmpTerm.replace('\'', "\\'");
-        query = QString("SELECT moz_bookmarks.fk, moz_bookmarks.title, moz_places.url," \
-                        "moz_places.favicon_id FROM moz_bookmarks, moz_places WHERE " \
-                        "moz_bookmarks.type = 1 AND moz_bookmarks.fk = moz_places.id AND " \
-                        "(moz_bookmarks.title LIKE  '%" + escapedTerm + "%' or moz_places.url LIKE '%"
-                        + escapedTerm + "%')");
-    }
-    QList<QVariantMap> results = m_fetchsqlite->query(query, QMap<QString, QVariant>());
-    foreach(QVariantMap result, results) {
-        const QString title = result.value("title").toString();
-        const QUrl url = result.value("url").toUrl();
-        if (url.scheme().contains("place")) {
-            //Don't use bookmarks with empty title, url or Firefox intern url
-            kDebug(kdbg_code) << "element " << url << " was not added";
-            continue;
-        }
-
-        BookmarkMatch bookmarkMatch( m_favicon, term, title, url.toString());
-        bookmarkMatch.addTo(matches, addEverything);
-    }
-
-    return matches;
-}
-
-
-void Firefox::teardown()
-{
-    if(m_fetchsqlite) {
-        m_fetchsqlite->teardown();
-        delete m_favicon;
-        m_favicon = 0;
-    }
-}
-
-
-
-void Firefox::reloadConfiguration()
-{
-    KConfigGroup config(KSharedConfig::openConfig("kdeglobals"), QLatin1String("General") );
-    if (QSqlDatabase::isDriverAvailable("QSQLITE")) {
-        KConfigGroup grp = config;
-        /* This allows the user to specify a profile database */
-        m_dbFile = grp.readEntry<QString>("dbfile", "");
-        if (m_dbFile.isEmpty() || QFile::exists(m_dbFile)) {
-            //Try to get the right database file, the default profile is used
-            KConfig firefoxProfile(QDir::homePath() + "/.mozilla/firefox/profiles.ini",
-                                   KConfig::SimpleConfig);
-            QStringList profilesList = firefoxProfile.groupList();
-            profilesList = profilesList.filter(QRegExp("^Profile\\d+$"));
-            int size = profilesList.size();
-
-            QString profilePath;
-            if (size == 1) {
-                // There is only 1 profile so we select it
-                KConfigGroup fGrp = firefoxProfile.group(profilesList.first());
-                profilePath = fGrp.readEntry("Path", "");
-            } else {
-                // There are multiple profiles, find the default one
-                foreach(const QString & profileName, profilesList) {
-                    KConfigGroup fGrp = firefoxProfile.group(profileName);
-                    if (fGrp.readEntry<int>("Default", 0)) {
-                        profilePath = fGrp.readEntry("Path", "");
-                        break;
-                    }
-                }
-            }
-
-            if (profilePath.isEmpty()) {
-                kDebug(kdbg_code) << "No default firefox profile found";
-                return;
-            }
-            kDebug(kdbg_code) << "Profile " << profilePath << " found";
-            profilePath.prepend(QString("%1/.mozilla/firefox/").arg(QDir::homePath()));
-            m_dbFile = profilePath + "/places.sqlite";
-            grp.writeEntry("dbfile", m_dbFile);
-        }
-    } else {
-        kDebug(kdbg_code) << "SQLITE driver isn't available";
-    }
-}
diff --git a/plasma/runners/bookmarks/browsers/firefox.h b/plasma/runners/bookmarks/browsers/firefox.h
deleted file mode 100644 (file)
index 5a0ece6..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *   Copyright 2007 Glenn Ergeerts <glenn.ergeerts@telenet.be>
- *   Copyright 2012 Glenn Ergeerts <marco.gulino@gmail.com>
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU Library General Public License as
- *   published by the Free Software Foundation; either version 2, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details
- *
- *   You should have received a copy of the GNU Library General Public
- *   License along with this program; if not, write to the
- *   Free Software Foundation, Inc.,
- *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-#ifndef FIREFOX_H
-#define FIREFOX_H
-
-#include "browser.h"
-
-class KJob;
-class Favicon;
-class FetchSqlite;
-class Firefox : public QObject, public Browser
-{
-    Q_OBJECT
-public:
-    explicit Firefox(QObject *parent = 0);
-    virtual ~Firefox();
-    virtual QList<BookmarkMatch> match(const QString& term, bool addEverything);
-public slots:
-    virtual void teardown();
-    virtual void prepare();
-private:
-    virtual void reloadConfiguration();
-    QString m_dbFile;
-    QString m_dbCacheFile;
-    Favicon * m_favicon;
-    FetchSqlite *m_fetchsqlite;
-};
-
-#endif // FIREFOX_H
index ff32909..dcf6007 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
-#include "kdebrowser.h"
 #include <KBookmarkManager>
 #include <QStack>
 #include <QIcon>
-#include "bookmarkmatch.h"
 #include <KUrl>
-#include <KMimeType>
-#include "favicon.h"
 
-
-QIcon KDEFavicon::iconFor(const QString &url)  {
-    const QString iconFile = KMimeType::favIconForUrl(KUrl(url));
-    if (iconFile.isEmpty()) {
-        return defaultIcon();
-    }
-    return KIcon(iconFile);
-}
-
-
-KDEFavicon::KDEFavicon(QObject *parent)  : Favicon(parent) {}
+#include "kdebrowser.h"
+#include "bookmarkmatch.h"
+#include "favicon.h"
 
 
 KDEBrowser::KDEBrowser(QObject *parent) :
-    QObject(parent), m_bookmarkManager(KBookmarkManager::userBookmarksManager()), m_favicon(new KDEFavicon(this))
+    QObject(parent), m_bookmarkManager(KBookmarkManager::userBookmarksManager()), m_favicon(new Favicon(this))
 {
 }
 
index c23f361..3bddf8d 100644 (file)
 
 #include "browser.h"
 #include "favicon.h"
-class KBookmarkManager;
-class Favicon;
-
-class KDEFavicon : public Favicon {
-    Q_OBJECT
-public:
-    KDEFavicon(QObject *parent = 0);
-    virtual QIcon iconFor(const QString &url);
 
-};
+class KBookmarkManager;
 
 class KDEBrowser : public QObject, public Browser
 {
index 0fee8bc..e77b834 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+
+#include <QDBusReply>
+#include <QDBusInterface>
+#include <KMimeType>
+
 #include "favicon.h"
 
 Favicon::Favicon(QObject *parent) :
     QObject(parent), m_default_icon(KIcon("bookmarks"))
 {
 }
+
+QIcon Favicon::iconFor(const QString &url)  {
+    const KUrl kurl(url);
+    QString iconFile = KMimeType::favIconForUrl(kurl);
+    if (iconFile.isEmpty()) {
+        QDBusInterface kded(QString::fromLatin1("org.kde.kded"),
+                            QString::fromLatin1("/modules/favicons"),
+                            QString::fromLatin1("org.kde.FavIcon"));
+        const QDBusReply<void> reply = kded.call(QString::fromLatin1("downloadHostIcon"), url );
+        if (reply.isValid()) {
+            iconFile = KMimeType::favIconForUrl(kurl);
+        }
+        if (iconFile.isEmpty()) {
+            return defaultIcon();
+        }
+    }
+    return KIcon(iconFile);
+}
+
index 3cc4262..2f76916 100644 (file)
@@ -30,7 +30,7 @@ class Favicon : public QObject
     Q_OBJECT
 public:
     explicit Favicon(QObject *parent = 0);
-    virtual QIcon iconFor(const QString &url) = 0;
+    QIcon iconFor(const QString &url);
 
 protected:
     inline KIcon defaultIcon() const { return m_default_icon; }
diff --git a/plasma/runners/bookmarks/faviconfromblob.cpp b/plasma/runners/bookmarks/faviconfromblob.cpp
deleted file mode 100644 (file)
index 16591bf..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- *   Copyright 2007 Glenn Ergeerts <glenn.ergeerts@telenet.be>
- *   Copyright 2012 Glenn Ergeerts <marco.gulino@gmail.com>
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU Library General Public License as
- *   published by the Free Software Foundation; either version 2, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details
- *
- *   You should have received a copy of the GNU Library General Public
- *   License along with this program; if not, write to the
- *   Free Software Foundation, Inc.,
- *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-#include "faviconfromblob.h"
-
-#include <KDebug>
-#include <QPixmap>
-#include <QFile>
-#include <QFileInfo>
-#include <KStandardDirs>
-#include <QPainter>
-#include <QDir>
-#include "bookmarksrunner_defs.h"
-#include "fetchsqlite.h"
-
-#include <QSqlDatabase>
-
-#define dbFileName m_profileCacheDirectory + QDir::separator() + "Favicons.sqlite"
-
-
-class StaticQuery : public BuildQuery {
-public:
-    StaticQuery(const QString &query) : m_query(query) {}
-    virtual QString query(QSqlDatabase *database) const {
-      Q_UNUSED(database);
-      return m_query;
-    }
-private:
-    const QString m_query;
-};
-
-class ChromeQuery : public BuildQuery {
-public:
-    ChromeQuery() {}
-    virtual QString query(QSqlDatabase *database) const {
-      kDebug(kdbg_code) << "tables: " << database->tables();
-      if(database->tables().contains("favicon_bitmaps")) {
-          return "SELECT * FROM favicons " \
-            "inner join icon_mapping on icon_mapping.icon_id = favicons.id " \
-            "inner join favicon_bitmaps on icon_mapping.icon_id = favicon_bitmaps.icon_id " \
-            "WHERE page_url = :url ORDER BY height desc LIMIT 1;";
-      }
-      return "SELECT * FROM favicons inner join icon_mapping " \
-        "on icon_mapping.icon_id = favicons.id " \
-        "WHERE page_url = :url LIMIT 1;";
-    }
-};
-
-FaviconFromBlob *FaviconFromBlob::chrome(const QString &profileDirectory, QObject *parent)
-{
-    QString profileName = QFileInfo(profileDirectory).fileName();
-    QString faviconCache = QString("%1/KRunner-Chrome-Favicons-%2.sqlite")
-            .arg(KStandardDirs::locateLocal("cache", ""))
-            .arg(profileName);
-    FetchSqlite *fetchSqlite = new FetchSqlite(profileDirectory + "/Favicons", faviconCache, parent);
-    return new FaviconFromBlob(profileName, new ChromeQuery(), "image_data", fetchSqlite, parent);
-}
-
-FaviconFromBlob *FaviconFromBlob::firefox(FetchSqlite *fetchSqlite, QObject *parent)
-{
-
-    QString faviconQuery = QString("SELECT moz_favicons.data FROM moz_favicons" \
-                                   " inner join moz_places ON moz_places.favicon_id = moz_favicons.id" \
-                                   " WHERE moz_places.url = :url LIMIT 1;");
-    return new FaviconFromBlob("firefox-default", new StaticQuery(faviconQuery), "data", fetchSqlite, parent);
-}
-
-
-FaviconFromBlob::FaviconFromBlob(const QString &profileName, BuildQuery *buildQuery, const QString &blobColumn, FetchSqlite *fetchSqlite, QObject *parent)
-    : Favicon(parent), m_buildQuery(buildQuery), m_blobcolumn(blobColumn), m_fetchsqlite(fetchSqlite)
-{
-    m_profileCacheDirectory = QString("%1/KRunner-Favicons-%2")
-            .arg(KStandardDirs::locateLocal("cache", ""))
-            .arg(profileName);
-    kDebug(kdbg_code) << "got cache directory: " << m_profileCacheDirectory;
-    cleanCacheDirectory();
-    QDir().mkpath(m_profileCacheDirectory);
-}
-
-FaviconFromBlob::~FaviconFromBlob()
-{
-    cleanCacheDirectory();
-    delete m_buildQuery;
-}
-
-void FaviconFromBlob::prepare()
-{
-    m_fetchsqlite->prepare();
-}
-
-void FaviconFromBlob::teardown()
-{
-    m_fetchsqlite->teardown();
-}
-
-void FaviconFromBlob::cleanCacheDirectory()
-{
-    foreach(QFileInfo file, QDir(m_profileCacheDirectory).entryInfoList(QDir::NoDotAndDotDot)) {
-        kDebug(kdbg_code) << "Removing file " << file.absoluteFilePath() << ": " <<
-                             QFile(file.absoluteFilePath()).remove();
-    }
-    QDir().rmdir(m_profileCacheDirectory);
-}
-
-QIcon FaviconFromBlob::iconFor(const QString &url)
-{
-    kDebug(kdbg_code) << "got url: " << url;
-    QString fileChecksum = QString("%1").arg(qChecksum(url.toAscii(), url.toAscii().size()));
-    QFile iconFile( m_profileCacheDirectory + QDir::separator() + fileChecksum + "_favicon" );
-    if(iconFile.size() == 0)
-        iconFile.remove();
-    if(!iconFile.exists()) {
-        QMap<QString,QVariant> bindVariables;
-        bindVariables.insert("url", url);
-        QList<QVariantMap> faviconFound = m_fetchsqlite->query(m_buildQuery, bindVariables);
-        if(faviconFound.isEmpty()) return defaultIcon();
-
-        QByteArray iconData = faviconFound.first().value(m_blobcolumn).toByteArray();
-        kDebug(kdbg_code) << "Favicon found: " << iconData.size() << " bytes";
-        if(iconData.size() <=0)
-            return defaultIcon();
-
-        iconFile.open(QFile::WriteOnly);
-        iconFile.write(iconData);
-        iconFile.close();
-    }
-    return QIcon(iconFile.fileName());
-}
-
diff --git a/plasma/runners/bookmarks/faviconfromblob.h b/plasma/runners/bookmarks/faviconfromblob.h
deleted file mode 100644 (file)
index df52093..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *   Copyright 2007 Glenn Ergeerts <glenn.ergeerts@telenet.be>
- *   Copyright 2012 Glenn Ergeerts <marco.gulino@gmail.com>
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU Library General Public License as
- *   published by the Free Software Foundation; either version 2, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details
- *
- *   You should have received a copy of the GNU Library General Public
- *   License along with this program; if not, write to the
- *   Free Software Foundation, Inc.,
- *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-#ifndef CHROMEFAVICON_H
-#define CHROMEFAVICON_H
-
-#include <QIcon>
-#include "favicon.h"
-#include "fetchsqlite.h"
-
-class FaviconFromBlob : public Favicon
-{
-    Q_OBJECT
-public:
-    static FaviconFromBlob *chrome(const QString &profileDirectory, QObject *parent = 0);
-    static FaviconFromBlob *firefox(FetchSqlite *fetchSqlite, QObject *parent = 0);
-    ~FaviconFromBlob();
-    virtual QIcon iconFor(const QString &url);
-
-public slots:
-    virtual void prepare();
-    virtual void teardown();
-
-private:
-    FaviconFromBlob(const QString &profileName, BuildQuery *buildQuery, const QString &blobColumn, FetchSqlite *fetchSqlite, QObject *parent = 0);
-    QString m_profileCacheDirectory;
-    BuildQuery *m_buildQuery;
-    QString const m_blobcolumn;
-    FetchSqlite *m_fetchsqlite;
-    void cleanCacheDirectory();
-};
-
-#endif // CHROMEFAVICON_H
diff --git a/plasma/runners/bookmarks/fetchsqlite.cpp b/plasma/runners/bookmarks/fetchsqlite.cpp
deleted file mode 100644 (file)
index c85d7e8..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- *   Copyright 2007 Glenn Ergeerts <glenn.ergeerts@telenet.be>
- *   Copyright 2012 Glenn Ergeerts <marco.gulino@gmail.com>
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU Library General Public License as
- *   published by the Free Software Foundation; either version 2, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details
- *
- *   You should have received a copy of the GNU Library General Public
- *   License along with this program; if not, write to the
- *   Free Software Foundation, Inc.,
- *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-#include "fetchsqlite.h"
-#include "bookmarksrunner_defs.h"
-
-#include <QFile>
-#include <KDebug>
-#include <QSqlQuery>
-#include <QSqlError>
-#include <QSqlRecord>
-
-FetchSqlite::FetchSqlite(const QString &originalFilePath, const QString &copyTo, QObject *parent) :
-    QObject(parent), m_databaseFile(copyTo)
-{
-    m_db = QSqlDatabase::addDatabase("QSQLITE", originalFilePath);
-    m_db.setHostName("localhost");
-
-    QFile originalFile(originalFilePath);
-    QFile(copyTo).remove();
-    bool couldCopy = originalFile.copy(copyTo);
-    if(!couldCopy) {
-        kDebug(kdbg_code) << "error copying favicon database from " << originalFile.fileName() << " to " << copyTo;
-        kDebug(kdbg_code) << originalFile.errorString();
-    }
-}
-
-FetchSqlite::~FetchSqlite()
-{
-    if(m_db.isOpen()) m_db.close();
-    QFile(m_databaseFile).remove();
-}
-
-void FetchSqlite::prepare()
-{
-    m_db.setDatabaseName(m_databaseFile);
-    bool ok = m_db.open();
-    kDebug(kdbg_code) << "Sqlite Database " << m_databaseFile << " was opened: " << ok;
-    if(!ok) {
-        kDebug(kdbg_code) << "Error: " << m_db.lastError().text();
-    }
-}
-
-void FetchSqlite::teardown()
-{
-    m_db.close();
-}
-
-QList<QVariantMap> FetchSqlite::query(BuildQuery *buildQuery, QMap<QString, QVariant> bindObjects)
-{
-    return query(buildQuery->query(&m_db), bindObjects);
-}
-
-QList<QVariantMap> FetchSqlite::query(const QString &sql, QMap<QString, QVariant> bindObjects)
-{
-    kDebug(kdbg_code) << "query: " << sql;
-    QSqlQuery query(m_db);
-    query.prepare(sql);
-    foreach(const QString &variableName, bindObjects.keys()) {
-        query.bindValue(variableName, bindObjects.value(variableName));
-        kDebug(kdbg_code) << "* Bound " << variableName << " to " << query.boundValue(variableName);
-    }
-
-    if(!query.exec()) {
-        QSqlError error = m_db.lastError();
-        kDebug(kdbg_code) << "query failed: " << error.text() << " (" << error.type() << ", " << error.number() << ")";
-        kDebug(kdbg_code) << query.lastQuery();
-    }
-
-    QList<QVariantMap> result;
-    while(query.next()) {
-        QVariantMap recordValues;
-        QSqlRecord record = query.record();
-        for(int field=0; field<record.count(); field++) {
-            QVariant value = record.value(field);
-            recordValues.insert(record.fieldName(field), value  );
-        }
-        result << recordValues;
-    }
-    return result;
-}
diff --git a/plasma/runners/bookmarks/fetchsqlite.h b/plasma/runners/bookmarks/fetchsqlite.h
deleted file mode 100644 (file)
index ae1482b..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- *   Copyright 2007 Glenn Ergeerts <glenn.ergeerts@telenet.be>
- *   Copyright 2012 Glenn Ergeerts <marco.gulino@gmail.com>
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU Library General Public License as
- *   published by the Free Software Foundation; either version 2, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details
- *
- *   You should have received a copy of the GNU Library General Public
- *   License along with this program; if not, write to the
- *   Free Software Foundation, Inc.,
- *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-#ifndef FETCHSQLITE_H
-#define FETCHSQLITE_H
-#include <QSqlDatabase>
-#include <QList>
-#include <QtCore/qvariant.h>
-
-#include <QVariant>
-#include <QString>
-
-#include <QObject>
-
-
-class BuildQuery {
-public:
-    virtual QString query(QSqlDatabase *database) const = 0;
-    virtual ~BuildQuery() {}
-};
-
-class FetchSqlite : public QObject
-{
-    Q_OBJECT
-public:
-    explicit FetchSqlite(const QString &originalFile, const QString &copyTo, QObject *parent = 0);
-    ~FetchSqlite();
-    void prepare();
-    void teardown();
-    QList<QVariantMap> query(const QString &sql, QMap<QString,QVariant> bindObjects);
-    QList<QVariantMap> query(BuildQuery *buildQuery, QMap<QString,QVariant> bindObjects);
-
-private:
-    QString const m_databaseFile;
-    QSqlDatabase m_db;
-};
-
-#endif // FETCHSQLITE_H
index f428158..f058edd 100644 (file)
@@ -5,7 +5,6 @@ set( testChromeBookmarks_SRCS
     ../browsers/chromefindprofile.cpp
     ../bookmarkmatch.cpp
     ../favicon.cpp
-    ../fetchsqlite.cpp
 )
 include_directories(
     ${CMAKE_CURRENT_SOURCE_DIR}/..
@@ -16,10 +15,10 @@ kde4_add_test(plasma-runner-bookmarks-TestChromeBookmarks ${testChromeBookmarks_
 
 target_link_libraries(plasma-runner-bookmarks-TestChromeBookmarks
     ${KDE4_KDECORE_LIBS}
-    ${QT_QTTEST_LIBRARY}
-    ${QT_QTSQL_LIBRARY}
     ${KDE4_PLASMA_LIBS}
     ${KDE4_KIO_LIBS}
+    ${QT_QTTEST_LIBRARY}
+    ${QT_QTDBUS_LIBRARY}
 )
 
 file(COPY chrome-config-home DESTINATION ${CMAKE_CURRENT_BINARY_DIR})