mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-19 14:25:27 +00:00
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>
This commit is contained in:
parent
cc69e6ffa2
commit
a7e148c0a8
3 changed files with 43 additions and 7 deletions
|
@ -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()
|
||||
|
|
|
@ -31,6 +31,8 @@ slots:
|
|||
void proxyType_changed(int idx);
|
||||
void on_btnUseDefaultFile_toggled(bool toggle);
|
||||
void facebookLoginResponse(const QUrl& url);
|
||||
void facebookDisconnect();
|
||||
|
||||
private:
|
||||
explicit PreferencesDialog(QWidget *parent = 0, Qt::WindowFlags f = 0);
|
||||
void setUiFromPrefs();
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>562</width>
|
||||
<width>924</width>
|
||||
<height>718</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
@ -972,7 +972,7 @@
|
|||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="page_6">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_10">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||
<item>
|
||||
<widget class="QWebView" name="facebookWebView">
|
||||
<property name="url">
|
||||
|
@ -982,6 +982,13 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnDisconnectFacebook">
|
||||
<property name="text">
|
||||
<string>Disconnect from facebook</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
|
|
Loading…
Add table
Reference in a new issue