mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Location service: toggle the service from the main menu
That way we don't track the user's location until explicitly asked to do so. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
a29e74e2e9
commit
cd7d6ae6e5
5 changed files with 46 additions and 0 deletions
|
@ -22,6 +22,21 @@ GpsLocation::GpsLocation(QObject *parent)
|
||||||
status("don't have GPS source");
|
status("don't have GPS source");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GpsLocation::serviceEnable(bool toggle)
|
||||||
|
{
|
||||||
|
if (!gpsSource)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (toggle) {
|
||||||
|
gpsSource->startUpdates();
|
||||||
|
status("Starting Subsurface GPS service");
|
||||||
|
} else {
|
||||||
|
gpsSource->stopUpdates();
|
||||||
|
status("Stopping Subsurface GPS service");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void GpsLocation::newPosition(QGeoPositionInfo pos)
|
void GpsLocation::newPosition(QGeoPositionInfo pos)
|
||||||
{
|
{
|
||||||
QString msg("received new position %1");
|
QString msg("received new position %1");
|
||||||
|
|
|
@ -20,6 +20,7 @@ private:
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
void serviceEnable(bool toggle);
|
||||||
void newPosition(QGeoPositionInfo pos);
|
void newPosition(QGeoPositionInfo pos);
|
||||||
void updateTimeout();
|
void updateTimeout();
|
||||||
};
|
};
|
||||||
|
|
|
@ -69,6 +69,15 @@ ApplicationWindow {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MenuItem {
|
||||||
|
text: "Run location service"
|
||||||
|
checkable: true
|
||||||
|
checked: manager.locationServiceEnabled
|
||||||
|
onToggled: {
|
||||||
|
manager.setLocationServiceEnabled(checked);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
MenuItem {
|
MenuItem {
|
||||||
text: "View Log"
|
text: "View Log"
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
|
|
|
@ -19,6 +19,7 @@ QMLManager::QMLManager()
|
||||||
{
|
{
|
||||||
// create location manager service
|
// create location manager service
|
||||||
locationProvider = new GpsLocation(this);
|
locationProvider = new GpsLocation(this);
|
||||||
|
setLocationServiceEnabled(false);
|
||||||
|
|
||||||
// Initialize cloud credentials.
|
// Initialize cloud credentials.
|
||||||
setCloudUserName(prefs.cloud_storage_email);
|
setCloudUserName(prefs.cloud_storage_email);
|
||||||
|
@ -174,6 +175,16 @@ void QMLManager::setSaveCloudPassword(bool saveCloudPassword)
|
||||||
m_saveCloudPassword = saveCloudPassword;
|
m_saveCloudPassword = saveCloudPassword;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool QMLManager::locationServiceEnabled() const
|
||||||
|
{
|
||||||
|
return m_locationServiceEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
void QMLManager::setLocationServiceEnabled(bool locationServiceEnabled)
|
||||||
|
{
|
||||||
|
m_locationServiceEnabled = locationServiceEnabled;
|
||||||
|
locationProvider->serviceEnable(m_locationServiceEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
QString QMLManager::cloudPassword() const
|
QString QMLManager::cloudPassword() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
|
#include "qt-mobile/gpslocation.h"
|
||||||
|
|
||||||
void qmlUiShowMessage(const char *errorString);
|
void qmlUiShowMessage(const char *errorString);
|
||||||
|
|
||||||
class QMLManager : public QObject
|
class QMLManager : public QObject
|
||||||
|
@ -13,6 +15,7 @@ class QMLManager : public QObject
|
||||||
Q_PROPERTY(QString cloudPassword READ cloudPassword WRITE setCloudPassword NOTIFY cloudPasswordChanged)
|
Q_PROPERTY(QString cloudPassword READ cloudPassword WRITE setCloudPassword NOTIFY cloudPasswordChanged)
|
||||||
Q_PROPERTY(bool saveCloudPassword READ saveCloudPassword WRITE setSaveCloudPassword NOTIFY saveCloudPasswordChanged)
|
Q_PROPERTY(bool saveCloudPassword READ saveCloudPassword WRITE setSaveCloudPassword NOTIFY saveCloudPasswordChanged)
|
||||||
Q_PROPERTY(QString logText READ logText WRITE setLogText NOTIFY logTextChanged)
|
Q_PROPERTY(QString logText READ logText WRITE setLogText NOTIFY logTextChanged)
|
||||||
|
Q_PROPERTY(bool locationServiceEnabled READ locationServiceEnabled WRITE setLocationServiceEnabled NOTIFY locationServiceEnabledChanged)
|
||||||
public:
|
public:
|
||||||
QMLManager();
|
QMLManager();
|
||||||
~QMLManager();
|
~QMLManager();
|
||||||
|
@ -26,6 +29,9 @@ public:
|
||||||
bool saveCloudPassword() const;
|
bool saveCloudPassword() const;
|
||||||
void setSaveCloudPassword(bool saveCloudPassword);
|
void setSaveCloudPassword(bool saveCloudPassword);
|
||||||
|
|
||||||
|
bool locationServiceEnabled() const;
|
||||||
|
void setLocationServiceEnabled(bool locationServiceEnable);
|
||||||
|
|
||||||
QString logText() const;
|
QString logText() const;
|
||||||
void setLogText(const QString &logText);
|
void setLogText(const QString &logText);
|
||||||
void appendTextToLog(const QString &newText);
|
void appendTextToLog(const QString &newText);
|
||||||
|
@ -36,16 +42,20 @@ public slots:
|
||||||
void commitChanges(QString diveId, QString suit, QString buddy, QString diveMaster, QString notes);
|
void commitChanges(QString diveId, QString suit, QString buddy, QString diveMaster, QString notes);
|
||||||
void saveChanges();
|
void saveChanges();
|
||||||
void addDive();
|
void addDive();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString m_cloudUserName;
|
QString m_cloudUserName;
|
||||||
QString m_cloudPassword;
|
QString m_cloudPassword;
|
||||||
bool m_saveCloudPassword;
|
bool m_saveCloudPassword;
|
||||||
QString m_logText;
|
QString m_logText;
|
||||||
|
bool m_locationServiceEnabled;
|
||||||
|
GpsLocation *locationProvider;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void cloudUserNameChanged();
|
void cloudUserNameChanged();
|
||||||
void cloudPasswordChanged();
|
void cloudPasswordChanged();
|
||||||
void saveCloudPasswordChanged();
|
void saveCloudPasswordChanged();
|
||||||
|
void locationServiceEnabledChanged();
|
||||||
void logTextChanged();
|
void logTextChanged();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue