mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	implement device probe in C
It's an attempt to build auto-completion for the dive-computers based on unpublished code inside libdivecomputer[1] [1] - http://git.libdivecomputer.org/?p=libdivecomputer.git;a=commitdiff;h=d44053a99435fb9fc1f408fb3f1629a54c938afc Signed-off-by: Danilo Cesar Lemes de Paula <danilo.eu@gmail.com>
This commit is contained in:
		
							parent
							
								
									f5b33dede3
								
							
						
					
					
						commit
						a8d33f80b0
					
				
					 7 changed files with 171 additions and 5 deletions
				
			
		|  | @ -51,6 +51,8 @@ DownloadFromDCWidget::DownloadFromDCWidget(QWidget* parent, Qt::WindowFlags f) : | |||
| 	ui->progressBar->hide(); | ||||
| 	ui->progressBar->setMinimum(0); | ||||
| 	ui->progressBar->setMaximum(100); | ||||
| 
 | ||||
| 	fill_device_list(); | ||||
| 	fill_computer_list(); | ||||
| 
 | ||||
| 	vendorModel = new QStringListModel(vendorList); | ||||
|  | @ -63,7 +65,7 @@ DownloadFromDCWidget::DownloadFromDCWidget(QWidget* parent, Qt::WindowFlags f) : | |||
| 			ui->product->setCurrentIndex(ui->product->findText(default_dive_computer_product)); | ||||
| 	} | ||||
| 	if (default_dive_computer_device) | ||||
| 		ui->device->setText(default_dive_computer_device); | ||||
| 		ui->device->setEditText(default_dive_computer_device); | ||||
| 
 | ||||
| 	timer->setInterval(200); | ||||
| 	connect(timer, SIGNAL(timeout()), this, SLOT(updateProgressBar())); | ||||
|  | @ -89,6 +91,7 @@ void DownloadFromDCWidget::updateState(states state) | |||
| 		return; | ||||
| 
 | ||||
| 	if (state == INITIAL) { | ||||
| 		fill_device_list(); | ||||
| 		ui->progressBar->hide(); | ||||
| 		markChildrenAsEnabled(); | ||||
| 		timer->stop(); | ||||
|  | @ -217,7 +220,7 @@ void DownloadFromDCWidget::on_ok_clicked() | |||
| 		thread->deleteLater(); | ||||
| 	} | ||||
| 
 | ||||
| 	data.devname = strdup(ui->device->text().toUtf8().data()); | ||||
| 	data.devname = strdup(ui->device->currentText().toUtf8().data()); | ||||
| 	data.vendor = strdup(ui->vendor->currentText().toUtf8().data()); | ||||
| 	data.product = strdup(ui->product->currentText().toUtf8().data()); | ||||
| 
 | ||||
|  | @ -285,6 +288,21 @@ void DownloadFromDCWidget::markChildrenAsEnabled() | |||
| 	ui->search->setDisabled(false); | ||||
| } | ||||
| 
 | ||||
| static void fillDeviceList(const char *name, void *data) | ||||
| { | ||||
| 	QComboBox *comboBox = (QComboBox *)data; | ||||
| 	comboBox->addItem(name); | ||||
| } | ||||
| 
 | ||||
| void DownloadFromDCWidget::fill_device_list() | ||||
| { | ||||
| 	int deviceIndex; | ||||
| 	ui->device->clear(); | ||||
| 	deviceIndex = enumerate_devices(fillDeviceList, ui->device); | ||||
| 	if (deviceIndex >= 0) | ||||
| 		ui->device->setCurrentIndex(deviceIndex); | ||||
| } | ||||
| 
 | ||||
| DownloadThread::DownloadThread(QObject* parent, device_data_t* data): QThread(parent), | ||||
| 	data(data) | ||||
| { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue