void SituareEngine::loginOk()
{
+ /// @ OLD CODE, REFACTOR! loggedIn -> FB authenticator etc.
qDebug() << __PRETTY_FUNCTION__;
m_ui->loggedIn(true);
connect(m_facebookAuthenticator, SIGNAL(error(int, int)),
this, SLOT(error(int, int)));
- connect(m_facebookAuthenticator, SIGNAL(credentialsReady(FacebookCredentials)),
- m_situareService, SLOT(credentialsReady(FacebookCredentials)));
-
- connect(m_facebookAuthenticator, SIGNAL(credentialsReady(FacebookCredentials)),
- this, SLOT(loginOk()));
-
- connect(m_facebookAuthenticator, SIGNAL(newLoginRequest()),
- m_ui, SLOT(startLoginProcess()));
-
- connect(m_facebookAuthenticator, SIGNAL(saveCookiesRequest()),
- m_ui, SLOT(saveCookies()));
-
- connect(m_facebookAuthenticator, SIGNAL(loginUsingCookies()),
- m_ui, SLOT(loginUsingCookies()));
-
connect(m_facebookAuthenticator, SIGNAL(buildLoginBrowser()),
m_ui, SLOT(buildFacebookLoginBrowser()));
connect(m_ui, SIGNAL(loginActionPressed()),
this, SLOT(loginActionPressed()));
- connect(m_ui, SIGNAL(updateCredentials(QUrl)),
- m_facebookAuthenticator, SLOT(updateCredentials(QUrl)));
-
connect(m_ui, SIGNAL(loginBrowserCreated(FacebookLoginBrowser*)),
m_facebookAuthenticator, SLOT(setBrowser(FacebookLoginBrowser*)));
m_crosshair(0),
m_email(), ///< @todo WTF?!?!?!?
m_password(),
- m_webView(0),
m_facebookLoginBrowser(0),
m_fullScreenButton(0),
m_indicatorButtonPanel(0),
- m_mapScale(0),
- m_cookieJar(0)
+ m_mapScale(0)
{
qDebug() << __PRETTY_FUNCTION__;
grabZoomKeys(false);
- if(m_webView)
- delete m_webView;
-
qDeleteAll(m_queue.begin(), m_queue.end());
m_queue.clear();
this, SLOT(buildInformationBox(QString, bool)));
}
-void MainWindow::buildWebView()
-{
- qDebug() << __PRETTY_FUNCTION__;
-
- if(!m_webView) {
- m_webView = new QWebView;
-
- if(!m_cookieJar)
- m_cookieJar = new NetworkCookieJar(new QNetworkCookieJar(this));
-
- m_webView->page()->networkAccessManager()->setCookieJar(m_cookieJar);
-
- connect(m_webView->page()->networkAccessManager(), SIGNAL(finished(QNetworkReply*)),
- this, SLOT(webViewRequestFinished(QNetworkReply*)));
- connect(m_webView, SIGNAL(urlChanged(const QUrl &)),
- this, SIGNAL(updateCredentials(QUrl)));
- connect(m_webView, SIGNAL(loadFinished(bool)),
- this, SLOT(loadDone(bool)));
-
- connect(m_webView->page()->networkAccessManager(),
- SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)),
- this, SLOT(sslErrors(QNetworkReply*,QList<QSslError>)));
-
- m_webView->hide();
- }
-}
-
void MainWindow::buildZoomButtonPanel()
{
qDebug() << __PRETTY_FUNCTION__;
this, SIGNAL(draggingModeTriggered()));
}
-void MainWindow::clearCookieJar()
-{
- qDebug() << __PRETTY_FUNCTION__;
-
- buildWebView();
-
- m_webView->stop();
-
- if(!m_cookieJar) {
- m_cookieJar = new NetworkCookieJar(new QNetworkCookieJar(this));
- }
- QList<QNetworkCookie> emptyList;
- emptyList.clear();
-
-// m_cookieJar->setAllCookies(emptyList);
- m_webView->page()->networkAccessManager()->setCookieJar(m_cookieJar);
-}
-
void MainWindow::createMenus()
{
qDebug() << __PRETTY_FUNCTION__;
qDebug() << __PRETTY_FUNCTION__;
QDialog *dialog = m_queue.takeFirst();
- LoginDialog *loginDialog = qobject_cast<LoginDialog *>(dialog);
SearchDialog *searchDialog = qobject_cast<SearchDialog *>(dialog);
- if(loginDialog) {
- /// @todo Remove login related code
- if(status != 0) {
- buildWebView();
- loginDialog->userInput(m_email, m_password);
-
- QStringList urlParts;
- urlParts.append(FACEBOOK_LOGINBASE);
- urlParts.append(API_KEY_PARAMETER_NAME);
- urlParts.append(API_KEY);
- urlParts.append(INTERVAL1);
- urlParts.append(SITUARE_LOGIN_SUCCESS);
- urlParts.append(INTERVAL2);
- urlParts.append(SITUARE_LOGIN_FAILURE);
- urlParts.append(FACEBOOK_LOGIN_ENDING);
-
- m_refresh = true;
- m_webView->load(QUrl(urlParts.join(EMPTY)));
- toggleProgressIndicator(true);
- } else {
- emit cancelLoginProcess();
- }
- } else if(searchDialog) {
- if(status != 0) {
- emit searchForLocation(searchDialog->input());
- }
- }
+ if ((searchDialog) && (status != 0))
+ emit searchForLocation(searchDialog->input());
dialog->deleteLater();
QWidget::keyPressEvent(event);
}
-///< @todo remove old, duplicate loadCookies()
-void MainWindow::loadCookies()
-{
- qDebug() << __PRETTY_FUNCTION__;
-
-// QSettings settings(DIRECTORY_NAME, FILE_NAME);
-
-// QStringList list = settings.value(COOKIES, EMPTY).toStringList();
-
-// if(!list.isEmpty()) {
-// QList<QNetworkCookie> cookieList;
-// for(int i=0;i<list.count();i++) {
-// cookieList.append(QNetworkCookie::parseCookies(list.at(i).toAscii()));
-// }
-
-// if(!m_cookieJar)
-// m_cookieJar = new NetworkCookieJar(new QNetworkCookieJar(this));
-
-// m_cookieJar->setAllCookies(cookieList);
-// m_webView->page()->networkAccessManager()->setCookieJar(m_cookieJar);
-// }
-}
-
-void MainWindow::loadDone(bool done)
-{
- qDebug() << __PRETTY_FUNCTION__;
-
- // for the first time the login page is opened, we need to refresh it to get cookies working
- if(m_refresh) {
- m_webView->reload();
- m_refresh = false;
- }
-
- if (done)
- {
- QWebFrame* frame = m_webView->page()->currentFrame();
- if (frame!=NULL)
- {
- // set email box
- QWebElementCollection emailCollection = frame->findAllElements("input[name=email]");
-
- foreach (QWebElement element, emailCollection) {
- element.setAttribute("value", m_email.toAscii());
- }
- // set password box
- QWebElementCollection passwordCollection = frame->findAllElements("input[name=pass]");
- foreach (QWebElement element, passwordCollection) {
- element.setAttribute("value", m_password.toAscii());
- }
- // find connect button
- QWebElementCollection buttonCollection = frame->findAllElements("input[name=login]");
- foreach (QWebElement element, buttonCollection)
- {
- QPoint pos(element.geometry().center());
-
- // send a mouse click event to the web page
- QMouseEvent event0(QEvent::MouseButtonPress, pos, Qt::LeftButton, Qt::LeftButton,
- Qt::NoModifier);
- QApplication::sendEvent(m_webView->page(), &event0);
- QMouseEvent event1(QEvent::MouseButtonRelease, pos, Qt::LeftButton, Qt::LeftButton,
- Qt::NoModifier);
- QApplication::sendEvent(m_webView->page(), &event1);
- }
- }
- }
-}
-
void MainWindow::loggedIn(bool logged)
{
+ /// @todo OLD CODE
qDebug() << __PRETTY_FUNCTION__;
m_loggedIn = logged;
if(logged) {
m_loginAct->setText(tr("Logout"));
} else {
- clearCookieJar();
+// clearCookieJar();
m_email.clear();
m_password.clear();
void MainWindow::loginFailed()
{
+ /// @todo OLD CODE
qDebug() << __PRETTY_FUNCTION__;
- clearCookieJar();
+// clearCookieJar();
startLoginProcess();
}
return m_loggedIn;
}
-void MainWindow::loginUsingCookies()
-{
- qDebug() << __PRETTY_FUNCTION__;
-
- toggleProgressIndicator(true);
-
- buildWebView();
- loadCookies();
-
- QStringList urlParts;
- urlParts.append(FACEBOOK_LOGINBASE);
- urlParts.append(API_KEY_PARAMETER_NAME);
- urlParts.append(API_KEY);
- urlParts.append(INTERVAL1);
- urlParts.append(SITUARE_LOGIN_SUCCESS);
- urlParts.append(INTERVAL2);
- urlParts.append(SITUARE_LOGIN_FAILURE);
- urlParts.append(FACEBOOK_LOGIN_ENDING);
-
- m_webView->load(QUrl(urlParts.join(EMPTY)));
-
-}
-
void MainWindow::mapCenterHorizontalShiftingChanged(int shifting)
{
m_mapCenterHorizontalShifting = shifting;
return m_email;
}
-
-void MainWindow::webViewRequestFinished(QNetworkReply *reply)
-{
- qDebug() << __PRETTY_FUNCTION__;
-
- // omit QNetworkReply::OperationCanceledError due to it's nature to be called when ever
- // qwebview starts to load a new page while the current page loading is not finished
- if(reply->error() != QNetworkReply::OperationCanceledError &&
- reply->error() != QNetworkReply::NoError) {
- emit error(ErrorContext::NETWORK, reply->error());
- }
-}
******************************************************************************/
public:
/**
- * @brief Clears cookie jar
- *
- */
- void clearCookieJar();
-
- /**
* @brief
*
* @param logged
void loginFailed();
/**
- * @brief Slot to intercept signal when login with cookies is requested
- */
- void loginUsingCookies();
-
- /**
* @brief Public slot, which open settings dialog
*/
void openSettingsDialog();
void buildUserInfoPanel();
/**
- * @brief Build webview and connect slots
- */
- void buildWebView();
-
- /**
* @brief Build zoom button panel and connect slots
*/
void buildZoomButtonPanel();
void gpsTimeout();
/**
- * @brief Slot to load cookies from settings
- */
- void loadCookies();
-
- /**
- * @brief Slot to intercept signal when webview has finished loading webpage
- *
- * @param done Status of the loading
- */
- void loadDone(bool done);
-
- /**
* @brief Called when map center point horizontal shifting is changed
*
* @param shifting New shifting value
*/
void toggleFullScreen();
- /**
- * @brief Slot to intercept signal from webview's networkaccessmanager
- *
- * @param reply Network reply (contains errors)
- */
- void webViewRequestFinished(QNetworkReply* reply);
-
/*******************************************************************************
* SIGNALS
******************************************************************************/
void statusUpdate(const QString &status, const bool &publish);
/**
- * @brief Signals when webview's urlChanged signal is emitted
- *
- * @param url New url
- */
- void updateCredentials(const QUrl &url);
-
- /**
* @brief Signals when updateLocationDialog's data must be cleared
*
*/
QString m_email; ///< Placeholder for email
QString m_password; ///< Placeholder for password
- QWebView *m_webView; ///< Shows facebook login page
-
FacebookLoginBrowser *m_facebookLoginBrowser;
FriendListPanel *m_friendsListPanel; ///< Instance of friends list panel
FullScreenButton *m_fullScreenButton; ///< Instance of the fullscreen toggle button
LocationSearchPanel *m_locationSearchPanel; ///< Location search panel
MapScale *m_mapScale; ///< Instance of the map scale
MapView *m_mapView; ///< Instance of the map view
- NetworkCookieJar *m_cookieJar; ///< Placeholder for QNetworkCookies
RoutingPanel *m_routingPanel; ///< Instance of routing panel
TabbedPanel *m_tabbedPanel; ///< Widget for tabbed panels
UserInfoPanel *m_userInfoPanel; ///< Instance of the user information panel