changed implementation of setZoomLevel in mapEngine show_gps_location_on_first_start
authorVille Tiensuu <ville.tiensuu@ixonos.com>
Wed, 26 May 2010 10:07:46 +0000 (13:07 +0300)
committerVille Tiensuu <ville.tiensuu@ixonos.com>
Wed, 26 May 2010 10:07:46 +0000 (13:07 +0300)
1  2 
src/common.h
src/engine/engine.cpp
src/engine/engine.h
src/map/mapengine.cpp

diff --cc src/common.h
@@@ -34,6 -34,5 +34,6 @@@ const QColor COLOR_GRAY = QColor(152, 1
  const QFont NOKIA_FONT_NORMAL = QFont("Nokia Sans", 18, QFont::Normal);    ///< Normal font
  const QFont NOKIA_FONT_SMALL = QFont("Nokia Sans", 13, QFont::Normal);     ///< Small font
  
 -const QString ZOOMPANEL_POSITION = "ZoomPanelPosition";
 +const int DEFAULT_ZOOM_LEVEL_WHEN_GPS_IS_AVAILABLE = 12; ///< Default zoom level when GPS available
++const QString ZOOMPANEL_POSITION = "ZoomPanelPosition"; ///< Zoom panel position string
  #endif // COMMON_H
@@@ -152,40 -166,31 +154,62 @@@ void SituareEngine::error(const QStrin
  void SituareEngine::fetchUsernameFromSettings()
  {
      qDebug() << __PRETTY_FUNCTION__;
++
      m_ui->setUsername(m_facebookAuthenticator->loadUsername());
  }
  
 +void SituareEngine::initializeGpsAndAutocentering()
 +{
++    qDebug() << __PRETTY_FUNCTION__;
++
 +    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
 +
 +        connect(m_gps, SIGNAL(position(QPointF,qreal)),
 +                this, SLOT(setFirstStartZoomLevel(QPointF,qreal)));
 +
 +        changeAutoCenteringSetting(true);
 +        enableGPS(true);
 +
 +        m_ui->showMaemoInformationBox(tr("GPS enabled"));
 +        m_ui->showMaemoInformationBox(tr("Auto centering enabled"));
-     }
-     else { // Normal start
++    } else { // Normal start
 +        changeAutoCenteringSetting(autoCenteringEnabled.toBool());
 +        enableGPS(gpsEnabled.toBool());
 +
 +        if (gpsEnabled.toBool())
 +            m_ui->showMaemoInformationBox(tr("GPS enabled"));
 +
 +        if (gpsEnabled.toBool() && autoCenteringEnabled.toBool())
 +            m_ui->showMaemoInformationBox(tr("Auto centering enabled"));        
 +    } 
 +}
 +
- void SituareEngine::loginOk(bool freshLogin)
+ void SituareEngine::invalidCredentials()
+ {
+     qDebug() << __PRETTY_FUNCTION__;
+     m_facebookAuthenticator->clearAccountInformation(true); // keep username = true
+     m_facebookAuthenticator->start();
+ }
+ void SituareEngine::loginActionPressed()
+ {
+     qDebug() << __PRETTY_FUNCTION__;
+     if(m_loggedIn) {
+         logout();
+         m_situareService->clearUserData();
+     }
+     else {
+         m_facebookAuthenticator->start();
+     }
+ }
+ void SituareEngine::loginOk(bool freshLogin, const FacebookCredentials &credentials)
  {
      qDebug() << __PRETTY_FUNCTION__;
  
@@@ -235,18 -253,6 +272,20 @@@ void SituareEngine::requestUpdateLocati
          m_situareService->updateLocation(m_mapEngine->centerGeoCoordinate(), status, publish);
  }
  
 +void SituareEngine::setFirstStartZoomLevel(QPointF latLonCoordinate, qreal accuracy)
 +{
++    qDebug() << __PRETTY_FUNCTION__;
++
 +    Q_UNUSED(latLonCoordinate);
 +    Q_UNUSED(accuracy);
 +
-     if (m_autoCenteringEnabled) // autocentering is disabled when map is scrolled
++    if (m_autoCenteringEnabled) // autocentering is disabled when map is scrolled        
 +        m_mapEngine->setZoomLevel(DEFAULT_ZOOM_LEVEL_WHEN_GPS_IS_AVAILABLE);
 +
 +    disconnect(m_gps, SIGNAL(position(QPointF,qreal)),
 +               this, SLOT(setFirstStartZoomLevel(QPointF,qreal)));
 +}
 +
  void SituareEngine::signalsFromFacebookAuthenticator()
  {
      qDebug() << __PRETTY_FUNCTION__;
@@@ -189,13 -196,10 +203,19 @@@ private slots
      void enableGPS(bool enabled);
  
      /**
 +     * @brief Sets zoom level to default when first GPS location is received if autocentering
 +     * is enabled.
 +     *
 +     * @param latLonCoordinate own location
 +     * @param accuracy accuracy of GPS location
 +     */
 +    void setFirstStartZoomLevel(QPointF latLonCoordinate, qreal accuracy);
++    
++    /**
+     * @brief Slot for intercepting signal when credentials are invalid
+     *
+     */
+     void invalidCredentials();
  
  /*******************************************************************************
   * SIGNALS
@@@ -244,16 -244,16 +244,13 @@@ void MapEngine::init(
      QPointF startLocation;
      QSettings settings(DIRECTORY_NAME, FILE_NAME);
  
--    if (settings.value(MAP_LAST_POSITION, ERROR_VALUE_NOT_FOUND_ON_SETTINGS).toString() ==
--        ERROR_VALUE_NOT_FOUND_ON_SETTINGS ||
--        settings.value(MAP_LAST_ZOOMLEVEL, ERROR_VALUE_NOT_FOUND_ON_SETTINGS).toString() ==
--        ERROR_VALUE_NOT_FOUND_ON_SETTINGS) {
++    if (settings.value(MAP_LAST_POSITION, ERROR_VALUE_NOT_FOUND_ON_SETTINGS).toString()
++        == ERROR_VALUE_NOT_FOUND_ON_SETTINGS || settings.value(MAP_LAST_ZOOMLEVEL,
++        ERROR_VALUE_NOT_FOUND_ON_SETTINGS).toString() == ERROR_VALUE_NOT_FOUND_ON_SETTINGS) {
  
          startLocation = QPointF(DEFAULT_LONGITUDE, DEFAULT_LATITUDE);
          m_zoomLevel = DEFAULT_START_ZOOM_LEVEL;
--    }
--
--    else {
++    } else {
          m_zoomLevel = settings.value(MAP_LAST_ZOOMLEVEL, ERROR_VALUE_NOT_FOUND_ON_SETTINGS).toInt();
          startLocation = settings.value(MAP_LAST_POSITION,
                                         ERROR_VALUE_NOT_FOUND_ON_SETTINGS).toPointF();
@@@ -343,17 -348,6 +345,23 @@@ void MapEngine::setLocation(QPoint scen
      }
  }
  
 +void MapEngine::setZoomLevel(int newZoomLevel)
 +{
-     if (newZoomLevel >= MIN_MAP_ZOOM_LEVEL && newZoomLevel <= MAX_MAP_ZOOM_LEVEL) {
-         while (newZoomLevel > m_zoomLevel)
-             zoomIn();
++    qDebug() << __PRETTY_FUNCTION__;
++
++    m_zoomLevel = newZoomLevel;
++    emit zoomLevelChanged(m_zoomLevel);
++
++//    //if (newZoomLevel >)
++//    if (newZoomLevel >= MIN_MAP_ZOOM_LEVEL && newZoomLevel <= MAX_MAP_ZOOM_LEVEL) {
++//        while (newZoomLevel > m_zoomLevel)
++//            zoomIn();
++//
++//        while (newZoomLevel < m_zoomLevel)
++//            zoomOut();
 +
-         while (newZoomLevel < m_zoomLevel)
-             zoomOut();
-     }
 +}
 +
  void MapEngine::setViewLocation(QPointF latLonCoordinate)
  {
      qDebug() << __PRETTY_FUNCTION__;