Start transition from QWebKit to QWebEngine

This removes all references to WebKit if cmake option USE_WEBKIT is enabled.
For the user manual it changes it to WebEngine (seems to work for me).

Similar for the Facebook connection (minus a reference to a cookie jar).
This I could not test at the moment, as I wrote this on a train.

Printing does not work, it is a null operation at the moment. Currently,
large parts of of the printing code are commented out as there is no direct
way to access page elements in WebEngine. It seems this needs to be done
via Javascript (with a callback invoked). There is new functionality in
WebEngine to render a view to a PDF file but this needs more work (and
probably some thoughts towards page breaks).

Signed-off-by: Robert C. Helling <helling@atdotde.de>
This commit is contained in:
Robert C. Helling 2016-08-09 00:12:12 +02:00
parent 10b8bda662
commit 529a4d499b
8 changed files with 159 additions and 7 deletions

View file

@ -16,8 +16,11 @@
#include <QDebug>
#include <QMessageBox>
#include <QInputDialog>
#ifdef USE_WEBENGINE
#include <QWebEngineView>
#else
#include <QWebView>
#endif
#include "mainwindow.h"
#include "profile-widget/profilewidget2.h"
@ -224,14 +227,22 @@ void FacebookManager::sendDive()
FacebookConnectWidget::FacebookConnectWidget(QWidget *parent) : QDialog(parent), ui(new Ui::FacebookConnectWidget) {
ui->setupUi(this);
FacebookManager *fb = FacebookManager::instance();
#ifdef USE_WEBENGINE
facebookWebView = new QWebEngineView(this);
#else
facebookWebView = new QWebView(this);
#endif
ui->fbWebviewContainer->layout()->addWidget(facebookWebView);
if (fb->loggedIn()) {
facebookLoggedIn();
} else {
facebookDisconnect();
}
#ifdef USE_WEBENGINE
connect(facebookWebView, &QWebEngineView::urlChanged, fb, &FacebookManager::tryLogin);
#else
connect(facebookWebView, &QWebView::urlChanged, fb, &FacebookManager::tryLogin);
#endif
connect(fb, &FacebookManager::justLoggedIn, this, &FacebookConnectWidget::facebookLoggedIn);
}
@ -250,7 +261,11 @@ void FacebookConnectWidget::facebookDisconnect()
ui->fbWebviewContainer->setEnabled(true);
ui->FBLabel->setText(tr("To connect to Facebook, please log in. This enables Subsurface to publish dives to your timeline"));
if (facebookWebView) {
#ifdef USE_WEBENGINE
//FIX ME
#else
facebookWebView->page()->networkAccessManager()->setCookieJar(new QNetworkCookieJar());
#endif
facebookWebView->setUrl(FacebookManager::instance()->connectUrl());
}
}