Finalized login using cookies cookies_refactored
authorlampehe-local <henri.lampela@ixonos.com>
Mon, 31 May 2010 11:31:28 +0000 (14:31 +0300)
committerlampehe-local <henri.lampela@ixonos.com>
Mon, 31 May 2010 11:31:28 +0000 (14:31 +0300)
Reviewed by: Marko Niemelä

src/engine/engine.cpp
src/facebookservice/facebookauthentication.cpp
src/facebookservice/facebookauthentication.h
src/ui/logindialog.cpp
src/ui/logindialog.h
src/ui/mainwindow.cpp
src/ui/mainwindow.h

index 54d794a..faa08cc 100644 (file)
@@ -43,7 +43,7 @@ SituareEngine::SituareEngine(QMainWindow *parent)
 {
     qDebug() << __PRETTY_FUNCTION__;
     m_ui = new MainWindow;
-    m_ui->showPanels(m_loggedIn);
+    m_ui->updateItemVisibility(m_loggedIn);
 
     // build MapEngine
     m_mapEngine = new MapEngine(this);
@@ -233,7 +233,7 @@ void SituareEngine::loginProcessCancelled()
     qDebug() << __PRETTY_FUNCTION__;
 
     m_ui->toggleProgressIndicator(false);
-    m_ui->showPanels(m_loggedIn);
+    m_ui->updateItemVisibility(m_loggedIn);
 }
 
 void SituareEngine::logout()
index 1eefd6f..c16012d 100644 (file)
@@ -58,13 +58,6 @@ void FacebookAuthentication::clearAccountInformation(bool keepUsername)
     settings.remove(COOKIES);
 }
 
-QUrl FacebookAuthentication::formLoginPageUrl(const QStringList &urlParts) const
-{
-   qDebug() << __PRETTY_FUNCTION__;
-
-   return QUrl(urlParts.join(EMPTY));
-}
-
 const QString FacebookAuthentication::loadUsername()
 {
     qDebug() << __PRETTY_FUNCTION__;
@@ -91,23 +84,23 @@ void FacebookAuthentication::start()
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    QStringList list;
-    list.append(FACEBOOK_LOGINBASE);
-    list.append(SITUARE_PUBLIC_FACEBOOKAPI_KEY);
-    list.append(INTERVAL1);
-    list.append(SITUARE_LOGIN_SUCCESS);
-    list.append(INTERVAL2);
-    list.append(SITUARE_LOGIN_FAILURE);
-    list.append(FACEBOOK_LOGIN_ENDING);
-
     QSettings settings(DIRECTORY_NAME, FILE_NAME);
 
-    QString cookies = settings.value(COOKIES, EMPTY).toString();
+    QStringList cookies = settings.value(COOKIES).toStringList();
     if(!cookies.isEmpty()) {
         emit loginUsingCookies();
     }
     else {
-        emit newLoginRequest(formLoginPageUrl(list));
+        QStringList list;
+        list.append(FACEBOOK_LOGINBASE);
+        list.append(SITUARE_PUBLIC_FACEBOOKAPI_KEY);
+        list.append(INTERVAL1);
+        list.append(SITUARE_LOGIN_SUCCESS);
+        list.append(INTERVAL2);
+        list.append(SITUARE_LOGIN_FAILURE);
+        list.append(FACEBOOK_LOGIN_ENDING);
+
+        emit newLoginRequest(list.join(EMPTY));
     }
 }
 
index ba32fef..980e57d 100644 (file)
@@ -89,16 +89,6 @@ public slots:
     */
     void start();
 
-private: 
-
-    /**
-    * @brief Creates login url with given parameters
-    *
-    * @param urlParts Url parts
-    * @return QUrl Login page url
-    */
-    QUrl formLoginPageUrl(const QStringList & urlParts) const;
-
 private slots:
 
     /**
index 545d9aa..a274a80 100644 (file)
@@ -49,21 +49,13 @@ LoginDialog::LoginDialog(QWidget *parent)
     gridLayout->addWidget(buttonBox, 0, 1, 1, 1);
 
     connect(connectButton, SIGNAL(clicked()),
-            this, SLOT(connectPressed()));
+            this, SLOT(accept()));
     connect(cancelButton, SIGNAL(clicked()),
             this, SLOT(reject()));
 
     setLayout(gridLayout);
 }
 
-void LoginDialog::connectPressed()
-{
-    qDebug() << __PRETTY_FUNCTION__;
-
-    emit loginDialogDone(m_emailEdit->text(), m_passwordEdit->text());
-    accept();
-}
-
 void LoginDialog::setEmailField(const QString &email)
 {
     qDebug() << __PRETTY_FUNCTION__;
@@ -83,3 +75,11 @@ void LoginDialog::clearTextFields()
     m_passwordEdit->setText("");
 
 }
+
+void LoginDialog::userInput(QString &email, QString &password)
+{
+    qDebug() << __PRETTY_FUNCTION__;
+
+    email = m_emailEdit->text();
+    password = m_passwordEdit->text();
+}
index b47d876..15e6c12 100644 (file)
@@ -48,6 +48,14 @@ public:
     */
     LoginDialog(QWidget *parent = 0);
 
