diff options
-rw-r--r-- | core/connectionlistmodel.cpp | 17 |
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(); } } |