#pragma once #include #include #include class QGeoPositionInfo; namespace scwx { namespace qt { namespace manager { class PositionManager : public QObject { Q_OBJECT Q_DISABLE_COPY_MOVE(PositionManager) public: explicit PositionManager(); ~PositionManager(); QGeoPositionInfo position() const; void TrackLocation(boost::uuids::uuid uuid, bool trackingEnabled); static std::shared_ptr Instance(); signals: void PositionUpdated(const QGeoPositionInfo& info); private: class Impl; std::unique_ptr p; }; } // namespace manager } // namespace qt } // namespace scwx