File indexing completed on 2024-05-12 03:53:11

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 "devicesmodel.h"
0015 
0016 class DeclarativeManager;
0017 
0018 class DeclarativeDevicesModel : public QSortFilterProxyModel
0019 {
0020     Q_OBJECT
0021     Q_PROPERTY(DeclarativeManager *manager READ manager WRITE setManager)
0022 
0023 public:
0024     enum DeclarativeDeviceRoles {
0025         DeviceRole = BluezQt::DevicesModel::LastRole + 1,
0026         AdapterRole = BluezQt::DevicesModel::LastRole + 2,
0027         MediaPlayerRole = BluezQt::DevicesModel::LastRole + 3,
0028         BatteryRole = BluezQt::DevicesModel::LastRole + 4,
0029     };
0030 
0031     explicit DeclarativeDevicesModel(QObject *parent = nullptr);
0032 
0033     DeclarativeManager *manager() const;
0034     void setManager(DeclarativeManager *manager);
0035 
0036     QHash<int, QByteArray> roleNames() const override;
0037     QVariant data(const QModelIndex &index, int role) const override;
0038 
0039 private:
0040     DeclarativeManager *m_manager;
0041     BluezQt::DevicesModel *m_model;
0042 };
0043 
0044 #endif // DECLARATIVEMANAGER_H