From 9ae7040a91c3e3e0606d7abe085ef6da47efd6d2 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Fri, 27 Sep 2019 16:26:54 -0700 Subject: Revert the singleton PR It turns out that this isn't working the way it was intended to. Signed-off-by: Dirk Hohndel --- core/btdiscovery.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'core/btdiscovery.cpp') diff --git a/core/btdiscovery.cpp b/core/btdiscovery.cpp index 1387be400..8db1e02cc 100644 --- a/core/btdiscovery.cpp +++ b/core/btdiscovery.cpp @@ -15,6 +15,7 @@ extern QMap descriptorLookup; namespace { QHash btDeviceInfo; } +BTDiscovery *BTDiscovery::m_instance = NULL; static dc_descriptor_t *getDeviceType(QString btName) // central function to convert a BT name to a Subsurface known vendor/model pair @@ -138,6 +139,11 @@ BTDiscovery::BTDiscovery(QObject*) : m_btValid(false), m_showNonDiveComputers(false), discoveryAgent(nullptr) { + if (m_instance) { + qDebug() << "trying to create an additional BTDiscovery object"; + return; + } + m_instance = this; #if defined(BT_SUPPORT) QLoggingCategory::setFilterRules(QStringLiteral("qt.bluetooth* = true")); BTDiscoveryReDiscover(); @@ -196,11 +202,19 @@ void BTDiscovery::BTDiscoveryReDiscover() BTDiscovery::~BTDiscovery() { + m_instance = NULL; #if defined(BT_SUPPORT) delete discoveryAgent; #endif } +BTDiscovery *BTDiscovery::instance() +{ + if (!m_instance) + m_instance = new BTDiscovery(); + return m_instance; +} + #if defined(BT_SUPPORT) extern void addBtUuid(QBluetoothUuid uuid); extern QHash productList; -- cgit v1.2.3-70-g09d2