Reviewed by: Henri Lampela.
{
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);
}
}
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);
}
}
m_gpsPositionPrivate = new GPSPositionPrivate(this);
}
+bool GPSPosition::isInitialized()
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ return m_gpsPositionPrivate->isInitialized();
+}
+
bool GPSPosition::isRunning()
{
qDebug() << __PRETTY_FUNCTION__;
******************************************************************************/
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
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__;
m_gpsSource = QGeoPositionInfoSource::createDefaultSource(this);
if (!m_gpsSource) {
+ m_initialized = false;
emit m_parent->error(123);
return;
}
}
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()));
{
qDebug() << __PRETTY_FUNCTION__;
- if (m_gpsSource && !isRunning()) {
+ if (m_initialized && !isRunning()) {
m_gpsSource->startUpdates();
m_running = true;
}
{
qDebug() << __PRETTY_FUNCTION__;
- if (m_gpsSource && isRunning()) {
+ if (m_initialized && isRunning()) {
m_gpsSource->stopUpdates();
m_running = false;
}
******************************************************************************/
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
private:
QGeoPositionInfoSource *m_gpsSource; ///< GPS position info source
GPSPosition *m_parent; ///< Parent object
+ bool m_initialized; ///< GPS is initialized
bool m_running; ///< GPS is running
int m_updateInterval; ///< GPS update interval
};
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__;
m_liblocationWrapper = new LiblocationWrapper(this);
if (!m_liblocationWrapper) {
+ m_initialized = false;
emit m_parent->error(123); ///Change to correct error code
return;
}
}
if (m_liblocationWrapper) {
+ m_initialized = true;
m_liblocationWrapper->init(m_updateInterval);
connect(m_liblocationWrapper, SIGNAL(locationChanged(const GeoPositionInfo &)),
{
qDebug() << __PRETTY_FUNCTION__;
- if (m_liblocationWrapper && !isRunning()) {
+ if (m_initialized && !isRunning()) {
m_liblocationWrapper->startUpdates();
m_running = true;
}
{
qDebug() << __PRETTY_FUNCTION__;
- if (m_liblocationWrapper && isRunning()) {
+ if (m_initialized && isRunning()) {
m_liblocationWrapper->stopUpdates();
m_running = false;
}
******************************************************************************/
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
private:
LiblocationWrapper *m_liblocationWrapper; ///< Liblocation wrapper object
GPSPosition *m_parent; ///< Parent object
+ bool m_initialized; ///< GPS is initialized
bool m_running; ///< GPS is running
int m_updateInterval; ///< GPS update interval
};
m_parent = static_cast<GPSPosition*>(parent);
}
+bool GPSPositionPrivate::isInitialized()
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ return false;
+}
+
bool GPSPositionPrivate::isRunning()
{
qDebug() << __PRETTY_FUNCTION__;
******************************************************************************/
public:
/**
+ * @brief Returns is GPS initialized.
+ *
+ * RETURNS FALSE
+ * @return true if initialized, false otherwise
+ */
+ bool isInitialized();
+
+ /**
* @brief Checks if GPS is running.
*
* RETURNS FALSE.