diff --git a/src/lib/app/mainapplication.cpp b/src/lib/app/mainapplication.cpp index 3a083bfee..6b67a012b 100644 --- a/src/lib/app/mainapplication.cpp +++ b/src/lib/app/mainapplication.cpp @@ -914,6 +914,7 @@ void MainApplication::saveSettings() qzSettings->saveSettings(); AdBlockManager::instance()->save(); + IconProvider::instance()->saveIconsToDatabase(); QFile::remove(currentProfilePath() + "WebpageIcons.db"); Settings::syncSettings(); } diff --git a/src/lib/other/databasewriter.cpp b/src/lib/other/databasewriter.cpp index 609c7fcee..438962fc4 100644 --- a/src/lib/other/databasewriter.cpp +++ b/src/lib/other/databasewriter.cpp @@ -19,10 +19,10 @@ #include -DatabaseWriter* DatabaseWriter::s_instance = 0; +Q_GLOBAL_STATIC(DatabaseWriter, qz_database_writer) -DatabaseWriter::DatabaseWriter(QObject* parent) - : QObject(parent) +DatabaseWriter::DatabaseWriter() + : QObject() { } @@ -34,10 +34,7 @@ void DatabaseWriter::executeQuery(const QSqlQuery &query) DatabaseWriter* DatabaseWriter::instance() { - if (!s_instance) { - s_instance = new DatabaseWriter; - } - return s_instance; + return qz_database_writer(); } void DatabaseWriter::execute() diff --git a/src/lib/other/databasewriter.h b/src/lib/other/databasewriter.h index 1f921fd72..c7a062534 100644 --- a/src/lib/other/databasewriter.h +++ b/src/lib/other/databasewriter.h @@ -28,7 +28,7 @@ class QUPZILLA_EXPORT DatabaseWriter : public QObject { Q_OBJECT public: - explicit DatabaseWriter(QObject* parent = 0); + explicit DatabaseWriter(); // Delayed execution of query void executeQuery(const QSqlQuery &query); @@ -40,8 +40,6 @@ private slots: private: QVector m_queries; - - static DatabaseWriter* s_instance; }; #endif // DATABASEWRITER_H diff --git a/src/lib/tools/iconprovider.cpp b/src/lib/tools/iconprovider.cpp index 5d72afcf1..dad18f8ed 100644 --- a/src/lib/tools/iconprovider.cpp +++ b/src/lib/tools/iconprovider.cpp @@ -24,10 +24,10 @@ #include #include -IconProvider* IconProvider::s_instance = 0; +Q_GLOBAL_STATIC(IconProvider, qz_icon_provider) -IconProvider::IconProvider(QWidget* parent) - : QWidget(parent) +IconProvider::IconProvider() + : QWidget() { m_autoSaver = new AutoSaver(this); connect(m_autoSaver, SIGNAL(save()), this, SLOT(saveIconsToDatabase())); @@ -210,10 +210,7 @@ QIcon IconProvider::iconForDomain(const QUrl &url) IconProvider* IconProvider::instance() { - if (!s_instance) { - s_instance = new IconProvider; - } - return s_instance; + return qz_icon_provider(); } void IconProvider::saveIconsToDatabase() diff --git a/src/lib/tools/iconprovider.h b/src/lib/tools/iconprovider.h index ab3a31ee5..7689cbe35 100644 --- a/src/lib/tools/iconprovider.h +++ b/src/lib/tools/iconprovider.h @@ -38,7 +38,7 @@ class QUPZILLA_EXPORT IconProvider : public QWidget Q_PROPERTY(QPixmap bookmarkIcon READ bookmarkIcon WRITE setBookmarkIcon) public: - explicit IconProvider(QWidget* parent = 0); + explicit IconProvider(); void saveIcon(WebView* view); @@ -74,8 +74,6 @@ private: QVector m_iconBuffer; AutoSaver* m_autoSaver; - - static IconProvider* s_instance; }; #endif // ICONPROVIDER_H