m_mapEngine->init();
m_ui->show();
-// m_facebookAuthenticator->start();
-
m_gps->setMode(GPSPosition::Default);
initializeGpsAndAutocentering();
m_contactManager = new ContactManager(this);
m_contactManager->requestContactGuids();
- ///< @todo just for testing the login browser
- login();
+ m_facebookAuthenticator->login();
}
SituareEngine::~SituareEngine()
m_geocodingService->requestLocation(location);
}
-void SituareEngine::login()
-{
- qWarning() << __PRETTY_FUNCTION__;
-
- FacebookLoginBrowser *browser = m_ui->buildFacebookLoginBrowser();
-
- connect(browser, SIGNAL(loadFinished(bool)),
- m_facebookAuthenticator, SLOT(loadFinished(bool)));
-
- connect(browser, SIGNAL(urlChanged(QUrl)),
- m_facebookAuthenticator, SLOT(urlChanged(QUrl)));
-
-// 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"));
-
- QString url = "https://www.facebook.com/login.php?";
- url.append("api_key=cf77865a5070f2c2ba3b52cbf3371579&"); ///< @todo hard coded test server api key
- url.append("cancel_url=http://www.facebook.com/connect/login_failure.html&");
- url.append("display=touch&");
- url.append("fbconnect=1&");
- url.append("next=http://www.facebook.com/connect/login_success.html&");
- url.append("return_session=1&");
- url.append("session_version=3&");
- url.append("v=1.0&");
- url.append("req_perms=publish_stream");
-
- browser->load(QUrl(url));
-}
-
void SituareEngine::loggedIn()
{
qWarning() << __PRETTY_FUNCTION__;
logout();
m_situareService->clearUserData();
} else {
- login();
+ m_facebookAuthenticator->login();
}
}
else {
connect(m_facebookAuthenticator, SIGNAL(loginUsingCookies()),
m_ui, SLOT(loginUsingCookies()));
+ connect(m_facebookAuthenticator, SIGNAL(buildLoginBrowser()),
+ m_ui, SLOT(buildFacebookLoginBrowser()));
+
connect(m_facebookAuthenticator, SIGNAL(loggedIn(QString)),
- m_situareService, SLOT(updateAccessToken(QString)));
+ m_situareService, SLOT(updateSession(QString)));
connect(m_facebookAuthenticator, SIGNAL(loggedIn(QString)),
this, SLOT(loggedIn()));
connect(m_ui, SIGNAL(updateCredentials(QUrl)),
m_facebookAuthenticator, SLOT(updateCredentials(QUrl)));
+ connect(m_ui, SIGNAL(loginBrowserCreated(FacebookLoginBrowser*)),
+ m_facebookAuthenticator, SLOT(setBrowser(FacebookLoginBrowser*)));
+
// signals from map view
connect(m_ui, SIGNAL(mapViewScrolled(SceneCoordinate)),
m_mapEngine, SLOT(setCenterPosition(SceneCoordinate)));
*/
void locationSearch(QString location);
- void login();
-
/**
* @brief Slot to intercept signal when Login/Logout action is pressed
*
#include "common.h"
#include "error.h"
#include "facebookcommon.h"
+#include "ui/facebookloginbrowser.h"
#include "facebookauthentication.h"
const QString REDIRECT_URI = "http://www.facebook.com/connect/login_success.html";
FacebookAuthentication::FacebookAuthentication(QObject *parent)
- : QObject(parent)
+ : QObject(parent),
+ m_browser(0)
{
qDebug() << __PRETTY_FUNCTION__;
}
+void FacebookAuthentication::browserDestroyed()
+{
+ qWarning() << __PRETTY_FUNCTION__;
+
+ ///< @todo (HIGH) Is newer called!
+
+ m_browser = 0;
+}
+
void FacebookAuthentication::clearAccountInformation(bool keepUsername)
{
qDebug() << __PRETTY_FUNCTION__;
///< @todo show browsed window if url != redirect url
}
+void FacebookAuthentication::login()
+{
+ qWarning() << __PRETTY_FUNCTION__;
+
+ emit buildLoginBrowser();
+}
+
QString FacebookAuthentication::parseSession(const QUrl &url)
{
qWarning() << __PRETTY_FUNCTION__;
return QString();
}
+void FacebookAuthentication::setBrowser(FacebookLoginBrowser *browser)
+{
+ qWarning() << __PRETTY_FUNCTION__;
+
+ m_browser = browser;
+
+ if (m_browser) {
+ connect(m_browser, SIGNAL(loadFinished(bool)),
+ this, SLOT(loadFinished(bool)));
+
+ connect(m_browser, SIGNAL(urlChanged(QUrl)),
+ this, SLOT(urlChanged(QUrl)));
+
+ connect(m_browser, SIGNAL(destroyed()),
+ this, SLOT(browserDestroyed()));
+
+ // 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"));
+
+ QString url = "https://www.facebook.com/login.php?";
+ url.append("api_key=cf77865a5070f2c2ba3b52cbf3371579&"); ///< @todo hard coded test server api key
+ url.append("cancel_url=http://www.facebook.com/connect/login_failure.html&");
+ url.append("display=popup&");
+ url.append("fbconnect=1&");
+ url.append("next=http://www.facebook.com/connect/login_success.html&");
+ url.append("return_session=1&");
+ url.append("session_version=3&");
+ url.append("v=1.0&");
+ url.append("req_perms=publish_stream");
+
+ m_browser->load(QUrl(url));
+ }
+}
+
void FacebookAuthentication::urlChanged(const QUrl &url)
{
qWarning() << __PRETTY_FUNCTION__ << url.toString();
#include <QUrl>
+class FacebookLoginBrowser;
+
/**
* @brief FacebookAuthentication class takes care of parsing and handling of credentials for
* Facebook. Other components of Situare application needs credentials to communicate with
/*******************************************************************************
* MEMBER FUNCTIONS AND SLOTS
******************************************************************************/
+public:
+ void login();
+
public slots:
/**
*/
void clearAccountInformation(bool keepUsername = false);
+ void setBrowser(FacebookLoginBrowser *browser);
+
private:
QString parseSession(const QUrl &url);
private slots:
+ void browserDestroyed();
void loadFinished(bool ok);
* SIGNALS
******************************************************************************/
signals:
+ void buildLoginBrowser();
/**
* @brief Signals error
void loggedIn(const QString session);
- /**
- * @brief Signals when credentials are invalid new login is needed
- *
- */
- void newLoginRequest();
-
/*******************************************************************************
* DATA MEMBERS
******************************************************************************/
private:
-
-
+ FacebookLoginBrowser *m_browser;
};
#endif // FACEBOOKAUTHENTICATION_H
this, SLOT(mapCenterHorizontalShiftingChanged(int)));
}
-FacebookLoginBrowser* MainWindow::buildFacebookLoginBrowser()
+void MainWindow::buildFacebookLoginBrowser()
{
qWarning() << __PRETTY_FUNCTION__;
m_facebookLoginBrowser->show();
- return m_facebookLoginBrowser;
+ emit loginBrowserCreated(m_facebookLoginBrowser);
}
void MainWindow::buildFriendListPanel()
* MEMBER FUNCTIONS AND SLOTS
******************************************************************************/
public:
- FacebookLoginBrowser* buildFacebookLoginBrowser();
-
/**
* @brief Clears cookie jar
*
*/
void clearCookieJar();
- void destroyFacebookLoginBrowser();
-
/**
* @brief
*
const QString username();
public slots:
+ void buildFacebookLoginBrowser();
+
+ void destroyFacebookLoginBrowser();
+
/**
* @brief Builds information box with message.
*
*/
void loginActionPressed();
+ void loginBrowserCreated(FacebookLoginBrowser *);
+
/**
* @brief MapView has been resized
*