mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-11 03:21:29 +00:00
89eed5d36e
with the adittion of gpslistmodel/location, the libraries qt-models had a direct dependency on subsurface-core, and subsurface-core had a direct dependency on qt-models, this is bad. Moving a bit of code around I'v managed to clean this out, and also to clear a bit of uneeded code (GpsTracker and gpsTracker where basically the same thing.) Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
58 lines
1.3 KiB
C++
58 lines
1.3 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();
|
|
|
|
QVector<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;
|
|
|
|
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
|