+    /**
+    * @brief Gets email and password
+    *
+    * @param email Email address
+    * @param password Password
+    */
+    void userInput(QString &email, QString &password);
+
 /*******************************************************************************
  * MEMBER FUNCTIONS AND SLOTS
  ******************************************************************************/
@@ -67,24 +75,6 @@ public slots:
     */
     void clearTextFields();
 
-private slots:
-
-    /**
-    * @brief Private slot for connect button
-    *
-    */
-    void connectPressed();
-
-signals:
-
-    /**
-    * @brief Signal for sending email and password to facebookauthentication class
-    *
-    * @param email E-mail
-    * @param password Password
-    */
-    void loginDialogDone(const QString &email, const QString &password);
-
 /*******************************************************************************
  * DATA MEMBERS
  ******************************************************************************/
index b09f7d3..09caf30 100644 (file)
@@ -58,7 +58,6 @@ MainWindow::MainWindow(QWidget *parent)
     m_email(),    
     m_password(),
     m_webView(0),
-    m_loginDialog(0),
     m_cookieJar(0)
 {
     qDebug() << __PRETTY_FUNCTION__;
@@ -127,18 +126,6 @@ void MainWindow::buildFriendListPanel()
             m_friendsListPanelSidebar, SLOT(reDrawSidebar(int, int)));
 }
 
-void MainWindow::buildLoginDialog()
-{
-    qDebug() << __PRETTY_FUNCTION__;
-
-    if(!m_loginDialog) {
-        m_loginDialog = new LoginDialog(this);
-
-        connect(m_loginDialog, SIGNAL(loginDialogDone(QString,QString)),
-                this, SLOT(loginDialogDone(QString,QString)));
-    }
-}
-
 void MainWindow::buildManualLocationCrosshair()
 {
     qDebug() << __PRETTY_FUNCTION__;
@@ -411,21 +398,20 @@ void MainWindow::loadCookies()
 
     QSettings settings(DIRECTORY_NAME, FILE_NAME);
 
-    QString cookies = settings.value(COOKIES, EMPTY).toString();
-    if(!cookies.isEmpty()) {
-        QStringList list = cookies.split("|");
-        list.removeDuplicates();
-        QList<QNetworkCookie> cookieList;
+    QStringList list = settings.value(COOKIES, EMPTY).toStringList();
 
+    if(!list.isEmpty()) {
+        QList<QNetworkCookie> cookieList;
         for(int i=0;i<list.count();i++) {
-            QNetworkCookie tmpCookie;
-            cookieList.append(tmpCookie.parseCookies(list.at(i).toAscii()));
+            cookieList.append(QNetworkCookie::parseCookies(list.at(i).toAscii()));
         }
+
         if(!m_cookieJar)
-            m_cookieJar = new NetworkCookieJar(new QNetworkCookieJar(this));
+               m_cookieJar = new NetworkCookieJar(new QNetworkCookieJar(this));
 
         m_cookieJar->setAllCookies(cookieList);
         m_webView->page()->networkAccessManager()->setCookieJar(m_cookieJar);
+
     }
 }
 
@@ -487,20 +473,9 @@ void MainWindow::loggedIn(bool logged)
         m_email.clear();
         m_password.clear();
 
-        if(m_loginDialog)
-            m_loginDialog->clearTextFields();
-
         m_loginAct->setText(tr("Login"));
     }
-    showPanels(m_loggedIn);
-}
-
-void MainWindow::loginDialogDone(const QString &email, const QString &password)
-{
-    qDebug() << __PRETTY_FUNCTION__;
-
-    m_email = email;
-    m_password = password;
+    updateItemVisibility(m_loggedIn);
 }
 
 void MainWindow::loginFailed()
@@ -574,7 +549,7 @@ void MainWindow::saveCookies()
     list.removeDuplicates();
 
     QSettings settings(DIRECTORY_NAME, FILE_NAME);
