mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Drop like a stone mode in planner
Most of my dives i plan i know it will just be full speed down a line in the beginning and thus the planner can figure out that leg of the plan by it self. The config box added here isn't connected, because i saw that the other planner boxes wasn't connected ether, so i left it in the same state as they where. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									5904be2e06
								
							
						
					
					
						commit
						ccfdcca6e6
					
				
					 4 changed files with 75 additions and 0 deletions
				
			
		|  | @ -276,6 +276,7 @@ DivePlannerWidget::DivePlannerWidget(QWidget *parent, Qt::WindowFlags f) : QWidg | ||||||
| 	connect(ui.gflow, SIGNAL(valueChanged(int)), plannerModel, SLOT(setGFLow(int))); | 	connect(ui.gflow, SIGNAL(valueChanged(int)), plannerModel, SLOT(setGFLow(int))); | ||||||
| 	connect(ui.gflow, SIGNAL(editingFinished()), plannerModel, SLOT(emitDataChanged())); | 	connect(ui.gflow, SIGNAL(editingFinished()), plannerModel, SLOT(emitDataChanged())); | ||||||
| 	connect(ui.printPlan, SIGNAL(pressed()), this, SLOT(printDecoPlan())); | 	connect(ui.printPlan, SIGNAL(pressed()), this, SLOT(printDecoPlan())); | ||||||
|  | 	connect(ui.drop_stone_mode, SIGNAL(toggled(bool)), plannerModel, SLOT(setDropStoneMode(bool))); | ||||||
| #ifdef NO_PRINTING | #ifdef NO_PRINTING | ||||||
| 	ui.printPlan->hide(); | 	ui.printPlan->hide(); | ||||||
| #endif | #endif | ||||||
|  | @ -583,6 +584,28 @@ void DivePlannerPointsModel::setDisplayTransitions(bool value) | ||||||
| 	emit dataChanged(createIndex(0, 0), createIndex(rowCount() - 1, COLUMNS - 1)); | 	emit dataChanged(createIndex(0, 0), createIndex(rowCount() - 1, COLUMNS - 1)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void DivePlannerPointsModel::setDropStoneMode(bool value) | ||||||
|  | { | ||||||
|  | 	drop_stone_mode = value; | ||||||
|  | 	if (drop_stone_mode) { | ||||||
|  | 	/* Remove the first entry if we enable drop_stone_mode */ | ||||||
|  | 		if (rowCount() >= 2) { | ||||||
|  | 			beginRemoveRows(QModelIndex(), 0, 0); | ||||||
|  | 			divepoints.remove(0); | ||||||
|  | 			endRemoveRows(); | ||||||
|  | 		} | ||||||
|  | 	} else { | ||||||
|  | 		/* Add a first entry if we disable drop_stone_mode */ | ||||||
|  | 		beginInsertRows(QModelIndex(), 0, 0); | ||||||
|  | 		/* Copy the first current point */ | ||||||
|  | 		divedatapoint p = divepoints.at(0); | ||||||
|  | 		p.time = p.depth / 300; | ||||||
|  | 		divepoints.push_front(p); | ||||||
|  | 		endInsertRows(); | ||||||
|  | 	} | ||||||
|  | 	emit dataChanged(createIndex(0, 0), createIndex(rowCount() - 1, COLUMNS - 1)); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| void DivePlannerPointsModel::setStartTime(const QTime &t) | void DivePlannerPointsModel::setStartTime(const QTime &t) | ||||||
| { | { | ||||||
| 	diveplan.when = (t.msec() + QDateTime::currentMSecsSinceEpoch()) / 1000 - gettimezoneoffset(); | 	diveplan.when = (t.msec() + QDateTime::currentMSecsSinceEpoch()) / 1000 - gettimezoneoffset(); | ||||||
|  | @ -860,6 +883,12 @@ void DivePlannerPointsModel::createTemporaryPlan() | ||||||
| 		divedatapoint p = at(i); | 		divedatapoint p = at(i); | ||||||
| 		int deltaT = lastIndex != -1 ? p.time - at(lastIndex).time : p.time; | 		int deltaT = lastIndex != -1 ? p.time - at(lastIndex).time : p.time; | ||||||
| 		lastIndex = i; | 		lastIndex = i; | ||||||
|  | 		if (i == 0 && drop_stone_mode) { | ||||||
|  | 			/* Okay, we add a fist segment where we go down to depth */ | ||||||
|  | 			/* FIXME: make this configurable, now hard-coded to 18 m/s */ | ||||||
|  | 			plan_add_segment(&diveplan, p.depth / 300, p.depth, p.gasmix, p.po2, false); | ||||||
|  | 			deltaT -= p.depth / 300; | ||||||
|  | 		} | ||||||
| 		if (p.entered) | 		if (p.entered) | ||||||
| 			plan_add_segment(&diveplan, deltaT, p.depth, p.gasmix, p.po2, true); | 			plan_add_segment(&diveplan, deltaT, p.depth, p.gasmix, p.po2, true); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -73,6 +73,7 @@ slots: | ||||||
| 	void setDecoSac(int sac); | 	void setDecoSac(int sac); | ||||||
| 	void setStartTime(const QTime &t); | 	void setStartTime(const QTime &t); | ||||||
| 	void setLastStop6m(bool value); | 	void setLastStop6m(bool value); | ||||||
|  | 	void setDropStoneMode(bool value); | ||||||
| 	void setVerbatim(bool value); | 	void setVerbatim(bool value); | ||||||
| 	void setDisplayRuntime(bool value); | 	void setDisplayRuntime(bool value); | ||||||
| 	void setDisplayDuration(bool value); | 	void setDisplayDuration(bool value); | ||||||
|  | @ -104,6 +105,7 @@ private: | ||||||
| 	QVector<sample> backupSamples; // For editing added dives.
 | 	QVector<sample> backupSamples; // For editing added dives.
 | ||||||
| 	struct dive *stagingDive; | 	struct dive *stagingDive; | ||||||
| 	QVector<QPair<int, int> > oldGases; | 	QVector<QPair<int, int> > oldGases; | ||||||
|  | 	bool drop_stone_mode; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| class DiveHandler : public QObject, public QGraphicsEllipseItem { | class DiveHandler : public QObject, public QGraphicsEllipseItem { | ||||||
|  |  | ||||||
|  | @ -185,6 +185,13 @@ | ||||||
|          </property> |          </property> | ||||||
|         </widget> |         </widget> | ||||||
|        </item> |        </item> | ||||||
|  |        <item row="6" column="0"> | ||||||
|  |         <widget class="QCheckBox" name="drop_stone_mode"> | ||||||
|  |          <property name="text"> | ||||||
|  |           <string>Drop like a stone mode</string> | ||||||
|  |          </property> | ||||||
|  |         </widget> | ||||||
|  |        </item> | ||||||
|        <item row="6" column="1"> |        <item row="6" column="1"> | ||||||
|         <widget class="QPushButton" name="printPlan"> |         <widget class="QPushButton" name="printPlan"> | ||||||
|          <property name="text"> |          <property name="text"> | ||||||
|  |  | ||||||
|  | @ -244,6 +244,42 @@ | ||||||
|          </property> |          </property> | ||||||
|         </widget> |         </widget> | ||||||
|        </item> |        </item> | ||||||
|  |        <item row="5" column="0"> | ||||||
|  |         <widget class="QLabel" name="label_8"> | ||||||
|  |          <property name="text"> | ||||||
|  |           <string>Decent rate</string> | ||||||
|  |          </property> | ||||||
|  |         </widget> | ||||||
|  |        </item> | ||||||
|  |        <item row="6" column="0"> | ||||||
|  |         <widget class="QLabel" name="label_9"> | ||||||
|  |          <property name="text"> | ||||||
|  |           <string>surface to the bottom</string> | ||||||
|  |          </property> | ||||||
|  |         </widget> | ||||||
|  |        </item> | ||||||
|  |        <item row="6" column="1"> | ||||||
|  |         <widget class="QSpinBox" name="descRate"> | ||||||
|  |          <property name="sizePolicy"> | ||||||
|  |           <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> | ||||||
|  |            <horstretch>0</horstretch> | ||||||
|  |            <verstretch>0</verstretch> | ||||||
|  |           </sizepolicy> | ||||||
|  |          </property> | ||||||
|  |          <property name="maximumSize"> | ||||||
|  |           <size> | ||||||
|  |            <width>16777215</width> | ||||||
|  |            <height>20</height> | ||||||
|  |           </size> | ||||||
|  |          </property> | ||||||
|  |          <property name="minimum"> | ||||||
|  |           <number>1</number> | ||||||
|  |          </property> | ||||||
|  |          <property name="value"> | ||||||
|  |           <number>18</number> | ||||||
|  |          </property> | ||||||
|  |         </widget> | ||||||
|  |        </item> | ||||||
|       </layout> |       </layout> | ||||||
|      </widget> |      </widget> | ||||||
|     </item> |     </item> | ||||||
|  | @ -263,6 +299,7 @@ | ||||||
|   <tabstop>backgasBreaks</tabstop> |   <tabstop>backgasBreaks</tabstop> | ||||||
|   <tabstop>ascRate75_2</tabstop> |   <tabstop>ascRate75_2</tabstop> | ||||||
|   <tabstop>ascRate75_3</tabstop> |   <tabstop>ascRate75_3</tabstop> | ||||||
|  |   <tabstop>descRate</tabstop> | ||||||
|  </tabstops> |  </tabstops> | ||||||
|  <resources/> |  <resources/> | ||||||
|  <connections/> |  <connections/> | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue