m_loggedIn(false),
m_automaticUpdateIntervalTimer(0),
m_lastUpdatedGPSPosition(QPointF()),
- m_userMoved(false)
+ m_userMoved(false),
+ m_automaticUpdateEnabled(false)
{
qDebug() << __PRETTY_FUNCTION__;
m_ui = new MainWindow;
connect(this, SIGNAL(friendsLocationsReady(QList<User*>&)),
m_mapEngine, SIGNAL(friendsLocationsReady(QList<User*>&)));
+ m_automaticUpdateIntervalTimer = new QTimer(this);
+ connect(m_automaticUpdateIntervalTimer, SIGNAL(timeout()),
+ this, SLOT(automaticUpdateIntervalTimerTimeout()));
+
// 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_facebookAuthenticator->start();
initializeGpsAndAutocentering();
-
- m_automaticUpdateIntervalTimer = new QTimer(this);
- connect(m_automaticUpdateIntervalTimer, SIGNAL(timeout()),
- this, SLOT(automaticUpdateIntervalTimerTimeout()));
}
SituareEngine::~SituareEngine()
qWarning() << __PRETTY_FUNCTION__;
if (m_gps->isRunning() && m_userMoved) {
-// requestUpdateLocation();
- qWarning() << __PRETTY_FUNCTION__ << "requestUpdateLocation()";
+ requestUpdateLocation();
m_userMoved = false;
}
}
m_gps->start();
enableAutoCentering(m_autoCenteringEnabled);
m_gps->requestLastPosition();
+
+ if (!m_automaticUpdateEnabled && m_loggedIn)
+ m_ui->requestAutomaticLocationUpdateSettings();
}
else if (!enabled && m_gps->isRunning()) {
m_gps->stop();
enableAutoCentering(false);
+ enableAutomaticLocationUpdate(false);
}
}
void SituareEngine::enableAutomaticLocationUpdate(bool enabled, int updateIntervalMsecs)
{
- qWarning() << __PRETTY_FUNCTION__ << enabled;
+ qDebug() << __PRETTY_FUNCTION__;
bool accepted = true;
- if (m_automaticUpdateFirstStart && enabled) {
+ m_automaticUpdateEnabled = enabled;
+
+ if (m_automaticUpdateFirstStart && m_gps->isRunning() && m_automaticUpdateEnabled) {
accepted = m_ui->showEnableAutomaticUpdateLocationDialog(
tr("Do you want to enable automatic location update with %1 min update interval?")
.arg(updateIntervalMsecs/1000/60));
- qWarning() << __PRETTY_FUNCTION__ << "Accepted" << accepted;
m_automaticUpdateFirstStart = false;
m_ui->automaticLocationUpdateEnabled(accepted);
}
}
- if (accepted && m_gps->isRunning() && enabled) {
+ if (!m_automaticUpdateFirstStart && m_automaticUpdateEnabled && accepted)
+ m_ui->buildInformationBox(tr("Automatic location update enabled"));
+
+ if (accepted && m_gps->isRunning() && m_automaticUpdateEnabled) {
if (updateIntervalMsecs < MIN_UPDATE_INTERVAL_MSECS)
- m_automaticUpdateIntervalTimer->setInterval(MIN_UPDATE_INTERVAL_MSECS / 60);
+ m_automaticUpdateIntervalTimer->setInterval(MIN_UPDATE_INTERVAL_MSECS);
else
- m_automaticUpdateIntervalTimer->setInterval(updateIntervalMsecs / 60);
+ m_automaticUpdateIntervalTimer->setInterval(updateIntervalMsecs);
m_automaticUpdateIntervalTimer->start();
m_ui->show();
m_situareService->fetchLocations(); // request user locations
- m_ui->requestAutomaticLocationUpdateSettings();
+
+ if (m_gps->isRunning())
+ m_ui->requestAutomaticLocationUpdateSettings();
}
void SituareEngine::loginProcessCancelled()