File indexing completed on 2024-04-28 16:43:18

0001 /*
0002     SPDX-FileCopyrightText: 2014 David Rosca <nowrep@gmail.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #ifndef DEVICESPROXYMODEL_H
0008 #define DEVICESPROXYMODEL_H
0009 
0010 #include <BluezQt/DevicesModel>
0011 #include <QSortFilterProxyModel>
0012 
0013 class DevicesProxyModel : public QSortFilterProxyModel
0014 {
0015     Q_OBJECT
0016 
0017 public:
0018     enum AdditionalRoles {
0019         SectionRole = BluezQt::DevicesModel::LastRole + 10,
0020         DeviceFullNameRole = BluezQt::DevicesModel::LastRole + 11,
0021     };
0022 
0023     explicit DevicesProxyModel(QObject *parent = nullptr);
0024 
0025     QHash<int, QByteArray> roleNames() const override;
0026     QVariant data(const QModelIndex &index, int role) const override;
0027     bool lessThan(const QModelIndex &left, const QModelIndex &right) const override;
0028     bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override;
0029 
0030     Q_INVOKABLE QString adapterHciString(const QString &ubi) const;
0031 
0032 private:
0033     bool duplicateIndexAddress(const QModelIndex &idx) const;
0034 };
0035 
0036 #endif // DEVICESPROXYMODEL_H