Changeset View
Changeset View
Standalone View
Standalone View
src/imports/declarativedevicesmodel.cpp
Show All 17 Lines | |||||
18 | * | 18 | * | ||
19 | * You should have received a copy of the GNU Lesser General Public | 19 | * You should have received a copy of the GNU Lesser General Public | ||
20 | * License along with this library. If not, see <http://www.gnu.org/licenses/>. | 20 | * License along with this library. If not, see <http://www.gnu.org/licenses/>. | ||
21 | */ | 21 | */ | ||
22 | 22 | | |||
23 | #include "declarativedevicesmodel.h" | 23 | #include "declarativedevicesmodel.h" | ||
24 | #include "declarativemanager.h" | 24 | #include "declarativemanager.h" | ||
25 | #include "declarativeadapter.h" | 25 | #include "declarativeadapter.h" | ||
26 | #include "declarativebattery.h" | ||||
26 | #include "declarativedevice.h" | 27 | #include "declarativedevice.h" | ||
27 | #include "declarativemediaplayer.h" | 28 | #include "declarativemediaplayer.h" | ||
28 | 29 | | |||
29 | DeclarativeDevicesModel::DeclarativeDevicesModel(QObject *parent) | 30 | DeclarativeDevicesModel::DeclarativeDevicesModel(QObject *parent) | ||
30 | : QSortFilterProxyModel(parent) | 31 | : QSortFilterProxyModel(parent) | ||
31 | , m_manager(nullptr) | 32 | , m_manager(nullptr) | ||
32 | , m_model(nullptr) | 33 | , m_model(nullptr) | ||
33 | { | 34 | { | ||
Show All 13 Lines | |||||
47 | 48 | | |||
48 | QHash<int, QByteArray> DeclarativeDevicesModel::roleNames() const | 49 | QHash<int, QByteArray> DeclarativeDevicesModel::roleNames() const | ||
49 | { | 50 | { | ||
50 | QHash<int, QByteArray> roles = QSortFilterProxyModel::roleNames(); | 51 | QHash<int, QByteArray> roles = QSortFilterProxyModel::roleNames(); | ||
51 | 52 | | |||
52 | roles[DeviceRole] = QByteArrayLiteral("Device"); | 53 | roles[DeviceRole] = QByteArrayLiteral("Device"); | ||
53 | roles[AdapterRole] = QByteArrayLiteral("Adapter"); | 54 | roles[AdapterRole] = QByteArrayLiteral("Adapter"); | ||
54 | roles[MediaPlayerRole] = QByteArrayLiteral("MediaPlayer"); | 55 | roles[MediaPlayerRole] = QByteArrayLiteral("MediaPlayer"); | ||
56 | roles[BatteryRole] = QByteArrayLiteral("Battery"); | ||||
55 | 57 | | |||
56 | return roles; | 58 | return roles; | ||
57 | } | 59 | } | ||
58 | 60 | | |||
59 | QVariant DeclarativeDevicesModel::data(const QModelIndex &index, int role) const | 61 | QVariant DeclarativeDevicesModel::data(const QModelIndex &index, int role) const | ||
60 | { | 62 | { | ||
61 | if (!m_model) { | 63 | if (!m_model) { | ||
62 | return QSortFilterProxyModel::data(index, role); | 64 | return QSortFilterProxyModel::data(index, role); | ||
63 | } | 65 | } | ||
64 | 66 | | |||
65 | BluezQt::DevicePtr dev = m_model->device(mapToSource(index)); | 67 | BluezQt::DevicePtr dev = m_model->device(mapToSource(index)); | ||
66 | if (!dev) { | 68 | if (!dev) { | ||
67 | return QSortFilterProxyModel::data(index, role); | 69 | return QSortFilterProxyModel::data(index, role); | ||
68 | } | 70 | } | ||
69 | 71 | | |||
70 | switch (role) { | 72 | switch (role) { | ||
71 | case DeviceRole: | 73 | case DeviceRole: | ||
72 | return QVariant::fromValue(m_manager->declarativeDeviceFromPtr(dev)); | 74 | return QVariant::fromValue(m_manager->declarativeDeviceFromPtr(dev)); | ||
73 | case AdapterRole: | 75 | case AdapterRole: | ||
74 | return QVariant::fromValue(m_manager->declarativeAdapterFromPtr(dev->adapter())); | 76 | return QVariant::fromValue(m_manager->declarativeAdapterFromPtr(dev->adapter())); | ||
75 | case MediaPlayerRole: | 77 | case MediaPlayerRole: | ||
76 | if (DeclarativeDevice *device = m_manager->declarativeDeviceFromPtr(dev)) { | 78 | if (DeclarativeDevice *device = m_manager->declarativeDeviceFromPtr(dev)) { | ||
77 | return QVariant::fromValue(device->mediaPlayer()); | 79 | return QVariant::fromValue(device->mediaPlayer()); | ||
78 | } | 80 | } | ||
79 | // fallthrough | 81 | break; | ||
80 | Q_FALLTHROUGH(); | 82 | case BatteryRole: | ||
81 | default: | 83 | if (DeclarativeDevice *device = m_manager->declarativeDeviceFromPtr(dev)) { | ||
82 | return QSortFilterProxyModel::data(index, role); | 84 | return QVariant::fromValue(device->battery()); | ||
85 | } | ||||
86 | break; | ||||
83 | } | 87 | } | ||
88 | | ||||
89 | return QSortFilterProxyModel::data(index, role); | ||||
84 | } | 90 | } |