mobile: turn GpsLocation into a regular singleton construct

Simply move the initialization of the logging function into its own method and
call that in the QMLManager constructor.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2021-01-01 12:55:47 -08:00
parent 53b572f987
commit 5048a695aa
3 changed files with 13 additions and 20 deletions

View file

@ -15,17 +15,12 @@
#include <QApplication>
#include <QTimer>
GpsLocation *GpsLocation::m_Instance = NULL;
GpsLocation::GpsLocation(void (*showMsgCB)(const char *), QObject *parent) :
QObject(parent),
GpsLocation::GpsLocation() :
m_GpsSource(0),
showMessageCB(0),
waitingForPosition(false),
haveSource(UNKNOWN)
{
Q_ASSERT_X(m_Instance == NULL, "GpsLocation", "GpsLocation recreated");
m_Instance = this;
showMessageCB = showMsgCB;
// create a QSettings object that's separate from the main application settings
geoSettings = new QSettings(QSettings::NativeFormat, QSettings::UserScope,
QStringLiteral("org.subsurfacedivelog"), QStringLiteral("subsurfacelocation"), this);
@ -39,19 +34,17 @@ GpsLocation::GpsLocation(void (*showMsgCB)(const char *), QObject *parent) :
GpsLocation *GpsLocation::instance()
{
Q_ASSERT(m_Instance != NULL);
return m_Instance;
}
bool GpsLocation::hasInstance()
{
return m_Instance != NULL;
static GpsLocation self;
return &self;
}
GpsLocation::~GpsLocation()
{
m_Instance = NULL;
}
void GpsLocation::setLogCallBack(void (*showMsgCB)(const char *))
{
showMessageCB = showMsgCB;
}
void GpsLocation::setGpsTimeThreshold(int seconds)