Skip to content
Snippets Groups Projects
Commit 2343f34b authored by Andreas Traczyk's avatar Andreas Traczyk Committed by Sébastien Blin
Browse files

messaging: run previewengine on its own thread

Change-Id: Iff267600c0802fbadedb58174b5fe65bbd1a443f
parent 692ba0d5
Branches
Tags
No related merge requests found
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "previewengine.h" #include "previewengine.h"
#include <QRegularExpression> #include <QRegularExpression>
#include <QThread>
const QRegularExpression PreviewEngine::newlineRe("\\r?\\n"); const QRegularExpression PreviewEngine::newlineRe("\\r?\\n");
...@@ -25,10 +26,21 @@ PreviewEngine::PreviewEngine(ConnectivityMonitor* cm, QObject* parent) ...@@ -25,10 +26,21 @@ PreviewEngine::PreviewEngine(ConnectivityMonitor* cm, QObject* parent)
: NetworkManager(cm, parent) : NetworkManager(cm, parent)
, htmlParser_(new HtmlParser(this)) , htmlParser_(new HtmlParser(this))
{ {
// Run this object in a separate thread.
thread_ = new QThread();
moveToThread(thread_);
thread_->start();
// Connect on a queued connection to avoid blocking caller thread. // Connect on a queued connection to avoid blocking caller thread.
connect(this, &PreviewEngine::parseLink, this, &PreviewEngine::onParseLink, Qt::QueuedConnection); connect(this, &PreviewEngine::parseLink, this, &PreviewEngine::onParseLink, Qt::QueuedConnection);
} }
PreviewEngine::~PreviewEngine()
{
thread_->quit();
thread_->wait();
}
QString QString
PreviewEngine::getTagContent(const QList<QString>& tags, const QString& value) PreviewEngine::getTagContent(const QList<QString>& tags, const QString& value)
{ {
......
...@@ -27,7 +27,7 @@ class PreviewEngine final : public NetworkManager ...@@ -27,7 +27,7 @@ class PreviewEngine final : public NetworkManager
Q_DISABLE_COPY(PreviewEngine) Q_DISABLE_COPY(PreviewEngine)
public: public:
PreviewEngine(ConnectivityMonitor* cm, QObject* parent = nullptr); PreviewEngine(ConnectivityMonitor* cm, QObject* parent = nullptr);
~PreviewEngine() = default; ~PreviewEngine();
Q_SIGNALS: Q_SIGNALS:
void parseLink(const QString& messageId, const QString& link); void parseLink(const QString& messageId, const QString& link);
...@@ -45,4 +45,6 @@ private: ...@@ -45,4 +45,6 @@ private:
QString getImage(const QList<QString>& metaTags); QString getImage(const QList<QString>& metaTags);
static const QRegularExpression newlineRe; static const QRegularExpression newlineRe;
QThread* thread_;
}; };
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment