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
Reference in a new issue