mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	diveplanner: adjust sac-factor calculation.
The real values are 1.0 to 10.0, but QML needs int so mobile gets values 10.0 to 100.0 add sacfactor() to QMLInterface and update QML. Signed-off-by: jan Iversen <jan@casacondor.com>
This commit is contained in:
		
							parent
							
								
									cd3c2266f9
								
							
						
					
					
						commit
						86fd49f2d7
					
				
					 4 changed files with 27 additions and 16 deletions
				
			
		|  | @ -105,10 +105,18 @@ void plannerShared::set_decosac(double value) | |||
| 
 | ||||
| double plannerShared::sacfactor() | ||||
| { | ||||
| 	return qPrefDivePlanner::sacfactor() / 100.0; | ||||
| 	return qPrefDivePlanner::sacfactor() / | ||||
| #ifdef SUBSURFACE_MOBILE | ||||
| 			10.0; | ||||
| #else | ||||
| 			100.0; | ||||
| #endif | ||||
| } | ||||
| void plannerShared::set_sacfactor(double value) | ||||
| { | ||||
| #ifdef SUBSURFACE_MOBILE | ||||
| 	value /= 10.0; | ||||
| #endif | ||||
| 	// NO conversion, this is done in the planner model.
 | ||||
| 	DivePlannerPointsModel::instance()->setSacFactor(value); | ||||
| } | ||||
|  |  | |||
|  | @ -261,15 +261,15 @@ Kirigami.ScrollablePage { | |||
| 					text: qsTr("SAC factor") | ||||
| 				} | ||||
| 				TemplateSpinBox { | ||||
| 					from: 20 | ||||
| 					from: 10 | ||||
| 					to: 99 | ||||
| 					stepSize: 1 | ||||
| 					value: Planner.sacfactor | ||||
| 					value: Backend.sacfactor | ||||
| 					textFromValue: function (value, locale) { | ||||
| 						return (value / 10).toFixed(1) | ||||
| 					} | ||||
| 					onValueModified: { | ||||
| 						Planner.sacfactor = value | ||||
| 						Backend.sacfactor = value | ||||
| 					} | ||||
| 				} | ||||
| 				TemplateLabel { | ||||
|  |  | |||
|  | @ -69,6 +69,9 @@ void QMLInterface::setup(QQmlContext *ct) | |||
| 			instance(), &QMLInterface::bottomsacChanged); | ||||
| 	connect(qPrefDivePlanner::instance(), &qPrefDivePlanner::decosacChanged, | ||||
| 			instance(), &QMLInterface::decosacChanged); | ||||
| 	connect(qPrefDivePlanner::instance(), &qPrefDivePlanner::sacfactorChanged, | ||||
| 			instance(), &QMLInterface::sacfactorChanged); | ||||
| 
 | ||||
| 	connect(qPrefDivePlanner::instance(), &qPrefDivePlanner::display_runtimeChanged, | ||||
| 			instance(), &QMLInterface::display_runtimeChanged); | ||||
| 	connect(qPrefDivePlanner::instance(), &qPrefDivePlanner::display_durationChanged, | ||||
|  |  | |||
|  | @ -79,13 +79,13 @@ void TestPlannerShared::test_gas() | |||
| { | ||||
| 	// test independent of metric/imperial
 | ||||
| 	plannerShared::set_sacfactor(4.2); | ||||
| 	QCOMPARE(qPrefDivePlanner::sacfactor(), 420); | ||||
| 	QCOMPARE(qPrefDivePlanner::sacfactor(), 42); | ||||
| 	plannerShared::set_sacfactor(3.5); | ||||
| 	QCOMPARE(qPrefDivePlanner::sacfactor(), 350); | ||||
| 	QCOMPARE(qPrefDivePlanner::sacfactor(), 35); | ||||
| 	qPrefDivePlanner::set_sacfactor(280); | ||||
| 	QCOMPARE(plannerShared::sacfactor(), 2.8); | ||||
| 	QCOMPARE(plannerShared::sacfactor(), 28); | ||||
| 	qPrefDivePlanner::set_sacfactor(200); | ||||
| 	QCOMPARE(plannerShared::sacfactor(), 2.0); | ||||
| 	QCOMPARE(plannerShared::sacfactor(), 20); | ||||
| 
 | ||||
| 	// Set system to use meters
 | ||||
| 	qPrefUnits::set_unit_system(METRIC); | ||||
|  | @ -139,26 +139,26 @@ void TestPlannerShared::test_gas() | |||
| 	qPrefUnits::set_unit_system(IMPERIAL); | ||||
| 
 | ||||
| 	plannerShared::set_bottomsac(0.9); | ||||
| 	QCOMPARE(qPrefDivePlanner::bottomsac(), 25485); | ||||
| 	QCOMPARE(qPrefDivePlanner::bottomsac(), 255); | ||||
| 	plannerShared::set_bottomsac(0.01); | ||||
| 	QCOMPARE(qPrefDivePlanner::bottomsac(), 283); | ||||
| 	QCOMPARE(qPrefDivePlanner::bottomsac(), 3); | ||||
| 
 | ||||
| 	// Remark return will from qPref is in m / 1000.
 | ||||
| 	qPrefDivePlanner::set_bottomsac(2830); | ||||
| 	QCOMPARE(int(plannerShared::bottomsac() * 1000), 99); | ||||
| 	QCOMPARE(int(plannerShared::bottomsac()), 9); | ||||
| 	qPrefDivePlanner::set_bottomsac(16000); | ||||
| 	QCOMPARE(int(plannerShared::bottomsac() * 1000), 565); | ||||
| 	QCOMPARE(int(plannerShared::bottomsac()), 56); | ||||
| 
 | ||||
| 	plannerShared::set_decosac(0.9); | ||||
| 	QCOMPARE(qPrefDivePlanner::decosac(), 25485); | ||||
| 	QCOMPARE(qPrefDivePlanner::decosac(), 255); | ||||
| 	plannerShared::set_decosac(0.01); | ||||
| 	QCOMPARE(qPrefDivePlanner::decosac(), 283); | ||||
| 	QCOMPARE(qPrefDivePlanner::decosac(), 3); | ||||
| 
 | ||||
| 	// Remark return will from qPref is in m / 1000.
 | ||||
| 	qPrefDivePlanner::set_decosac(11500); | ||||
| 	QCOMPARE(int(plannerShared::decosac() * 1000), 406); | ||||
| 	QCOMPARE(int(plannerShared::decosac()), 40); | ||||
| 	qPrefDivePlanner::set_decosac(19800); | ||||
| 	QCOMPARE(int(plannerShared::decosac() * 1000), 699); | ||||
| 	QCOMPARE(int(plannerShared::decosac()), 69); | ||||
| 
 | ||||
| 	// Remark bottompo2 is in BAR, even though unit system is
 | ||||
| 	// Imperial, the desktop version is like that.
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue