diff options
author | Tomaz Canabrava <tomaz.canabrava@intel.com> | 2014-12-23 19:29:00 -0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-12-24 06:37:41 -0800 |
commit | a7e148c0a8e121aa677e52827d5d4cfbdd4ebea7 (patch) | |
tree | 7b27997cdf1b0da9e9a3de9c5f49944617961562 /qt-ui/preferences.cpp | |
parent | cc69e6ffa2a3f8e6e65e02459d8508f688fdaaf2 (diff) | |
download | subsurface-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.cpp | 37 |
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() |