summaryrefslogtreecommitdiffstats
path: root/qt-ui/preferences.cpp
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2014-12-23 19:29:00 -0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-12-24 06:37:41 -0800
commita7e148c0a8e121aa677e52827d5d4cfbdd4ebea7 (patch)
tree7b27997cdf1b0da9e9a3de9c5f49944617961562 /qt-ui/preferences.cpp
parentcc69e6ffa2a3f8e6e65e02459d8508f688fdaaf2 (diff)
downloadsubsurface-a7e148c0a8e121aa677e52827d5d4cfbdd4ebea7.tar.gz
Disconnect from facebook manually.
Added a button to disconnect from facebook. This clears the webview cookies so it correctly disconnects us from facebook, and clears the access token. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/preferences.cpp')
-rw-r--r--qt-ui/preferences.cpp37
1 files changed, 32 insertions, 5 deletions
diff --git a/qt-ui/preferences.cpp b/qt-ui/preferences.cpp
index b57040c83..70fbe126e 100644
--- a/qt-ui/preferences.cpp
+++ b/qt-ui/preferences.cpp
@@ -7,8 +7,15 @@
#include <QSortFilterProxyModel>
#include <QShortcut>
#include <QNetworkProxy>
+#include <QNetworkCookieJar>
#include <QWebView>
+static QString facebookConnectUrl =
+ "https://www.facebook.com/dialog/oauth?"
+ "client_id=427722490709000"
+ "&redirect_uri=http://www.facebook.com/connect/login_success.html"
+ "&response_type=token";
+
PreferencesDialog *PreferencesDialog::instance()
{
static PreferencesDialog *dialog = new PreferencesDialog(MainWindow::instance());
@@ -28,21 +35,20 @@ PreferencesDialog::PreferencesDialog(QWidget *parent, Qt::WindowFlags f) : QDial
ui.proxyType->setCurrentIndex(-1);
// Facebook stuff:
- QUrl urlLogin("https://www.facebook.com/dialog/oauth?"
- "client_id=427722490709000"
- "&redirect_uri=http://www.facebook.com/connect/login_success.html"
- "&response_type=token");
QSettings settings;
settings.beginGroup("WebApps");
settings.beginGroup("Facebook");
if(settings.allKeys().contains("ConnectToken")){
ui.facebookWebView->setHtml("You are connected on Facebook, yey.");
+ ui.btnDisconnectFacebook->show();
} else {
- ui.facebookWebView->setUrl(urlLogin);
+ ui.facebookWebView->setUrl(QUrl(facebookConnectUrl));
+ ui.btnDisconnectFacebook->hide();
}
connect(ui.facebookWebView, &QWebView::urlChanged, this, &PreferencesDialog::facebookLoginResponse);
+ connect(ui.btnDisconnectFacebook, &QPushButton::clicked, this, &PreferencesDialog::facebookDisconnect);
connect(ui.proxyType, SIGNAL(currentIndexChanged(int)), this, SLOT(proxyType_changed(int)));
connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton *)), this, SLOT(buttonClicked(QAbstractButton *)));
@@ -70,9 +76,22 @@ void PreferencesDialog::facebookLoginResponse(const QUrl &url)
settings.beginGroup("Facebook");
settings.setValue("ConnectToken", securityToken);
ui.facebookWebView->setHtml("We need a better 'you re connected' page. but, YEY. ");
+ ui.btnDisconnectFacebook->show();
}
}
+void PreferencesDialog::facebookDisconnect()
+{
+ QSettings settings;
+ settings.beginGroup("WebApps");
+ settings.beginGroup("Facebook");
+ settings.remove("ConnectToken");
+ ui.facebookWebView->page()->networkAccessManager()->setCookieJar(new QNetworkCookieJar());
+ ui.facebookWebView->setUrl(QUrl(facebookConnectUrl));
+ ui.btnDisconnectFacebook->hide();
+}
+
+
#define DANGER_GF (gf > 100) ? "* { color: red; }" : ""
void PreferencesDialog::gflowChanged(int gf)
{
@@ -168,6 +187,14 @@ void PreferencesDialog::setUiFromPrefs()
ui.proxyPassword->setText(prefs.proxy_pass);
ui.proxyType->setCurrentIndex(ui.proxyType->findData(prefs.proxy_type));
ui.btnUseDefaultFile->setChecked(prefs.use_default_file);
+
+ s.beginGroup("WebApps");
+ s.beginGroup("Facebook");
+ if(s.allKeys().contains("ConnectToken")){
+ ui.btnDisconnectFacebook->show();
+ } else {
+ ui.btnDisconnectFacebook->hide();
+ }
}
void PreferencesDialog::restorePrefs()