Destroy login browser after successfully logged in
authorSami Rämö <sami.ramo@ixonos.com>
Fri, 24 Sep 2010 10:41:03 +0000 (13:41 +0300)
committerSami Rämö <sami.ramo@ixonos.com>
Fri, 24 Sep 2010 10:41:03 +0000 (13:41 +0300)
src/engine/engine.cpp
src/engine/engine.h
src/facebookservice/facebookauthentication.cpp
src/facebookservice/facebookauthentication.h
src/ui/mainwindow.cpp
src/ui/mainwindow.h

index 975a4c7..bb9a7a1 100644 (file)
@@ -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()
index c392124..54ea087 100644 (file)
@@ -235,6 +235,8 @@ private slots:
     */
     void imageReady(User *user);
 
+    void loggedIn();
+
     /**
     * @brief Requests automatic update.
     *
index 398e55d..65a9023 100644 (file)
@@ -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);
     }
 }
index 23c5e4c..9ac2620 100644 (file)
@@ -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
index d0d7675..392c34a 100644 (file)
@@ -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__;
index 2d2293c..840ad23 100644 (file)
@@ -101,6 +101,8 @@ public:
      */
     void clearCookieJar();
 
+    void destroyFacebookLoginBrowser();
+
     /**
      * @brief
      *