File indexing completed on 2024-05-12 15:32:33

0001 /*
0002  * BluezQt - Asynchronous Bluez wrapper library
0003  *
0004  * SPDX-FileCopyrightText: 2014 David Rosca <nowrep@gmail.com>
0005  *
0006  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007  */
0008 
0009 #ifndef DECLARATIVEDEVICESMODEL_H
0010 #define DECLARATIVEDEVICESMODEL_H
0011 
0012 #include <QSortFilterProxyModel>
0013 
0014 #include "declarativemanager.h"
0015 #include "devicesmodel.h"
0016 
0017 class DeclarativeDevicesModel : public QSortFilterProxyModel
0018 {
0019     Q_OBJECT
0020     Q_PROPERTY(DeclarativeManager *manager READ manager WRITE setManager)
0021 
0022 public:
0023     enum DeclarativeDeviceRoles {
0024         DeviceRole = BluezQt::DevicesModel::LastRole + 1,
0025         AdapterRole = BluezQt::DevicesModel::LastRole + 2,
0026         MediaPlayerRole = BluezQt::DevicesModel::LastRole + 3,
0027         BatteryRole = BluezQt::DevicesModel::LastRole + 4,
0028     };
0029 
0030     explicit DeclarativeDevicesModel(QObject *parent = nullptr);
0031 
0032     DeclarativeManager *manager() const;
0033     void setManager(DeclarativeManager *manager);
0034 
0035     QHash<int, QByteArray> roleNames() const override;
0036     QVariant data(const QModelIndex &index, int role) const override;
0037 
0038 private:
0039     DeclarativeManager *m_manager;
0040     BluezQt::DevicesModel *m_model;
0041 };
0042 
0043 #endif // DECLARATIVEMANAGER_H