mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Divecomputer download: try to offer only those devices that make sense
If the user selects a Uemis divecomputer, don't show serial devices. If the user selects a serial divecomputer, don't show the Uemis filesystem. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									6d42a99e7f
								
							
						
					
					
						commit
						047032ee46
					
				
					 7 changed files with 178 additions and 111 deletions
				
			
		| 
						 | 
				
			
			@ -56,7 +56,7 @@ DownloadFromDCWidget::DownloadFromDCWidget(QWidget *parent, Qt::WindowFlags f) :
 | 
			
		|||
 | 
			
		||||
	progress_bar_text = "";
 | 
			
		||||
 | 
			
		||||
	fill_device_list();
 | 
			
		||||
	fill_device_list(DC_TYPE_OTHER);
 | 
			
		||||
	fill_computer_list();
 | 
			
		||||
 | 
			
		||||
	ui.chooseDumpFile->setEnabled(ui.dumpToFile->isChecked());
 | 
			
		||||
| 
						 | 
				
			
			@ -104,7 +104,7 @@ void DownloadFromDCWidget::updateState(states state)
 | 
			
		|||
		return;
 | 
			
		||||
 | 
			
		||||
	if (state == INITIAL) {
 | 
			
		||||
		fill_device_list();
 | 
			
		||||
		fill_device_list(DC_TYPE_OTHER);
 | 
			
		||||
		ui.progressBar->hide();
 | 
			
		||||
		markChildrenAsEnabled();
 | 
			
		||||
		timer->stop();
 | 
			
		||||
| 
						 | 
				
			
			@ -176,6 +176,7 @@ void DownloadFromDCWidget::updateState(states state)
 | 
			
		|||
 | 
			
		||||
void DownloadFromDCWidget::on_vendor_currentIndexChanged(const QString &vendor)
 | 
			
		||||
{
 | 
			
		||||
	int dcType = DC_TYPE_SERIAL;
 | 
			
		||||
	QAbstractItemModel *currentModel = ui.product->model();
 | 
			
		||||
	if (!currentModel)
 | 
			
		||||
		return;
 | 
			
		||||
| 
						 | 
				
			
			@ -183,6 +184,10 @@ void DownloadFromDCWidget::on_vendor_currentIndexChanged(const QString &vendor)
 | 
			
		|||
	productModel = new QStringListModel(productList[vendor]);
 | 
			
		||||
	ui.product->setModel(productModel);
 | 
			
		||||
 | 
			
		||||
	if (vendor == QString("Uemis"))
 | 
			
		||||
		dcType = DC_TYPE_UEMIS;
 | 
			
		||||
	fill_device_list(dcType);
 | 
			
		||||
 | 
			
		||||
	// Memleak - but deleting gives me a crash.
 | 
			
		||||
	//currentModel->deleteLater();
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -429,11 +434,11 @@ static void fillDeviceList(const char *name, void *data)
 | 
			
		|||
	comboBox->addItem(name);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void DownloadFromDCWidget::fill_device_list()
 | 
			
		||||
void DownloadFromDCWidget::fill_device_list(int dc_type)
 | 
			
		||||
{
 | 
			
		||||
	int deviceIndex;
 | 
			
		||||
	ui.device->clear();
 | 
			
		||||
	deviceIndex = enumerate_devices(fillDeviceList, ui.device);
 | 
			
		||||
	deviceIndex = enumerate_devices(fillDeviceList, ui.device, dc_type);
 | 
			
		||||
	if (deviceIndex >= 0)
 | 
			
		||||
		ui.device->setCurrentIndex(deviceIndex);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue