mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Allow user to disable a cylinder in planner
In the cylinder table, the last column ("use") always showed
OC-GAS. Editing was enabled, but the user had to guess to enter
a small integer meaning dilluent or CCR oxygen cylingder. I guess,
nobody has ever done that.
This patch makes this column clickable. A click toggles if the cylinder
is used for planning or not. This wait it is much easier to investigate
the consequences of gas loss on a plan.
Signed-off-by: Robert C. Helling <helling@atdotde.de>
			
			
This commit is contained in:
		
							parent
							
								
									79bba04fd4
								
							
						
					
					
						commit
						c1dc0c9ce0
					
				
					 4 changed files with 15 additions and 4 deletions
				
			
		|  | @ -30,7 +30,7 @@ static const char *default_tags[] = { | |||
| }; | ||||
| 
 | ||||
| const char *cylinderuse_text[] = { | ||||
| 	QT_TRANSLATE_NOOP("gettextFromC", "OC-gas"), QT_TRANSLATE_NOOP("gettextFromC", "diluent"), QT_TRANSLATE_NOOP("gettextFromC", "oxygen") | ||||
| 	QT_TRANSLATE_NOOP("gettextFromC", "OC-gas"), QT_TRANSLATE_NOOP("gettextFromC", "diluent"), QT_TRANSLATE_NOOP("gettextFromC", "oxygen"), QT_TRANSLATE_NOOP("gettextFromC", "not used") | ||||
| }; | ||||
| const char *divemode_text[] = { "OC", "CCR", "PSCR", "Freedive" }; | ||||
| 
 | ||||
|  |  | |||
|  | @ -56,7 +56,7 @@ extern "C" { | |||
| extern int last_xml_version; | ||||
| 
 | ||||
| enum dive_comp_type {OC, CCR, PSCR, FREEDIVE, NUM_DC_TYPE};	// Flags (Open-circuit and Closed-circuit-rebreather) for setting dive computer type
 | ||||
| enum cylinderuse {OC_GAS, DILUENT, OXYGEN, NUM_GAS_USE}; // The different uses for cylinders
 | ||||
| enum cylinderuse {OC_GAS, DILUENT, OXYGEN, NOT_USED, NUM_GAS_USE}; // The different uses for cylinders
 | ||||
| 
 | ||||
| extern const char *cylinderuse_text[]; | ||||
| extern const char *divemode_text[]; | ||||
|  |  | |||
|  | @ -480,7 +480,7 @@ void CylindersModel::copyFromDive(dive *d) | |||
| 
 | ||||
| Qt::ItemFlags CylindersModel::flags(const QModelIndex &index) const | ||||
| { | ||||
| 	if (index.column() == REMOVE) | ||||
| 	if (index.column() == REMOVE || index.column() == USE) | ||||
| 		return Qt::ItemIsEnabled; | ||||
| 	return QAbstractItemModel::flags(index) | Qt::ItemIsEditable; | ||||
| } | ||||
|  | @ -488,6 +488,17 @@ Qt::ItemFlags CylindersModel::flags(const QModelIndex &index) const | |||
| void CylindersModel::remove(const QModelIndex &index) | ||||
| { | ||||
| 	int mapping[MAX_CYLINDERS]; | ||||
| 
 | ||||
| 	if (index.column() == USE) { | ||||
| 		cylinder_t *cyl = cylinderAt(index); | ||||
| 		if (cyl->cylinder_use == OC_GAS) | ||||
| 			cyl->cylinder_use = NOT_USED; | ||||
| 		else if (cyl->cylinder_use == NOT_USED) | ||||
| 			cyl->cylinder_use = OC_GAS; | ||||
| 		changed = true; | ||||
| 		dataChanged(index, index); | ||||
| 		return; | ||||
| 	} | ||||
| 	if (index.column() != REMOVE) { | ||||
| 		return; | ||||
| 	} | ||||
|  |  | |||
|  | @ -798,7 +798,7 @@ void DivePlannerPointsModel::createTemporaryPlan() | |||
| 	struct divedatapoint *dp = NULL; | ||||
| 	for (int i = 0; i < MAX_CYLINDERS; i++) { | ||||
| 		cylinder_t *cyl = &displayed_dive.cylinder[i]; | ||||
| 		if (cyl->depth.mm) { | ||||
| 		if (cyl->depth.mm && cyl->cylinder_use != NOT_USED) { | ||||
| 			dp = create_dp(0, cyl->depth.mm, i, 0); | ||||
| 			if (diveplan.dp) { | ||||
| 				dp->next = diveplan.dp; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue