mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-23 14:43:43 +00:00
committed by
Konstantin Pastbin
parent
c9cbb64f12
commit
76ffc99abd
28
libs/platform/location_service/qt_location_service.hpp
Normal file
28
libs/platform/location_service/qt_location_service.hpp
Normal file
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include "platform/location_service/location_service.hpp"
|
||||
|
||||
#include <QGeoPositionInfoSource>
|
||||
|
||||
class QtLocationService : public QObject, public location::LocationService
|
||||
{
|
||||
Q_OBJECT
|
||||
QGeoPositionInfoSource *m_positionSource;
|
||||
// Unfortunately when the source is `geoclue2`
|
||||
// we would need access to the `Active` D-Bus property
|
||||
// https://www.freedesktop.org/software/geoclue/docs
|
||||
// /gdbus-org.freedesktop.GeoClue2.Client.html#gdbus-property-org-freedesktop-GeoClue2-Client.Active
|
||||
// But `QGeoPositionInfoSource` doesn't expose that so we have to deduce its state.
|
||||
bool m_clientIsActive = false;
|
||||
|
||||
public:
|
||||
explicit QtLocationService(location::LocationObserver &, std::string const &);
|
||||
virtual ~QtLocationService() {};
|
||||
virtual void Start();
|
||||
virtual void Stop();
|
||||
|
||||
public slots:
|
||||
void OnLocationUpdate(QGeoPositionInfo const &);
|
||||
void OnErrorOccurred(QGeoPositionInfoSource::Error);
|
||||
void OnSupportedPositioningMethodsChanged();
|
||||
};
|
||||
Reference in New Issue
Block a user