summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2017-07-16 21:49:11 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2017-07-16 21:53:44 -0700
commita4f045abaa625db4780f915ab57ed3edc89bf000 (patch)
tree71e9887620f1f7aea946077ae191eb472b271ded
parentc21845aa016786fb92a08c5d01029218ad1e10fb (diff)
downloadsubsurface-a4f045abaa625db4780f915ab57ed3edc89bf000.tar.gz
Add the connections that we find to the model
So far this only deals with BT addresses. We also need to add other connections that we detect. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--core/btdiscovery.cpp31
-rw-r--r--core/downloadfromdcthread.cpp11
-rw-r--r--core/downloadfromdcthread.h3
3 files changed, 31 insertions, 14 deletions
diff --git a/core/btdiscovery.cpp b/core/btdiscovery.cpp
index a9f8c861a..8a9bedc73 100644
--- a/core/btdiscovery.cpp
+++ b/core/btdiscovery.cpp
@@ -192,25 +192,28 @@ void BTDiscovery::btDeviceDiscoveredMain(const btPairedDevice &device)
dc_descriptor_t *newDC = getDeviceType(device.name);
if (newDC)
newDevice = dc_descriptor_get_product(newDC);
- else
+ else
newDevice = device.name;
qDebug() << "Found new device:" << newDevice << device.address;
QString vendor;
- if (newDC) foreach (vendor, productList.keys()) {
- if (productList[vendor].contains(newDevice)) {
- qDebug() << "this could be a " + vendor + " " +
- (newDevice == "OSTC 3" ? "OSTC family" : newDevice);
- btVP.btpdi = device;
- btVP.dcDescriptor = newDC;
- btVP.vendorIdx = vendorList.indexOf(vendor);
- btVP.productIdx = productList[vendor].indexOf(newDevice);
- qDebug() << "adding new btDCs entry (detected DC)" << newDevice << btVP.vendorIdx << btVP.productIdx << btVP.btpdi.address;;
- btDCs << btVP;
- productList[QObject::tr("Paired Bluetooth Devices")].append(device.name + " (" + device.address + ")");
- return;
+ if (newDC)
+ foreach (vendor, productList.keys()) {
+ if (productList[vendor].contains(newDevice)) {
+ qDebug() << "this could be a " + vendor + " " +
+ (newDevice == "OSTC 3" ? "OSTC family" : newDevice);
+ btVP.btpdi = device;
+ btVP.dcDescriptor = newDC;
+ btVP.vendorIdx = vendorList.indexOf(vendor);
+ btVP.productIdx = productList[vendor].indexOf(newDevice);
+ qDebug() << "adding new btDCs entry (detected DC)" << newDevice << btVP.vendorIdx << btVP.productIdx << btVP.btpdi.address;;
+ btDCs << btVP;
+ productList[QObject::tr("Paired Bluetooth Devices")].append(device.name + " (" + device.address + ")");
+ connectionListModel.addAddress(device.address + " (" + device.name + ")");
+ return;
+ }
}
- }
+ connectionListModel.addAddress(device.address);
qDebug() << "Not recognized as dive computer";
}
diff --git a/core/downloadfromdcthread.cpp b/core/downloadfromdcthread.cpp
index 76b314da7..8abc46bcd 100644
--- a/core/downloadfromdcthread.cpp
+++ b/core/downloadfromdcthread.cpp
@@ -7,6 +7,7 @@ QStringList vendorList;
QHash<QString, QStringList> productList;
static QHash<QString, QStringList> mobileProductList; // BT, BLE or FTDI supported DCs for mobile
QMap<QString, dc_descriptor_t *> descriptorLookup;
+ConnectionListModel connectionListModel;
static QString str_error(const char *fmt, ...)
{
@@ -193,6 +194,16 @@ QStringList DCDeviceData::getProductListFromVendor(const QString &vendor)
return productList[vendor];
}
+int DCDeviceData::getMatchingAddress(const QString &vendor, const QString &product)
+{
+ for (int i = 0; i < connectionListModel.rowCount(); i++) {
+ QString address = connectionListModel.address(i);
+ if (address.contains(product))
+ return i;
+ }
+ return -1;
+}
+
DCDeviceData * DownloadThread::data()
{
return m_data;
diff --git a/core/downloadfromdcthread.h b/core/downloadfromdcthread.h
index fb9c73965..51b2a825f 100644
--- a/core/downloadfromdcthread.h
+++ b/core/downloadfromdcthread.h
@@ -45,6 +45,8 @@ public:
device_data_t* internalData();
Q_INVOKABLE QStringList getProductListFromVendor(const QString& vendor);
+ Q_INVOKABLE int getMatchingAddress(const QString &vendor, const QString &product);
+
Q_INVOKABLE int getDetectedVendorIndex(const QString &currentText);
Q_INVOKABLE int getDetectedProductIndex(const QString &currentVendorText,
const QString &currentProductText);
@@ -102,5 +104,6 @@ void fill_computer_list();
extern QStringList vendorList;
extern QHash<QString, QStringList> productList;
extern QMap<QString, dc_descriptor_t *> descriptorLookup;
+extern ConnectionListModel connectionListModel;
#endif