diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2016-04-04 22:02:03 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2016-04-04 22:33:58 -0700 |
commit | 7be962bfc2879a72c32ff67518731347dcdff6de (patch) | |
tree | d05bf7ab234a448ee37a15b608e2b939f2285d07 /core/gpslocation.h | |
parent | 2d760a7bff71c46c5aeba37c40d236ea16eefea2 (diff) | |
download | subsurface-7be962bfc2879a72c32ff67518731347dcdff6de.tar.gz |
Move subsurface-core to core and qt-mobile to mobile-widgets
Having subsurface-core as a directory name really messes with
autocomplete and is obviously redundant. Simmilarly, qt-mobile caused an
autocomplete conflict and also was inconsistent with the desktop-widget
name for the directory containing the "other" UI.
And while cleaning up the resulting change in the path name for include
files, I decided to clean up those even more to make them consistent
overall.
This could have been handled in more commits, but since this requires a
make clean before the build, it seemed more sensible to do it all in one.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'core/gpslocation.h')
-rw-r--r-- | core/gpslocation.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/core/gpslocation.h b/core/gpslocation.h new file mode 100644 index 000000000..82b51a291 --- /dev/null +++ b/core/gpslocation.h @@ -0,0 +1,66 @@ +#ifndef GPSLOCATION_H +#define GPSLOCATION_H + +#include "units.h" +#include <QObject> +#include <QGeoCoordinate> +#include <QGeoPositionInfoSource> +#include <QGeoPositionInfo> +#include <QSettings> +#include <QNetworkReply> +#include <QMap> + +struct gpsTracker { + degrees_t latitude; + degrees_t longitude; + qint64 when; + QString name; + int idx; +}; + +class GpsLocation : QObject { + Q_OBJECT +public: + GpsLocation(void (*showMsgCB)(const char *msg), QObject *parent); + ~GpsLocation(); + static GpsLocation *instance(); + bool applyLocations(); + int getGpsNum() const; + QString getUserid(QString user, QString passwd); + bool hasLocationsSource(); + QString currentPosition(); + + QMap<qint64, gpsTracker> currentGPSInfo() const; + +private: + QGeoPositionInfo lastPos; + QGeoPositionInfoSource *getGpsSource(); + QGeoPositionInfoSource *m_GpsSource; + void status(QString msg); + QSettings *geoSettings; + QNetworkReply *reply; + QString userAgent; + void (*showMessageCB)(const char *msg); + static GpsLocation *m_Instance; + bool waitingForPosition; + QMap<qint64, gpsTracker> m_trackers; + QList<gpsTracker> m_deletedTrackers; + void loadFromStorage(); + void addFixToStorage(gpsTracker >); + void replaceFixToStorage(gpsTracker >); + void deleteFixFromStorage(gpsTracker >); + void deleteFixesFromServer(); + +public slots: + void serviceEnable(bool toggle); + void newPosition(QGeoPositionInfo pos); + void updateTimeout(); + void uploadToServer(); + void downloadFromServer(); + void postError(QNetworkReply::NetworkError error); + void getUseridError(QNetworkReply::NetworkError error); + void clearGpsData(); + void deleteGpsFix(qint64 when); +}; + +#endif // GPSLOCATION_H |