save
This commit is contained in:
parent
6ef993045c
commit
7a3a23a70b
@ -202,34 +202,38 @@ QUrl WebEngineViewer::url() const {
|
||||
return QWebEngineView::url();
|
||||
}
|
||||
|
||||
QByteArray WebEngineViewer::getJsEnabledHtml(QObject* parent, const QString& url) {
|
||||
QByteArray res;
|
||||
QByteArray WebEngineViewer::getJsEnabledHtml(const QString& url) {
|
||||
WebEnginePage* page = new WebEnginePage();
|
||||
WebEngineViewer* viewer = nullptr;
|
||||
|
||||
QMetaObject::invokeMethod(
|
||||
qApp,
|
||||
[&] {
|
||||
QGraphicsScene* scene = new QGraphicsScene(parent);
|
||||
QGraphicsView* view = new QGraphicsView(scene, qApp->mainFormWidget());
|
||||
|
||||
WebEngineViewer* viewer = new WebEngineViewer(qApp->mainFormWidget());
|
||||
WebEnginePage* page = new WebEnginePage(viewer);
|
||||
|
||||
scene->addWidget(viewer);
|
||||
|
||||
viewer->resize(3800, 2100);
|
||||
view->show();
|
||||
viewer->setPage(page);
|
||||
|
||||
res = page->pageHtml(url).toUtf8();
|
||||
|
||||
delete scene;
|
||||
// delete view;
|
||||
// delete viewer;
|
||||
// delete viewer;
|
||||
// NOTE: Must be create on main thread.
|
||||
viewer = new WebEngineViewer();
|
||||
},
|
||||
Qt::ConnectionType::BlockingQueuedConnection);
|
||||
|
||||
return res;
|
||||
viewer->moveToThread(qApp->thread());
|
||||
page->moveToThread(qApp->thread());
|
||||
|
||||
viewer->setPage(page);
|
||||
viewer->setAttribute(Qt::WidgetAttribute::WA_DontShowOnScreen, true);
|
||||
viewer->setAttribute(Qt::WidgetAttribute::WA_DeleteOnClose, true);
|
||||
|
||||
QMetaObject::invokeMethod(viewer, "show", Qt::ConnectionType::BlockingQueuedConnection);
|
||||
|
||||
QString html;
|
||||
QMetaObject::invokeMethod(page,
|
||||
"pageHtml",
|
||||
Qt::ConnectionType::BlockingQueuedConnection,
|
||||
Q_RETURN_ARG(QString, html),
|
||||
Q_ARG(QString, url));
|
||||
|
||||
page->deleteLater();
|
||||
viewer->close();
|
||||
|
||||
return html.toUtf8();
|
||||
}
|
||||
|
||||
ContextMenuData WebEngineViewer::provideContextMenuData(QContextMenuEvent* event) const {
|
||||
|
@ -37,7 +37,7 @@ class WebEngineViewer : public QWebEngineView, public WebViewer {
|
||||
virtual QString html() const;
|
||||
virtual QUrl url() const;
|
||||
|
||||
static QByteArray getJsEnabledHtml(QObject* parent, const QString& url);
|
||||
static QByteArray getJsEnabledHtml(const QString& url);
|
||||
|
||||
signals:
|
||||
void pageTitleChanged(const QString& new_title);
|
||||
|
@ -43,8 +43,7 @@ QString WebEnginePage::pageHtml(const QString& url) {
|
||||
loop.exec();
|
||||
|
||||
// Page is loaded. Send artificial scroll-to-bottom and wait for changes to end.
|
||||
|
||||
runJavaScript("window.resizeTo(3800, 2100);");
|
||||
// runJavaScript("window.resizeTo(3800, 2100);");
|
||||
runJavaScript(IOFactory::readFile(BUILTIN_JS_FOLDER + QL1C('/') + OBSERVER_JS_FILE));
|
||||
loop.exec();
|
||||
|
||||
|
@ -297,7 +297,7 @@ StandardFeed* StandardFeed::guessFeed(StandardFeed::SourceType source_type,
|
||||
}
|
||||
else if (source_type == StandardFeed::SourceType::EmbeddedBrowser) {
|
||||
#if defined(NO_LITE)
|
||||
feed_contents = WebEngineViewer::getJsEnabledHtml(qApp, source);
|
||||
feed_contents = WebEngineViewer::getJsEnabledHtml(source);
|
||||
#else
|
||||
throw ApplicationException(tr("this source type cannot be used on 'lite' %1 build").arg(QSL(APP_NAME)));
|
||||
#endif
|
||||
|
@ -242,48 +242,7 @@ QList<Message> StandardServiceRoot::obtainNewMessages(Feed* feed,
|
||||
}
|
||||
else if (f->sourceType() == StandardFeed::SourceType::EmbeddedBrowser) {
|
||||
#if defined(NO_LITE)
|
||||
WebEnginePage* page = new WebEnginePage();
|
||||
WebEngineViewer* viewer = nullptr;
|
||||
|
||||
QMetaObject::invokeMethod(
|
||||
qApp,
|
||||
[&] {
|
||||
// NOTE: Must be create on main thread.
|
||||
viewer = new WebEngineViewer();
|
||||
},
|
||||
Qt::ConnectionType::BlockingQueuedConnection);
|
||||
|
||||
viewer->moveToThread(qApp->thread());
|
||||
page->moveToThread(qApp->thread());
|
||||
|
||||
viewer->setPage(page);
|
||||
viewer->setAttribute(Qt::WidgetAttribute::WA_DontShowOnScreen, true);
|
||||
viewer->setAttribute(Qt::WidgetAttribute::WA_DontShowOnScreen, true);
|
||||
viewer->setAttribute(Qt::WidgetAttribute::WA_DeleteOnClose, true);
|
||||
|
||||
// QMetaObject::invokeMethod(viewer, "show", Qt::ConnectionType::BlockingQueuedConnection);
|
||||
|
||||
QMetaObject::invokeMethod(
|
||||
viewer,
|
||||
[&] {
|
||||
viewer->show();
|
||||
viewer->resize(3800, 2100);
|
||||
// viewer->hide();
|
||||
},
|
||||
Qt::ConnectionType::BlockingQueuedConnection);
|
||||
|
||||
QString html;
|
||||
QMetaObject::invokeMethod(page,
|
||||
"pageHtml",
|
||||
Qt::ConnectionType::BlockingQueuedConnection,
|
||||
Q_RETURN_ARG(QString, html),
|
||||
Q_ARG(QString, f->source()));
|
||||
|
||||
feed_contents = html.toUtf8();
|
||||
|
||||
page->deleteLater();
|
||||
viewer->close();
|
||||
// viewer->deleteLater();
|
||||
feed_contents = WebEngineViewer::getJsEnabledHtml(f->source());
|
||||
#else
|
||||
throw ApplicationException(tr("this source type cannot be used on 'lite' %1 build").arg(QSL(APP_NAME)));
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user