connect(this, SIGNAL(friendsLocationsReady(QList<User*>&)),
m_mapEngine, SIGNAL(friendsLocationsReady(QList<User*>&)));
+ initializeGpsAndAutocentering();
+
// signals connected, now it's time to show the main window
// but init the MapEngine before so starting location is set
m_mapEngine->init();
m_ui->show();
- initializeGpsAndAutocentering();
-
m_facebookAuthenticator->start();
}
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"));
-
- m_mapEngine->setZoomLevel(DEFAULT_ZOOM_LEVEL_WHEN_GPS_IS_AVAILABLE);
}
else { // Normal start
m_situareService->updateLocation(m_mapEngine->centerGeoCoordinate(), status, publish);
}
+void SituareEngine::setFirstStartZoomLevel(QPointF latLonCoordinate, qreal accuracy)
+{
+ Q_UNUSED(latLonCoordinate);
+ Q_UNUSED(accuracy);
+
+ 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__;
#define ENGINE_H
#include <QObject>
+#include <QPointF>
class QMainWindow;
void userDataChanged(User *user, QList<User *> &friendsList);
private:
+ /**
+ * @brief Read settings and determine whether to use GPS and autocentering.
+ * When values does not found on the settings, GPS and autocentering are enabled as a default.
+ */
void initializeGpsAndAutocentering();
+
/**
* @brief Connect signals coming from Facdebook authenticator
*/
*/
void signalsFromSituareService();
-private slots:
+private slots:
/**
* @brief Set auto centering feature enabled / disabled
*/
*/
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);
+
/*******************************************************************************
* SIGNALS
******************************************************************************/