aboutsummaryrefslogtreecommitdiffstats
path: root/desktop-widgets/plugins/facebook
diff options
context:
space:
mode:
authorGravatar Robert C. Helling <helling@atdotde.de>2016-08-09 00:12:12 +0200
committerGravatar Robert C. Helling <helling@atdotde.de>2016-12-30 19:43:00 +0100
commit529a4d499b8dad35de6cd43e3004017ccfd288aa (patch)
treefb0f163c32c029134a849ac49183849870b3c0ae /desktop-widgets/plugins/facebook
parent10b8bda6626fe1de602e38da34de419972031755 (diff)
downloadsubsurface-529a4d499b8dad35de6cd43e3004017ccfd288aa.tar.gz
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>
Diffstat (limited to 'desktop-widgets/plugins/facebook')
-rw-r--r--desktop-widgets/plugins/facebook/facebookconnectwidget.cpp17
-rw-r--r--desktop-widgets/plugins/facebook/facebookconnectwidget.h8
2 files changed, 24 insertions, 1 deletions
diff --git a/desktop-widgets/plugins/facebook/facebookconnectwidget.cpp b/desktop-widgets/plugins/facebook/facebookconnectwidget.cpp
index e0d2aab67..40d598229 100644
--- a/desktop-widgets/plugins/facebook/facebookconnectwidget.cpp
+++ b/desktop-widgets/plugins/facebook/facebookconnectwidget.cpp
@@ -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());
}
}
diff --git a/desktop-widgets/plugins/facebook/facebookconnectwidget.h b/desktop-widgets/plugins/facebook/facebookconnectwidget.h
index e97097806..8fbf249e2 100644
--- a/desktop-widgets/plugins/facebook/facebookconnectwidget.h
+++ b/desktop-widgets/plugins/facebook/facebookconnectwidget.h
@@ -2,7 +2,11 @@
#define FACEBOOKCONNECTWIDGET_H
#include <QDialog>
+#ifdef USE_WEBENGINE
+class QWebEngineView;
+#else
class QWebView;
+#endif
namespace Ui {
class FacebookConnectWidget;
class SocialnetworksDialog;
@@ -41,7 +45,11 @@ public:
void facebookDisconnect();
private:
Ui::FacebookConnectWidget *ui;
+#ifdef USE_WEBENGINE
+ QWebEngineView *facebookWebView;
+#else
QWebView *facebookWebView;
+#endif
};
class SocialNetworkDialog : public QDialog {