diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-01-13 15:16:45 +0100 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-01-13 15:16:45 +0100 |
commit | 8485cca81df18f194af53ad6cbda43aaa7eaccf9 (patch) | |
tree | b2319fc2f3b67de74686d050d75d9c146d9e2bac /src | |
parent | Writing BookmarksModel to xbel (diff) | |
download | smolbote-8485cca81df18f194af53ad6cbda43aaa7eaccf9.tar.xz |
Multithreaded saving during shutdown
Diffstat (limited to 'src')
-rw-r--r-- | src/browser.cpp | 13 | ||||
-rw-r--r-- | src/browser.h | 3 | ||||
-rw-r--r-- | src/forms/cookiesform.cpp | 5 |
3 files changed, 12 insertions, 9 deletions
diff --git a/src/browser.cpp b/src/browser.cpp index bd1f841..25fcf59 100644 --- a/src/browser.cpp +++ b/src/browser.cpp @@ -10,14 +10,15 @@ #include "mainwindow.h" #include "webengine/urlinterceptor.h" #include <QDir> +#include <QtConcurrent> #include <bookmarks/bookmarkswidget.h> #include <downloads/downloadswidget.h> Browser::Browser(int &argc, char *argv[]) : SingleApplication(argc, argv) { - setApplicationName("smolbote"); - setWindowIcon(QIcon(":/icon.svg")); + QApplication::setApplicationName("smolbote"); + QApplication::setWindowIcon(QIcon(":/icon.svg")); connect(this, &Browser::messageAvailable, this, &Browser::createSession); } @@ -25,11 +26,15 @@ Browser::Browser(int &argc, char *argv[]) Browser::~Browser() { if(m_config) { - m_config->writeIfNeeded(); + QtConcurrent::run(QThreadPool::globalInstance(), m_config.get(), &Configuration::writeIfNeeded); + //m_config->writeIfNeeded(); } if(m_bookmarksManager) { - m_bookmarksManager->save(); + QtConcurrent::run(QThreadPool::globalInstance(), m_bookmarksManager.get(), &BookmarksWidget::save); + //m_bookmarksManager->save(); } + + qDebug("Waiting for threads to wind down: %s", QThreadPool::globalInstance()->waitForDone() ? "done" : "failed"); } void Browser::setConfiguration(std::shared_ptr<Configuration> &config) diff --git a/src/browser.h b/src/browser.h index 1383c44..a78219d 100644 --- a/src/browser.h +++ b/src/browser.h @@ -26,6 +26,7 @@ class Browser : public SingleApplication public: explicit Browser(int &argc, char *argv[]); ~Browser(); + Q_DISABLE_COPY(Browser) void setConfiguration(std::shared_ptr<Configuration> &config); @@ -36,8 +37,6 @@ public slots: MainWindow *createSession(const QString &profileName, bool newWindow, const QStringList &urls); private: - Q_DISABLE_COPY(Browser) - MainWindow *createWindow(); std::shared_ptr<Configuration> m_config; diff --git a/src/forms/cookiesform.cpp b/src/forms/cookiesform.cpp index cf2bcb8..52fb5a2 100644 --- a/src/forms/cookiesform.cpp +++ b/src/forms/cookiesform.cpp @@ -8,7 +8,6 @@ #include "cookiesform.h" #include "ui_cookiesform.h" - #include <QDateTime> CookiesForm::CookiesForm(QWebEngineCookieStore *store, QWidget *parent) @@ -19,8 +18,8 @@ CookiesForm::CookiesForm(QWebEngineCookieStore *store, QWidget *parent) ui->setupUi(this); ui->treeWidget->header()->setSectionResizeMode(QHeaderView::ResizeToContents); - connect(store, SIGNAL(cookieAdded(QNetworkCookie)), this, SLOT(addCookie(QNetworkCookie))); - connect(ui->treeWidget, SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)), this, SLOT(showDetails(QTreeWidgetItem *, QTreeWidgetItem *))); + connect(store, &QWebEngineCookieStore::cookieAdded, this, &CookiesForm::addCookie); + connect(ui->treeWidget, &QTreeWidget::currentItemChanged, this, &CookiesForm::showDetails); } CookiesForm::~CookiesForm() |