Location service: move into subsurface-core

While this is primarily something targeted at a mobile device, with many
of the 2 in 1 devices it is possible that the user might be running the
desktop version of Subsurface on a mobile device.

As a first step to make it possible to collect GPS fixes on such a device
we need to make the infrastructure to do so available in the desktop
application as well.

This still needs to be hooked up in the desktop UI.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2015-11-18 18:30:55 -08:00
parent 0b804e5b21
commit 456cc3955a
6 changed files with 5 additions and 8 deletions

View file

@ -0,0 +1,43 @@
#ifndef GPSLOCATION_H
#define GPSLOCATION_H
#include "units.h"
#include <QObject>
#include <QGeoCoordinate>
#include <QGeoPositionInfoSource>
#include <QGeoPositionInfo>
#include <QSettings>
#include <QNetworkReply>
class GpsLocation : QObject
{
Q_OBJECT
public:
GpsLocation(void (*showMsgCB)(const char *msg), QObject *parent);
bool applyLocations();
int getGpsNum() const;
QString getUserid(QString user, QString passwd);
private:
QGeoPositionInfo lastPos;
QGeoPositionInfoSource *gpsSource;
void status(QString msg);
QSettings *geoSettings;
QNetworkReply *reply;
QString userAgent;
void (*showMessageCB)(const char *msg);
signals:
public slots:
void serviceEnable(bool toggle);
void newPosition(QGeoPositionInfo pos);
void updateTimeout();
void uploadToServer();
void postError(QNetworkReply::NetworkError error);
void getUseridError(QNetworkReply::NetworkError error);
void clearGpsData();
};
#endif // GPSLOCATION_H