diff options
Diffstat (limited to 'qt-ui')
-rw-r--r-- | qt-ui/preferences.cpp | 37 | ||||
-rw-r--r-- | qt-ui/preferences.h | 2 | ||||
-rw-r--r-- | qt-ui/preferences.ui | 11 |
3 files changed, 43 insertions, 7 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() diff --git a/qt-ui/preferences.h b/qt-ui/preferences.h index d7755bad4..1db95a91e 100644 --- a/qt-ui/preferences.h +++ b/qt-ui/preferences.h @@ -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(); diff --git a/qt-ui/preferences.ui b/qt-ui/preferences.ui index 9611b49d9..b9f8bdb66 100644 --- a/qt-ui/preferences.ui +++ b/qt-ui/preferences.ui @@ -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> |