summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/connectionlistmodel.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/core/connectionlistmodel.cpp b/core/connectionlistmodel.cpp
index d97d4722c..6966802e3 100644
--- a/core/connectionlistmodel.cpp
+++ b/core/connectionlistmodel.cpp
@@ -1,6 +1,9 @@
// SPDX-License-Identifier: GPL-2.0
#include "core/connectionlistmodel.h"
+#if defined(BT_SUPPORT)
+#include "core/btdiscovery.h"
+#endif
ConnectionListModel::ConnectionListModel(QObject *parent) :
QAbstractListModel(parent)
@@ -31,8 +34,18 @@ int ConnectionListModel::rowCount(const QModelIndex&) const
void ConnectionListModel::addAddress(const QString &address)
{
if (!m_addresses.contains(address)) {
- beginInsertRows(QModelIndex(), rowCount(), rowCount());
- m_addresses.append(address);
+ int idx = rowCount();
+#if defined(BT_SUPPORT)
+ // make sure that addresses that are just a BT/BLE address without name stay at the end of the list
+ if (address != extractBluetoothAddress(address)) {
+ for (idx = 0; idx < rowCount(); idx++)
+ if (m_addresses[idx] == extractBluetoothAddress(m_addresses[idx]))
+ // found the first name-less BT/BLE address, insert before that
+ break;
+ }
+#endif
+ beginInsertRows(QModelIndex(), idx, idx);
+ m_addresses.insert(idx, address);
endInsertRows();
}
}