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

chatview: base previewengine on QWebEnginePage not QWebEngineView

Qt6 allows us to set the RHI backend, however QQuickWidget is only
supported when using OpenGL. QWebEngineView instantiation uses
QQuickWidget and isn't required as we wish to use the previewengine
in a headless mode. So it can just be based on QWebEnginePage.

Change-Id: If05ca5c89272704b54c29318803c8773984b087c
parent 1a218928
No related branches found
No related tags found
No related merge requests found
......@@ -24,7 +24,7 @@
#include <QWebEngineSettings>
PreviewEngine::PreviewEngine(QObject* parent)
: QWebEngineView(qobject_cast<QWidget*>(parent))
: QWebEnginePage(parent)
, pimpl_(new PreviewEnginePrivate(this))
{
QWebEngineProfile* profile = QWebEngineProfile::defaultProfile();
......@@ -37,8 +37,6 @@ PreviewEngine::PreviewEngine(QObject* parent)
profile->setPersistentCookiesPolicy(QWebEngineProfile::NoPersistentCookies);
profile->setHttpCacheType(QWebEngineProfile::NoCache);
setPage(new QWebEnginePage(profile, this));
settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, true);
settings()->setAttribute(QWebEngineSettings::ScrollAnimatorEnabled, false);
settings()->setAttribute(QWebEngineSettings::ErrorPageEnabled, false);
......@@ -51,27 +49,23 @@ PreviewEngine::PreviewEngine(QObject* parent)
settings()->setAttribute(QWebEngineSettings::XSSAuditingEnabled, false);
settings()->setAttribute(QWebEngineSettings::LocalContentCanAccessFileUrls, true);
setContextMenuPolicy(Qt::ContextMenuPolicy::NoContextMenu);
channel_ = new QWebChannel(this);
channel_->registerObject(QStringLiteral("jsbridge"), pimpl_);
page()->setWebChannel(channel_);
page()->runJavaScript(Utils::QByteArrayFromFile(":/linkify.js"), QWebEngineScript::MainWorld);
page()->runJavaScript(Utils::QByteArrayFromFile(":/linkify-string.js"),
QWebEngineScript::MainWorld);
page()->runJavaScript(Utils::QByteArrayFromFile(":/qwebchannel.js"),
QWebEngineScript::MainWorld);
page()->runJavaScript(Utils::QByteArrayFromFile(":/previewInfo.js"),
QWebEngineScript::MainWorld);
page()->runJavaScript(Utils::QByteArrayFromFile(":/misc/previewInterop.js"),
QWebEngineScript::MainWorld);
setWebChannel(channel_);
runJavaScript(Utils::QByteArrayFromFile(":/linkify.js"), QWebEngineScript::MainWorld);
runJavaScript(Utils::QByteArrayFromFile(":/linkify-string.js"), QWebEngineScript::MainWorld);
runJavaScript(Utils::QByteArrayFromFile(":/qwebchannel.js"), QWebEngineScript::MainWorld);
runJavaScript(Utils::QByteArrayFromFile(":/previewInfo.js"), QWebEngineScript::MainWorld);
runJavaScript(Utils::QByteArrayFromFile(":/misc/previewInterop.js"),
QWebEngineScript::MainWorld);
}
void
PreviewEngine::parseMessage(const QString& messageId, const QString& msg, bool showPreview)
{
page()->runJavaScript(QString("parseMessage(`%1`, `%2`, %3)").arg(messageId, msg, showPreview ? "true" : "false"));
runJavaScript(
QString("parseMessage(`%1`, `%2`, %3)").arg(messageId, msg, showPreview ? "true" : "false"));
}
void
......
......@@ -22,8 +22,7 @@
#include "utils.h"
#include <QtWebChannel>
#include <QtWebEngineCore>
#include <QWebEngineView>
#include <QWebEnginePage>
class PreviewEngine;
......@@ -43,7 +42,7 @@ private:
PreviewEngine* parent_;
};
class PreviewEngine : public QWebEngineView
class PreviewEngine : public QWebEnginePage
{
Q_OBJECT
public:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment