mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Add ConnectionListModel
We'll use that to do a better job of showing the connection used when talking to a dive computer. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									dd1bdd3f81
								
							
						
					
					
						commit
						c21845aa01
					
				
					 2 changed files with 58 additions and 0 deletions
				
			
		|  | @ -9,6 +9,47 @@ extern QMap<QString, dc_descriptor_t *> descriptorLookup; | ||||||
| 
 | 
 | ||||||
| BTDiscovery *BTDiscovery::m_instance = NULL; | BTDiscovery *BTDiscovery::m_instance = NULL; | ||||||
| 
 | 
 | ||||||
|  | ConnectionListModel::ConnectionListModel(QObject *parent) : | ||||||
|  | 	QAbstractListModel(parent) | ||||||
|  | { | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | QHash <int, QByteArray> ConnectionListModel::roleNames() const | ||||||
|  | { | ||||||
|  | 	QHash<int, QByteArray> roles; | ||||||
|  | 	roles[AddressRole] = "address"; | ||||||
|  | 	return roles; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | QVariant ConnectionListModel::data(const QModelIndex &index, int role) const | ||||||
|  | { | ||||||
|  | 	if (index.row() < 0 || index.row() >= m_addresses.count()) | ||||||
|  | 		return QVariant(); | ||||||
|  | 	if (role != AddressRole) | ||||||
|  | 		return QVariant(); | ||||||
|  | 	return m_addresses[index.row()]; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | QString ConnectionListModel::address(int idx) const | ||||||
|  | { | ||||||
|  | 	if (idx < 0 || idx >> m_addresses.count()) | ||||||
|  | 		return QString(); | ||||||
|  | 	return m_addresses[idx]; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | int ConnectionListModel::rowCount(const QModelIndex &parent) const | ||||||
|  | { | ||||||
|  | 	Q_UNUSED(parent) | ||||||
|  | 	return m_addresses.count(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void ConnectionListModel::addAddress(const QString address) | ||||||
|  | { | ||||||
|  | 	beginInsertRows(QModelIndex(), rowCount(), rowCount()); | ||||||
|  | 	m_addresses.append(address); | ||||||
|  | 	endInsertRows(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| static dc_descriptor_t *getDeviceType(QString btName) | static dc_descriptor_t *getDeviceType(QString btName) | ||||||
| // central function to convert a BT name to a Subsurface known vendor/model pair
 | // central function to convert a BT name to a Subsurface known vendor/model pair
 | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -5,6 +5,7 @@ | ||||||
| #include <QObject> | #include <QObject> | ||||||
| #include <QString> | #include <QString> | ||||||
| #include <QLoggingCategory> | #include <QLoggingCategory> | ||||||
|  | #include <QAbstractListModel> | ||||||
| #if defined(BT_SUPPORT) | #if defined(BT_SUPPORT) | ||||||
| #include <QBluetoothLocalDevice> | #include <QBluetoothLocalDevice> | ||||||
| #include <QBluetoothDeviceDiscoveryAgent> | #include <QBluetoothDeviceDiscoveryAgent> | ||||||
|  | @ -17,6 +18,22 @@ | ||||||
| #include <QAndroidJniEnvironment> | #include <QAndroidJniEnvironment> | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  | class ConnectionListModel : public QAbstractListModel { | ||||||
|  | 	Q_OBJECT | ||||||
|  | public: | ||||||
|  | 	enum CLMRole { | ||||||
|  | 		AddressRole = Qt::UserRole + 1 | ||||||
|  | 	}; | ||||||
|  | 	ConnectionListModel(QObject *parent = 0); | ||||||
|  | 	QHash<int, QByteArray> roleNames() const; | ||||||
|  | 	QVariant data(const QModelIndex &index, int role = AddressRole) const; | ||||||
|  | 	QString address(int idx) const; | ||||||
|  | 	int rowCount(const QModelIndex &parent = QModelIndex()) const; | ||||||
|  | 	void addAddress(const QString address); | ||||||
|  | private: | ||||||
|  | 	QStringList m_addresses; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
| class BTDiscovery : public QObject { | class BTDiscovery : public QObject { | ||||||
| 	Q_OBJECT | 	Q_OBJECT | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue