diff options
-rw-r--r-- | core/btdiscovery.cpp | 10 | ||||
-rw-r--r-- | core/btdiscovery.h | 3 | ||||
-rw-r--r-- | mobile-widgets/qml/Settings.qml | 35 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.cpp | 9 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.h | 5 |
5 files changed, 60 insertions, 2 deletions
diff --git a/core/btdiscovery.cpp b/core/btdiscovery.cpp index 51cf61b20..88d1cd588 100644 --- a/core/btdiscovery.cpp +++ b/core/btdiscovery.cpp @@ -91,6 +91,7 @@ bool matchesKnownDiveComputerNames(QString btName) } BTDiscovery::BTDiscovery(QObject*) : m_btValid(false), + m_showNonDiveComputers(false), discoveryAgent(nullptr) { if (m_instance) { @@ -104,6 +105,11 @@ BTDiscovery::BTDiscovery(QObject*) : m_btValid(false), #endif } +void BTDiscovery::showNonDiveComputers(bool show) +{ + m_showNonDiveComputers = show; +} + void BTDiscovery::BTDiscoveryReDiscover() { #if !defined(Q_OS_IOS) @@ -232,7 +238,9 @@ void BTDiscovery::btDeviceDiscoveredMain(const btPairedDevice &device) connectionListModel.addAddress(newDevice + " " + device.address); return; } - connectionListModel.addAddress(device.address); + // Do we want only devices we recognize as dive computers? + if (m_showNonDiveComputers) + connectionListModel.addAddress(device.address); qDebug() << "Not recognized as dive computer"; } diff --git a/core/btdiscovery.h b/core/btdiscovery.h index 060f2c705..d6c25d8b0 100644 --- a/core/btdiscovery.h +++ b/core/btdiscovery.h @@ -46,6 +46,8 @@ public: void btDeviceDiscovered(const QBluetoothDeviceInfo &device); void btDeviceDiscoveredMain(const btPairedDevice &device); bool btAvailable() const; + void showNonDiveComputers(bool show); + #if defined(Q_OS_ANDROID) void getBluetoothDevices(); #endif @@ -57,6 +59,7 @@ public: private: static BTDiscovery *m_instance; bool m_btValid; + bool m_showNonDiveComputers; QList<struct btVendorProduct> btDCs; // recognized DCs QList<struct btVendorProduct> btAllDevices; // all paired BT stuff diff --git a/mobile-widgets/qml/Settings.qml b/mobile-widgets/qml/Settings.qml index 358d89a04..6a3302eb8 100644 --- a/mobile-widgets/qml/Settings.qml +++ b/mobile-widgets/qml/Settings.qml @@ -531,6 +531,41 @@ Kirigami.ScrollablePage { } GridLayout { + id: whichBluetoothDevices + columns: 2 + Controls.Label { + text: qsTr("Bluetooth") + font.pointSize: subsurfaceTheme.headingPointSize + font.weight: Font.Light + color: subsurfaceTheme.textColor + Layout.topMargin: Kirigami.Units.largeSpacing + Layout.bottomMargin: Kirigami.Units.largeSpacing / 2 + Layout.columnSpan: 2 + } + + Controls.Label { + text: qsTr("Show all bluetooth devices \neven if not recognized as dive computers") + font.pointSize: subsurfaceTheme.regularPointSize + Layout.preferredWidth: gridWidth * 0.75 + } + SsrfSwitch { + id: nonDCButton + checked: manager.showNonDiveComputers + Layout.preferredWidth: gridWidth * 0.25 + onClicked: { + manager.showNonDiveComputers = checked + } + } + } + + Rectangle { + color: subsurfaceTheme.darkerPrimaryColor + height: 1 + opacity: 0.5 + Layout.fillWidth: true + } + + GridLayout { id: developer columns: 2 Controls.Label { diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp index 570ab0c67..8973aef43 100644 --- a/mobile-widgets/qmlmanager.cpp +++ b/mobile-widgets/qmlmanager.cpp @@ -144,7 +144,8 @@ QMLManager::QMLManager() : m_locationServiceEnabled(false), m_updateSelectedDive(-1), m_selectedDiveTimestamp(0), alreadySaving(false), - m_pluggedInDeviceName("") + m_pluggedInDeviceName(""), + m_showNonDiveComputers(false) { LOG_STP("qmlmgr starting"); m_instance = this; @@ -1979,6 +1980,12 @@ void QMLManager::setFilter(const QString filterText) }); } +void QMLManager::setShowNonDiveComputers(bool show) +{ + m_showNonDiveComputers = show; + BTDiscovery::instance()->showNonDiveComputers(show); +} + #if defined(Q_OS_ANDROID) // implemented in core/android.cpp void checkPendingIntents(); diff --git a/mobile-widgets/qmlmanager.h b/mobile-widgets/qmlmanager.h index 5636af379..7d10f78b2 100644 --- a/mobile-widgets/qmlmanager.h +++ b/mobile-widgets/qmlmanager.h @@ -48,6 +48,7 @@ class QMLManager : public QObject { Q_PROPERTY(bool DC_saveDump READ DC_saveDump WRITE DC_setSaveDump) Q_PROPERTY(int DC_deviceId READ DC_deviceId WRITE DC_setDeviceId) Q_PROPERTY(QString pluggedInDeviceName MEMBER m_pluggedInDeviceName NOTIFY pluggedInDeviceNameChanged) + Q_PROPERTY(bool showNonDiveComputers MEMBER m_showNonDiveComputers WRITE setShowNonDiveComputers NOTIFY showNonDiveComputersChanged) public: QMLManager(); ~QMLManager(); @@ -126,6 +127,8 @@ public: bool btEnabled() const; void setBtEnabled(bool value); + void setShowNonDiveComputers(bool show); + DiveListSortModel *dlSortModel; QStringList suitList() const; @@ -234,6 +237,7 @@ private: bool m_btEnabled; void updateAllGlobalLists(); QString m_pluggedInDeviceName; + bool m_showNonDiveComputers; struct dive *m_copyPasteDive = NULL; struct dive_components what; @@ -262,6 +266,7 @@ signals: void locationListChanged(); void waitingForPositionChanged(); void pluggedInDeviceNameChanged(); + void showNonDiveComputersChanged(); }; #endif |