mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +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");
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
QString msg("received new position %1");
|
||||
|
|
|
@ -20,6 +20,7 @@ private:
|
|||
signals:
|
||||
|
||||
public slots:
|
||||
void serviceEnable(bool toggle);
|
||||
void newPosition(QGeoPositionInfo pos);
|
||||
void updateTimeout();
|
||||
};
|
||||
|
|
|
@ -69,6 +69,15 @@ ApplicationWindow {
|
|||
}
|
||||
}
|
||||
|
||||
MenuItem {
|
||||
text: "Run location service"
|
||||
checkable: true
|
||||
checked: manager.locationServiceEnabled
|
||||
onToggled: {
|
||||
manager.setLocationServiceEnabled(checked);
|
||||
}
|
||||
}
|
||||
|
||||
MenuItem {
|
||||
text: "View Log"
|
||||
onTriggered: {
|
||||
|
|
|
@ -19,6 +19,7 @@ QMLManager::QMLManager()
|
|||
{
|
||||
// create location manager service
|
||||
locationProvider = new GpsLocation(this);
|
||||
setLocationServiceEnabled(false);
|
||||
|
||||
// Initialize cloud credentials.
|
||||
setCloudUserName(prefs.cloud_storage_email);
|
||||
|
@ -174,6 +175,16 @@ void QMLManager::setSaveCloudPassword(bool 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
|
||||
{
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
#include <QObject>
|
||||
#include <QString>
|
||||
|
||||
#include "qt-mobile/gpslocation.h"
|
||||
|
||||
void qmlUiShowMessage(const char *errorString);
|
||||
|
||||
class QMLManager : public QObject
|
||||
|
@ -13,6 +15,7 @@ class QMLManager : public QObject
|
|||
Q_PROPERTY(QString cloudPassword READ cloudPassword WRITE setCloudPassword NOTIFY cloudPasswordChanged)
|
||||
Q_PROPERTY(bool saveCloudPassword READ saveCloudPassword WRITE setSaveCloudPassword NOTIFY saveCloudPasswordChanged)
|
||||
Q_PROPERTY(QString logText READ logText WRITE setLogText NOTIFY logTextChanged)
|
||||
Q_PROPERTY(bool locationServiceEnabled READ locationServiceEnabled WRITE setLocationServiceEnabled NOTIFY locationServiceEnabledChanged)
|
||||
public:
|
||||
QMLManager();
|
||||
~QMLManager();
|
||||
|
@ -26,6 +29,9 @@ public:
|
|||
bool saveCloudPassword() const;
|
||||
void setSaveCloudPassword(bool saveCloudPassword);
|
||||
|
||||
bool locationServiceEnabled() const;
|
||||
void setLocationServiceEnabled(bool locationServiceEnable);
|
||||
|
||||
QString logText() const;
|
||||
void setLogText(const QString &logText);
|
||||
void appendTextToLog(const QString &newText);
|
||||
|
@ -36,16 +42,20 @@ public slots:
|
|||
void commitChanges(QString diveId, QString suit, QString buddy, QString diveMaster, QString notes);
|
||||
void saveChanges();
|
||||
void addDive();
|
||||
|
||||
private:
|
||||
QString m_cloudUserName;
|
||||
QString m_cloudPassword;
|
||||
bool m_saveCloudPassword;
|
||||
QString m_logText;
|
||||
bool m_locationServiceEnabled;
|
||||
GpsLocation *locationProvider;
|
||||
|
||||
signals:
|
||||
void cloudUserNameChanged();
|
||||
void cloudPasswordChanged();
|
||||
void saveCloudPasswordChanged();
|
||||
void locationServiceEnabledChanged();
|
||||
void logTextChanged();
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue