1 #ifndef NEARBYDEVICESMODEL_H
2 #define NEARBYDEVICESMODEL_H
5 #include <QAbstractListModel>
6 #include <QDBusObjectPath>
8 #include "bluemanager.h"
9 #include "blueadapter.h"
10 #include "asyncagent.h"
11 #include "bluetoothdevice.h"
13 namespace NearbyDevicesModelRoles
17 name = Qt::UserRole + 1,
23 class NearbyItem: public QObject
26 Q_PROPERTY(QString name READ name NOTIFY nameChanged)
27 Q_PROPERTY(QString alias READ alias NOTIFY aliasChanged)
28 Q_PROPERTY(QString address READ address)
29 Q_PROPERTY(QString icon READ icon NOTIFY iconChanged)
30 Q_PROPERTY(bool legacyPairing READ legacyPairing)
32 NearbyItem(QString name="", QString address="", QString icon="", bool legacy=false, QObject* parent = 0)
41 QString name() { return m_name; }
42 QString alias() { return m_alias; }
43 QString address() { return m_addy; }
44 QString icon() { return m_icon; }
45 bool legacyPairing() { return m_legacy; }
47 void setName(QString n) { m_name = n; nameChanged(); }
48 void setIcon(QString i) { m_icon = i; iconChanged(); }
49 void setAlias(QString a) { m_alias = a; aliasChanged(); }
64 class NearbyDevicesModel : public QAbstractListModel
67 Q_PROPERTY(BluetoothDevice* pairingDevice READ pairingDevice)
69 NearbyDevicesModel(QObject *parent = 0);
71 BluetoothDevice* pairingDevice() { if(agent) return agent->device(); else return NULL; }
75 int columnCount(const QModelIndex &) const { return 1;}
76 int rowCount(const QModelIndex &parent = QModelIndex()) const;
77 QVariant data(const QModelIndex &index, int role) const;
79 QString hwAddress(int index) { return devices[index]->address(); }
80 QString alias(int index){ return devices[index]->name(); }
81 void pair(QString hwaddy);
82 void discover(bool start);
85 void replyRequestConfirmation(bool confirmed);
86 void replyPasskey(uint passkey);
87 void replyRequestPidCode(QString pidCode);
89 void setAdapterProperty(QString name, QVariant value);
92 void adapterAdded(QDBusObjectPath);
93 void adapterRemoved(QDBusObjectPath);
94 void deviceCreated(QString hwaddy, QVariantMap properties);
95 void deviceRemoved(QString hwaddy);
97 void adapterPropertiesChangedSlot(QString n,QDBusVariant v);
100 void requestConfirmation(QString device, uint code);
101 void requestPasskey(QString device);
102 void requestPidCode(QString device);
105 void nearbyDeviceFound(int index);
106 void nearbyDeviceRemoved(int index);
108 void adapterPropertiesChanged(QString name, QVariant value);
111 QList<NearbyItem*> devices;
112 OrgBluezManagerInterface *manager;
113 OrgBluezAdapterInterface *adapter;
117 #endif // NEARBYDEVICESMODEL_H