summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/btdiscovery.cpp10
-rw-r--r--core/btdiscovery.h3
-rw-r--r--mobile-widgets/qml/Settings.qml35
-rw-r--r--mobile-widgets/qmlmanager.cpp9
-rw-r--r--mobile-widgets/qmlmanager.h5
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