From c83a6d5fa20243240ed5f1e58247b63c7a36e859 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sami=20R=C3=A4m=C3=B6?= Date: Fri, 24 Sep 2010 13:41:03 +0300 Subject: [PATCH] Destroy login browser after successfully logged in --- src/engine/engine.cpp | 12 +++++++++++- src/engine/engine.h | 2 ++ src/facebookservice/facebookauthentication.cpp | 6 ++++-- src/facebookservice/facebookauthentication.h | 2 ++ src/ui/mainwindow.cpp | 10 ++++++++++ src/ui/mainwindow.h | 2 ++ 6 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/engine/engine.cpp b/src/engine/engine.cpp index 975a4c7..bb9a7a1 100644 --- a/src/engine/engine.cpp +++ b/src/engine/engine.cpp @@ -134,7 +134,7 @@ SituareEngine::SituareEngine() m_mce = new MCE(this); connect(m_mce, SIGNAL(displayOff(bool)), this, SLOT(setPowerSaving(bool))); - + m_contactManager = new ContactManager(this); m_contactManager->requestContactGuids(); @@ -380,6 +380,13 @@ void SituareEngine::login() browser->load(QUrl("https://graph.facebook.com/oauth/authorize?client_id=4197c64da2fb6b927236feaea32d7d81&redirect_uri=http://www.facebook.com/connect/login_success.html&display=touch&type=user_agent")); } +void SituareEngine::loggedIn() +{ + qWarning() << __PRETTY_FUNCTION__; + + m_ui->destroyFacebookLoginBrowser(); +} + void SituareEngine::loginActionPressed() { qDebug() << __PRETTY_FUNCTION__; @@ -624,6 +631,9 @@ void SituareEngine::signalsFromFacebookAuthenticator() connect(m_facebookAuthenticator, SIGNAL(loginUsingCookies()), m_ui, SLOT(loginUsingCookies())); + + connect(m_facebookAuthenticator, SIGNAL(loggedIn(QString)), + this, SLOT(loggedIn())); } void SituareEngine::signalsFromGeocodingService() diff --git a/src/engine/engine.h b/src/engine/engine.h index c392124..54ea087 100644 --- a/src/engine/engine.h +++ b/src/engine/engine.h @@ -235,6 +235,8 @@ private slots: */ void imageReady(User *user); + void loggedIn(); + /** * @brief Requests automatic update. * diff --git a/src/facebookservice/facebookauthentication.cpp b/src/facebookservice/facebookauthentication.cpp index 398e55d..65a9023 100644 --- a/src/facebookservice/facebookauthentication.cpp +++ b/src/facebookservice/facebookauthentication.cpp @@ -224,7 +224,9 @@ void FacebookAuthentication::urlChanged(const QUrl &url) // if login succeeded if (url.toString().startsWith(REDIRECT_URI)) { - ///< @todo hide browser dialog - qWarning() << __PRETTY_FUNCTION__ << "access_token:" << parseAccessToken(url); + const QString accessToken = parseAccessToken(url); + qWarning() << __PRETTY_FUNCTION__ << "parsed access token:" << accessToken; + if (!accessToken.isEmpty()) + emit loggedIn(accessToken); } } diff --git a/src/facebookservice/facebookauthentication.h b/src/facebookservice/facebookauthentication.h index 23c5e4c..9ac2620 100644 --- a/src/facebookservice/facebookauthentication.h +++ b/src/facebookservice/facebookauthentication.h @@ -131,6 +131,8 @@ signals: */ void credentialsReady(const FacebookCredentials &credentials); + void loggedIn(const QString accessToken); + /** * @brief This signal is emitted always when login is called. At first the application tries * to login using saved cookies diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index d0d7675..392c34a 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -572,6 +572,16 @@ void MainWindow::createMenus() m_viewMenu->setObjectName(tr("Menu")); } +void MainWindow::destroyFacebookLoginBrowser() +{ + qWarning() << __PRETTY_FUNCTION__; + + m_facebookLoginBrowser->hide(); + m_facebookLoginBrowser->disconnect(); + m_facebookLoginBrowser->deleteLater(); + m_facebookLoginBrowser = 0; +} + void MainWindow::dialogFinished(int status) { qDebug() << __PRETTY_FUNCTION__; diff --git a/src/ui/mainwindow.h b/src/ui/mainwindow.h index 2d2293c..840ad23 100644 --- a/src/ui/mainwindow.h +++ b/src/ui/mainwindow.h @@ -101,6 +101,8 @@ public: */ void clearCookieJar(); + void destroyFacebookLoginBrowser(); + /** * @brief * -- 1.7.9.5