mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
This is not the same as the existing download to apply the gps fixes to the dive list. This allows us to download and store the GPS fixes in the settings. I may end up changing things around to have a shared implementation for downloading the GPS fixes, but for now this seemed easier. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
56 lines
1.2 KiB
C++
56 lines
1.2 KiB
C++
#ifndef GPSLOCATION_H
|
|
#define GPSLOCATION_H
|
|
|
|
#include "units.h"
|
|
#include <QObject>
|
|
#include <QGeoCoordinate>
|
|
#include <QGeoPositionInfoSource>
|
|
#include <QGeoPositionInfo>
|
|
#include <QSettings>
|
|
#include <QNetworkReply>
|
|
|
|
struct gpsTracker {
|
|
degrees_t latitude;
|
|
degrees_t longitude;
|
|
time_t when;
|
|
QString name;
|
|
};
|
|
|
|
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);
|
|
bool hasLocationsSource();
|
|
QString currentPosition();
|
|
|
|
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;
|
|
|
|
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();
|
|
|
|
};
|
|
|
|
#endif // GPSLOCATION_H
|