mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
Add instance method for GpsLocation
This way we can call members from different parts of the code. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
1bfcf5c0f8
commit
962341ae9f
2 changed files with 23 additions and 3 deletions
|
@ -13,8 +13,12 @@
|
|||
#define GPS_FIX_ADD_URL "http://api.subsurface-divelog.org/api/dive/add/"
|
||||
#define GET_WEBSERVICE_UID_URL "https://cloud.subsurface-divelog.org/webuserid/"
|
||||
|
||||
GpsLocation *GpsLocation::m_Instance = NULL;
|
||||
|
||||
GpsLocation::GpsLocation(void (*showMsgCB)(const char *), QObject *parent)
|
||||
{
|
||||
Q_ASSERT_X(m_Instance == NULL, "GpsLocation", "GpsLocation recreated");
|
||||
m_Instance = this;
|
||||
showMessageCB = showMsgCB;
|
||||
// create a QSettings object that's separate from the main application settings
|
||||
geoSettings = new QSettings(QSettings::NativeFormat, QSettings::UserScope,
|
||||
|
@ -22,6 +26,18 @@ GpsLocation::GpsLocation(void (*showMsgCB)(const char *), QObject *parent)
|
|||
userAgent = getUserAgent();
|
||||
}
|
||||
|
||||
GpsLocation *GpsLocation::instance()
|
||||
{
|
||||
Q_ASSERT(m_Instance != NULL);
|
||||
|
||||
return m_Instance;
|
||||
}
|
||||
|
||||
GpsLocation::~GpsLocation()
|
||||
{
|
||||
m_Instance = NULL;
|
||||
}
|
||||
|
||||
QGeoPositionInfoSource *GpsLocation::getGpsSource()
|
||||
{
|
||||
static QGeoPositionInfoSource *gpsSource = NULL;
|
||||
|
@ -31,7 +47,10 @@ QGeoPositionInfoSource *GpsLocation::getGpsSource()
|
|||
gpsSource = QGeoPositionInfoSource::createDefaultSource(this);
|
||||
initGpsSource = true;
|
||||
if (gpsSource != 0) {
|
||||
status("created GPS source");
|
||||
#ifndef SUBSURFACE_MOBILE
|
||||
if (verbose)
|
||||
#endif
|
||||
status("created GPS source");
|
||||
QString msg = QString("have position source %1").arg(gpsSource->sourceName());
|
||||
connect(gpsSource, SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(newPosition(QGeoPositionInfo)));
|
||||
connect(gpsSource, SIGNAL(updateTimeout()), this, SLOT(updateTimeout()));
|
||||
|
|
|
@ -14,6 +14,8 @@ class GpsLocation : QObject
|
|||
Q_OBJECT
|
||||
public:
|
||||
GpsLocation(void (*showMsgCB)(const char *msg), QObject *parent);
|
||||
~GpsLocation();
|
||||
static GpsLocation *instance();
|
||||
void applyLocations();
|
||||
int getGpsNum() const;
|
||||
QString getUserid(QString user, QString passwd);
|
||||
|
@ -27,8 +29,7 @@ private:
|
|||
QNetworkReply *reply;
|
||||
QString userAgent;
|
||||
void (*showMessageCB)(const char *msg);
|
||||
|
||||
signals:
|
||||
static GpsLocation *m_Instance;
|
||||
|
||||
public slots:
|
||||
void serviceEnable(bool toggle);
|
||||
|
|
Loading…
Reference in a new issue