-    settings.setValue(COOKIES, list.join("|"));
+    settings.setValue(COOKIES, list);
 }
 
 void MainWindow::setAutoCenteringButtonEnabled(bool enabled)
@@ -641,12 +616,12 @@ void MainWindow::showMaemoInformationBox(const QString &message, bool modal)
         QMaemo5InformationBox::information(this, message, QMaemo5InformationBox::DefaultTimeout);
     }
 #else
-    Q_UNUSED(message);
     Q_UNUSED(modal);
+    QMessageBox::information(this, tr("Situare"), message, QMessageBox::Ok);
 #endif
 }
 
-void MainWindow::showPanels(bool show)
+void MainWindow::updateItemVisibility(bool show)
 {
     qDebug() << __PRETTY_FUNCTION__;
     if(show) {
@@ -654,6 +629,9 @@ void MainWindow::showPanels(bool show)
         m_friendsListPanelSidebar->show();
         m_userPanel->show();
         m_userPanelSidebar->show();
+
+        if(m_drawOwnLocationCrosshair)
+            m_ownLocationCrosshair->show();
     }
     else {
         m_friendsListPanel->closePanel();
@@ -662,6 +640,8 @@ void MainWindow::showPanels(bool show)
         m_userPanel->closePanel();
         m_userPanel->hide();
         m_userPanelSidebar->hide();
+
+        m_ownLocationCrosshair->hide();
     }
 }
 
@@ -670,7 +650,8 @@ void MainWindow::startLoginProcess(const QUrl &url)
     qDebug() << __PRETTY_FUNCTION__;
 
     buildWebView();
-    buildLoginDialog();
+
+    LoginDialog loginDialog;
 
     emit fetchUsernameFromSettings();
 
@@ -679,19 +660,19 @@ void MainWindow::startLoginProcess(const QUrl &url)
 
     m_webView->page()->networkAccessManager()->setCookieJar(m_cookieJar);
 
-    m_loginDialog->clearTextFields();
+    loginDialog.clearTextFields();
 
-    if(!m_email.isEmpty()) {
-        m_loginDialog->setEmailField(m_email);
-    }
+    if(!m_email.isEmpty())
+        loginDialog.setEmailField(m_email);
 
-    if(m_loginDialog->exec() != QDialog::Accepted) {
+    if(loginDialog.exec() != QDialog::Accepted) {
         // if login dialog was canceled we need to stop processing webview
         m_webView->stop();
 
         emit cancelLoginProcess();
     }
     else {
+        loginDialog.userInput(m_email, m_password);
         m_webView->load(url);
         toggleProgressIndicator(true);
         m_refresh = true;
index 9e37b6a..0f890de 100644 (file)
@@ -36,7 +36,6 @@ class QWebView;
 
 class FacebookAuthentication;
 class FriendListPanel;
-class LoginDialog;
 class MapScene;
 class MapView;
 class SituareService;
@@ -130,13 +129,6 @@ public:
     const QString username();
 
 public slots:
-    /**
-    * @brief Slot to intercept signal when user has pressed connect button from loginDialog
-    *
-    * @param email E-mail
-    * @param password Password
-    */
-    void loginDialogDone(const QString &email, const QString &password);
 
     /**
     * @brief Slot to intercept signal when login has failed (loginFailure signal)
@@ -163,11 +155,11 @@ public slots:
     void setUsername(const QString &username);
 
     /**
-    * @brief
+    * @brief Shows / hides Situare related UI items
     *
     * @param show
     */
-    void showPanels(bool show);
+    void updateItemVisibility(bool show);
 
     /**
     * @brief Public slot to intercept signal when old cerdentials are invalid or credentials
@@ -191,12 +183,6 @@ private:
     void buildFriendListPanel();
 
     /**
-    * @brief Build login dialog and connect slots
-    *
-    */
-    void buildLoginDialog();
-
-    /**
       * @brief Build manual location setting cross hair and connect slots
       */
     void buildManualLocationCrosshair();
@@ -487,7 +473,6 @@ private:
     QWebView *m_webView;                    ///< Shows facebook login page
 
     FriendListPanel *m_friendsListPanel;    ///< Instance of friends list panel
-    LoginDialog *m_loginDialog;             ///< Login dialog
     MapView *m_mapView;                     ///< Instance of the map view
     NetworkCookieJar *m_cookieJar;          ///< Placeholder for QNetworkCookies
     PanelSideBar *m_userPanelSidebar;       ///< User panel side bar