Merge branch 'master' into error_procedur
authorlampehe-local <henri.lampela@ixonos.com>
Thu, 10 Jun 2010 12:07:40 +0000 (15:07 +0300)
committerlampehe-local <henri.lampela@ixonos.com>
Thu, 10 Jun 2010 12:07:40 +0000 (15:07 +0300)
Conflicts:
src/gps/gpspositionprivate.cpp
src/gps/gpspositionprivateliblocation.cpp

1  2 
src/engine/engine.cpp
src/gps/gpsposition.h
src/gps/gpspositionprivate.cpp
src/gps/gpspositionprivateliblocation.cpp
src/gps/gpspositionprivatestub.cpp

diff --combined src/engine/engine.cpp
@@@ -23,7 -23,6 +23,7 @@@
   */
  
  #include <QMessageBox>
 +#include <QNetworkReply>
  
  #include "common.h"
  #include "facebookservice/facebookauthentication.h"
@@@ -155,21 -154,29 +155,29 @@@ void SituareEngine::enableGPS(bool enab
  {
      qDebug() << __PRETTY_FUNCTION__;
  
-     m_ui->setGPSButtonEnabled(enabled);
-     m_mapEngine->setGPSEnabled(enabled);
+     if (m_gps->isInitialized()) {
+         m_ui->setGPSButtonEnabled(enabled);
+         m_mapEngine->setGPSEnabled(enabled);
  
-     if (enabled && !m_gps->isRunning()) {
-         m_gps->start();
-         enableAutoCentering(m_autoCenteringEnabled);
-         m_gps->requestLastPosition();
+         if (enabled && !m_gps->isRunning()) {
+             m_gps->start();
+             enableAutoCentering(m_autoCenteringEnabled);
+             m_gps->requestLastPosition();
  
-         if (!m_automaticUpdateEnabled && m_loggedIn)
-             m_ui->requestAutomaticLocationUpdateSettings();
+             if (!m_automaticUpdateEnabled && m_loggedIn)
+                 m_ui->requestAutomaticLocationUpdateSettings();
+         }
+         else if (!enabled && m_gps->isRunning()) {
+             m_gps->stop();
+             enableAutoCentering(false);
+             enableAutomaticLocationUpdate(false);
+         }
      }
-     else if (!enabled && m_gps->isRunning()) {
-         m_gps->stop();
-         enableAutoCentering(false);
-         enableAutomaticLocationUpdate(false);
+     else {
+         if (enabled)
+             m_ui->buildInformationBox(tr("Unable to start GPS"));
+         m_ui->setGPSButtonEnabled(false);
+         m_mapEngine->setGPSEnabled(false);
      }
  }
  
@@@ -201,52 -208,13 +209,52 @@@ void SituareEngine::enableAutomaticLoca
      }
  }
  
 -void SituareEngine::error(const QString &error)
 +void SituareEngine::error(const int error)
  {
      qDebug() << __PRETTY_FUNCTION__;    
  
 -    m_ui->buildInformationBox(error, true);
 +    switch(error)
 +    {
 +    case QNetworkReply::ConnectionRefusedError:
 +        m_ui->buildInformationBox(tr("Connection refused by the server"), true);
 +        break;
 +    case QNetworkReply::RemoteHostClosedError:
 +        m_ui->buildInformationBox(tr("Connection closed by the server"), true);
 +        break;
 +    case QNetworkReply::HostNotFoundError:
 +        m_ui->buildInformationBox(tr("Remote server not found"), true);
 +        break;
 +    case QNetworkReply::TimeoutError:
 +        m_ui->buildInformationBox(tr("Connection timed out"), true);
 +        break;
 +    case SituareError::SESSION_EXPIRED:
 +        m_ui->buildInformationBox(tr("Session expired. Please login again"), true);
 +        break;
 +    case SituareError::LOGIN_FAILED:
 +        m_ui->buildInformationBox(tr("Invalid E-mail address or password"), true);
 +        break;
 +    case SituareError::UPDATE_FAILED:
 +        m_ui->buildInformationBox(tr("Update failed, please try again"), true);
 +        break;
 +    case SituareError::DATA_RETRIEVAL_FAILED:
 +        m_ui->buildInformationBox(tr("Data retrieval failed, please try again"), true);
 +        break;
 +    case SituareError::ADDRESS_RETRIEVAL_FAILED:
 +        m_ui->buildInformationBox(tr("Address retrieval failed, please try again"), true);
 +        break;
 +    case SituareError::DOWNLOAD_FAILED:
 +        m_ui->buildInformationBox(tr("Image download failed"), true);
 +        break;
 +    case SituareError::GPS_INITIALIZATION_FAILED:
 +        enableGPS(false);
 +        m_ui->buildInformationBox(tr("GPS initialization failed"), true);
 +        break;
 +    default:
 +        qCritical() << "QNetworkReply::NetworkError :" << error;
 +        break;
 +    }
  
 -    if(error.compare(SESSION_EXPIRED) == 0) {
 +    if(error == SituareError::SESSION_EXPIRED) {
          m_facebookAuthenticator->clearAccountInformation(true); // keep username = true
          m_ui->loggedIn(false);
          m_ui->loginFailed();
@@@ -266,28 -234,33 +274,33 @@@ void SituareEngine::initializeGpsAndAut
  
      QSettings settings(DIRECTORY_NAME, FILE_NAME);
      QVariant gpsEnabled = settings.value(SETTINGS_GPS_ENABLED);
-     QVariant autoCenteringEnabled = settings.value(SETTINGS_AUTO_CENTERING_ENABLED);     
-     if (gpsEnabled.toString().isEmpty()) { // First start. Situare.conf file does not exists
+     QVariant autoCenteringEnabled = settings.value(SETTINGS_AUTO_CENTERING_ENABLED);
  
-         connect(m_gps, SIGNAL(position(QPointF,qreal)),
-                 this, SLOT(setFirstStartZoomLevel(QPointF,qreal)));
+     if (m_gps->isInitialized()) {
  
-         changeAutoCenteringSetting(true);
-         enableGPS(true);
+         if (gpsEnabled.toString().isEmpty()) { // First start. Situare.conf file does not exists
  
-         m_ui->buildInformationBox(tr("GPS enabled"));
-         m_ui->buildInformationBox(tr("Auto centering enabled"));
+             connect(m_gps, SIGNAL(position(QPointF,qreal)),
+                     this, SLOT(setFirstStartZoomLevel(QPointF,qreal)));
  
-     } else { // Normal start
-         changeAutoCenteringSetting(autoCenteringEnabled.toBool());
-         enableGPS(gpsEnabled.toBool());
+             changeAutoCenteringSetting(true);
+             enableGPS(true);
  
-         if (gpsEnabled.toBool())
              m_ui->buildInformationBox(tr("GPS enabled"));
-         if (gpsEnabled.toBool() && autoCenteringEnabled.toBool())
              m_ui->buildInformationBox(tr("Auto centering enabled"));
+         } else { // Normal start
+             changeAutoCenteringSetting(autoCenteringEnabled.toBool());
+             enableGPS(gpsEnabled.toBool());
+             if (gpsEnabled.toBool())
+                 m_ui->buildInformationBox(tr("GPS enabled"));
+             if (gpsEnabled.toBool() && autoCenteringEnabled.toBool())
+                 m_ui->buildInformationBox(tr("Auto centering enabled"));
+         }
+     } else {
+         enableGPS(false);
      }
  }
  
@@@ -407,8 -380,8 +420,8 @@@ void SituareEngine::signalsFromFacebook
  {
      qDebug() << __PRETTY_FUNCTION__;
  
 -    connect(m_facebookAuthenticator, SIGNAL(error(QString)),
 -            this, SLOT(error(QString)));
 +    connect(m_facebookAuthenticator, SIGNAL(error(int)),
 +            this, SLOT(error(int)));
  
      connect(m_facebookAuthenticator, SIGNAL(credentialsReady(FacebookCredentials)),
              m_situareService, SLOT(credentialsReady(FacebookCredentials)));
@@@ -439,8 -412,8 +452,8 @@@ void SituareEngine::signalsFromGPS(
      connect(m_gps, SIGNAL(timeout()),
              m_ui, SLOT(gpsTimeout()));
  
 -    connect(m_gps, SIGNAL(error(QString)),
 -            this, SLOT(error(QString)));
 +    connect(m_gps, SIGNAL(error(int)),
 +            this, SLOT(error(int)));
  
      connect(m_gps, SIGNAL(position(QPointF,qreal)),
              this, SLOT(saveGPSPosition(QPointF)));
@@@ -450,9 -423,6 +463,9 @@@ void SituareEngine::signalsFromMainWind
  {
      qDebug() << __PRETTY_FUNCTION__;    
  
 +    connect(m_ui, SIGNAL(error(int)),
 +            this, SLOT(error(int)));
 +
      connect(m_ui, SIGNAL(fetchUsernameFromSettings()),
              this, SLOT(fetchUsernameFromSettings()));
  
      connect(m_ui, SIGNAL(refreshUserData()),
              this, SLOT(refreshUserData()));
  
 -    connect (m_ui, SIGNAL(notificateUpdateFailing(QString)),
 -             this, SLOT(error(QString)));
 -
      connect(m_ui, SIGNAL(findUser(QPointF)),
              m_mapEngine, SLOT(setViewLocation(QPointF)));
  
@@@ -518,8 -491,8 +531,8 @@@ void SituareEngine::signalsFromMapEngin
  {
      qDebug() << __PRETTY_FUNCTION__;
  
 -    connect(m_mapEngine, SIGNAL(error(QString)),
 -            this, SLOT(error(QString)));
 +    connect(m_mapEngine, SIGNAL(error(int)),
 +            this, SLOT(error(int)));
  
      connect(m_mapEngine, SIGNAL(locationChanged(QPoint)),
              m_ui, SIGNAL(centerToSceneCoordinates(QPoint)));
@@@ -547,8 -520,8 +560,8 @@@ void SituareEngine::signalsFromSituareS
  {
      qDebug() << __PRETTY_FUNCTION__;
  
 -    connect(m_situareService, SIGNAL(error(QString)),
 -            this, SLOT(error(QString)));
 +    connect(m_situareService, SIGNAL(error(int)),
 +            this, SLOT(error(int)));
  
      connect(m_situareService, SIGNAL(reverseGeoReady(QString)),
              m_ui, SIGNAL(reverseGeoReady(QString)));
      connect(m_situareService, SIGNAL(updateWasSuccessful()),
              m_ui, SIGNAL(updateWasSuccessful()));
  
 -    connect(m_situareService, SIGNAL(error(QString)),
 -            m_ui, SIGNAL(messageSendingFailed(QString)));
 +    connect(m_situareService, SIGNAL(error(int)),
 +            m_ui, SIGNAL(messageSendingFailed(int)));
  }
  
  void SituareEngine::updateWasSuccessful()
diff --combined src/gps/gpsposition.h
@@@ -57,6 -57,13 +57,13 @@@ public
  ******************************************************************************/
  public:
      /**
+     * @brief Returns is GPS initialized.
+     *
+     * @return true if initialized, false otherwise
+     */
+     bool isInitialized();
+     /**
      * @brief Checks if GPS is running.
      *
      * @return true if GPS running, false otherwise
@@@ -106,9 -113,9 +113,9 @@@ signals
      /**
      * @brief Signal for error.
      *
 -    * @param message error code
 +    * @param error error code
      */
 -    void error(int code);
 +    void error(const int error);
  
      /**
      * @brief Signal for position information.
@@@ -25,7 -25,6 +25,7 @@@
  #include <QDebug>
  #include <QTimer>
  
 +#include "common.h"
  #include "gpscommon.h"
  #include "gpsposition.h"
  #include "gpspositionprivate.h"
@@@ -33,6 -32,7 +33,7 @@@
  GPSPositionPrivate::GPSPositionPrivate(QObject *parent)
      : QObject(parent),
        m_gpsSource(0),
+       m_initialized(false),
        m_running(false),
        m_updateInterval(DEFAULT_UPDATE_INTERVAL)
  {
      m_parent = static_cast<GPSPosition*>(parent);
  }
  
+ bool GPSPositionPrivate::isInitialized()
+ {
+     qDebug() << __PRETTY_FUNCTION__;
+     return m_initialized;
+ }
  void GPSPositionPrivate::setMode(GPSPosition::Mode mode, const QString &filePath)
  {
      qDebug() << __PRETTY_FUNCTION__;
@@@ -54,7 -61,8 +62,8 @@@
          m_gpsSource = QGeoPositionInfoSource::createDefaultSource(this);
  
          if (!m_gpsSource) {
+             m_initialized = false;
 -            emit m_parent->error(123);
 +            emit m_parent->error(SituareError::GPS_INITIALIZATION_FAILED);
              return;
          }
      }
@@@ -68,6 -76,7 +77,7 @@@
      }
  
      if (m_gpsSource) {
+         m_initialized = true;
          connect(m_gpsSource, SIGNAL(positionUpdated(const QGeoPositionInfo &)),
                  this, SLOT(positionUpdated(const QGeoPositionInfo &)));
          connect(m_gpsSource, SIGNAL(updateTimeout()), this, SLOT(updateTimeout()));
@@@ -80,7 -89,7 +90,7 @@@ void GPSPositionPrivate::start(
  {
      qDebug() << __PRETTY_FUNCTION__;
  
-     if (m_gpsSource && !isRunning()) {
+     if (m_initialized && !isRunning()) {
          m_gpsSource->startUpdates();
          m_running = true;
      }
@@@ -90,7 -99,7 +100,7 @@@ void GPSPositionPrivate::stop(
  {
      qDebug() << __PRETTY_FUNCTION__;
  
-     if (m_gpsSource && isRunning()) {
+     if (m_initialized && isRunning()) {
          m_gpsSource->stopUpdates();
          m_running = false;
      }
@@@ -25,7 -25,6 +25,7 @@@
  #include <QDebug>
  #include <QTimer>
  
 +#include "common.h"
  #include "gpscommon.h"
  #include "gpsposition.h"
  #include "gpspositionprivateliblocation.h"
@@@ -34,6 -33,7 +34,7 @@@
  GPSPositionPrivate::GPSPositionPrivate(QObject *parent)
      : QObject(parent),
        m_liblocationWrapper(0),
+       m_initialized(false),
        m_running(false),
        m_updateInterval(DEFAULT_UPDATE_INTERVAL)
  {
      m_parent = static_cast<GPSPosition*>(parent);
  }
  
+ bool GPSPositionPrivate::isInitialized()
+ {
+     qDebug() << __PRETTY_FUNCTION__;
+     return m_initialized;
+ }
  void GPSPositionPrivate::setMode(GPSPosition::Mode mode, const QString &filePath)
  {
      qDebug() << __PRETTY_FUNCTION__;
      if (mode == GPSPosition::Default) {
          m_liblocationWrapper = new LiblocationWrapper(this);
  
--        if (!m_liblocationWrapper) {
++        if (!m_liblocationWrapper) {     
+             m_initialized = false;
 -            emit m_parent->error(123);  ///Change to correct error code
 +            emit m_parent->error(SituareError::GPS_INITIALIZATION_FAILED);
              return;
          }
      }
  
      if (m_liblocationWrapper) {
+         m_initialized = true;
          m_liblocationWrapper->init(m_updateInterval);
  
          connect(m_liblocationWrapper, SIGNAL(locationChanged(const GeoPositionInfo &)),
@@@ -76,7 -85,7 +86,7 @@@ void GPSPositionPrivate::start(
  {
      qDebug() << __PRETTY_FUNCTION__;
  
-     if (m_liblocationWrapper && !isRunning()) {
+     if (m_initialized && !isRunning()) {
          m_liblocationWrapper->startUpdates();
          m_running = true;
      }
@@@ -86,7 -95,7 +96,7 @@@ void GPSPositionPrivate::stop(
  {
      qDebug() << __PRETTY_FUNCTION__;
  
-     if (m_liblocationWrapper && isRunning()) {
+     if (m_initialized && isRunning()) {
          m_liblocationWrapper->stopUpdates();
          m_running = false;
      }
@@@ -138,7 -147,7 +148,7 @@@ void GPSPositionPrivate::locationError(
  
      Q_UNUSED(errorMessage);
  
 -    emit m_parent->error(123);
 +    emit m_parent->error(SituareError::GPS_INITIALIZATION_FAILED);
  }
  
  void GPSPositionPrivate::setUpdateInterval(int interval)
@@@ -21,7 -21,6 +21,7 @@@
  
  #include <QDebug>
  
 +#include "common.h"
  #include "gpsposition.h"
  #include "gpspositionprivatestub.h"
  
@@@ -33,6 -32,13 +33,13 @@@ GPSPositionPrivate::GPSPositionPrivate(
      m_parent = static_cast<GPSPosition*>(parent);
  }
  
+ bool GPSPositionPrivate::isInitialized()
+ {
+     qDebug() << __PRETTY_FUNCTION__;
+     return false;
+ }
  bool GPSPositionPrivate::isRunning()
  {
      qDebug() << __PRETTY_FUNCTION__;
@@@ -59,7 -65,7 +66,7 @@@ void GPSPositionPrivate::start(
  {
      qDebug() << __PRETTY_FUNCTION__;
  
 -    emit m_parent->error(123);
 +    emit m_parent->error(SituareError::GPS_INITIALIZATION_FAILED);
  }
  
  void GPSPositionPrivate::stop()