mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Merge branch 'planner-mods'
Nothing exciting here, just a few independent changes close to each other. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
commit
0de21c24fa
6 changed files with 203 additions and 17 deletions
2
dive.h
2
dive.h
|
@ -837,7 +837,7 @@ struct diveplan {
|
||||||
struct divedatapoint *dp;
|
struct divedatapoint *dp;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct divedatapoint *plan_add_segment(struct diveplan *diveplan, int duration, int depth, int o2, int he, int po2);
|
struct divedatapoint *plan_add_segment(struct diveplan *diveplan, int duration, int depth, int o2, int he, int po2, bool entered);
|
||||||
void get_gas_string(int o2, int he, char *buf, int len);
|
void get_gas_string(int o2, int he, char *buf, int len);
|
||||||
struct divedatapoint *create_dp(int time_incr, int depth, int o2, int he, int po2);
|
struct divedatapoint *create_dp(int time_incr, int depth, int o2, int he, int po2);
|
||||||
void dump_plan(struct diveplan *diveplan);
|
void dump_plan(struct diveplan *diveplan);
|
||||||
|
|
11
planner.c
11
planner.c
|
@ -380,9 +380,10 @@ void add_to_end_of_diveplan(struct diveplan *diveplan, struct divedatapoint *dp)
|
||||||
dp->time += lasttime;
|
dp->time += lasttime;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct divedatapoint *plan_add_segment(struct diveplan *diveplan, int duration, int depth, int o2, int he, int po2)
|
struct divedatapoint *plan_add_segment(struct diveplan *diveplan, int duration, int depth, int o2, int he, int po2, bool entered)
|
||||||
{
|
{
|
||||||
struct divedatapoint *dp = create_dp(duration, depth, o2, he, po2);
|
struct divedatapoint *dp = create_dp(duration, depth, o2, he, po2);
|
||||||
|
dp->entered = entered;
|
||||||
add_to_end_of_diveplan(diveplan, dp);
|
add_to_end_of_diveplan(diveplan, dp);
|
||||||
return (dp);
|
return (dp);
|
||||||
}
|
}
|
||||||
|
@ -618,7 +619,7 @@ void plan(struct diveplan *diveplan, char **cached_datap, struct dive **divep, b
|
||||||
/* if all we wanted was the dive just get us back to the surface */
|
/* if all we wanted was the dive just get us back to the surface */
|
||||||
if (!add_deco) {
|
if (!add_deco) {
|
||||||
transitiontime = depth / 75; /* this still needs to be made configurable */
|
transitiontime = depth / 75; /* this still needs to be made configurable */
|
||||||
plan_add_segment(diveplan, transitiontime, 0, o2, he, po2);
|
plan_add_segment(diveplan, transitiontime, 0, o2, he, po2, false);
|
||||||
/* re-create the dive */
|
/* re-create the dive */
|
||||||
delete_single_dive(dive_table.nr - 1);
|
delete_single_dive(dive_table.nr - 1);
|
||||||
*divep = dive = create_dive_from_plan(diveplan);
|
*divep = dive = create_dive_from_plan(diveplan);
|
||||||
|
@ -660,7 +661,7 @@ void plan(struct diveplan *diveplan, char **cached_datap, struct dive **divep, b
|
||||||
#if DEBUG_PLAN & 2
|
#if DEBUG_PLAN & 2
|
||||||
printf("transitiontime %d:%02d to depth %5.2lfm\n", FRACTION(transitiontime, 60), stoplevels[stopidx] / 1000.0);
|
printf("transitiontime %d:%02d to depth %5.2lfm\n", FRACTION(transitiontime, 60), stoplevels[stopidx] / 1000.0);
|
||||||
#endif
|
#endif
|
||||||
plan_add_segment(diveplan, transitiontime, stoplevels[stopidx], o2, he, po2);
|
plan_add_segment(diveplan, transitiontime, stoplevels[stopidx], o2, he, po2, false);
|
||||||
/* re-create the dive */
|
/* re-create the dive */
|
||||||
delete_single_dive(dive_table.nr - 1);
|
delete_single_dive(dive_table.nr - 1);
|
||||||
*divep = dive = create_dive_from_plan(diveplan);
|
*divep = dive = create_dive_from_plan(diveplan);
|
||||||
|
@ -695,13 +696,13 @@ void plan(struct diveplan *diveplan, char **cached_datap, struct dive **divep, b
|
||||||
stoplevels[stopidx] / 1000.0, ceiling / 1000.0);
|
stoplevels[stopidx] / 1000.0, ceiling / 1000.0);
|
||||||
#endif
|
#endif
|
||||||
if (wait_time)
|
if (wait_time)
|
||||||
plan_add_segment(diveplan, wait_time, stoplevels[stopidx], o2, he, po2);
|
plan_add_segment(diveplan, wait_time, stoplevels[stopidx], o2, he, po2, false);
|
||||||
/* right now all the transitions are at 30ft/min - this needs to be configurable */
|
/* right now all the transitions are at 30ft/min - this needs to be configurable */
|
||||||
transitiontime = (stoplevels[stopidx] - stoplevels[stopidx - 1]) / 150;
|
transitiontime = (stoplevels[stopidx] - stoplevels[stopidx - 1]) / 150;
|
||||||
#if DEBUG_PLAN & 2
|
#if DEBUG_PLAN & 2
|
||||||
printf("transitiontime %d:%02d to depth %5.2lfm\n", FRACTION(transitiontime, 60), stoplevels[stopidx - 1] / 1000.0);
|
printf("transitiontime %d:%02d to depth %5.2lfm\n", FRACTION(transitiontime, 60), stoplevels[stopidx - 1] / 1000.0);
|
||||||
#endif
|
#endif
|
||||||
plan_add_segment(diveplan, transitiontime, stoplevels[stopidx - 1], o2, he, po2);
|
plan_add_segment(diveplan, transitiontime, stoplevels[stopidx - 1], o2, he, po2, false);
|
||||||
/* re-create the dive */
|
/* re-create the dive */
|
||||||
delete_single_dive(dive_table.nr - 1);
|
delete_single_dive(dive_table.nr - 1);
|
||||||
*divep = dive = create_dive_from_plan(diveplan);
|
*divep = dive = create_dive_from_plan(diveplan);
|
||||||
|
|
|
@ -41,6 +41,124 @@ QString dpGasToStr(const divedatapoint &p)
|
||||||
return gasToStr(p.o2, p.he);
|
return gasToStr(p.o2, p.he);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static DivePlannerDisplay *plannerDisplay = DivePlannerDisplay::instance();
|
||||||
|
|
||||||
|
DivePlannerDisplay::DivePlannerDisplay(QObject *parent) : QAbstractTableModel(parent)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
DivePlannerDisplay *DivePlannerDisplay::instance()
|
||||||
|
{
|
||||||
|
static QScopedPointer<DivePlannerDisplay> self(new DivePlannerDisplay());
|
||||||
|
return self.data();
|
||||||
|
}
|
||||||
|
|
||||||
|
int DivePlannerDisplay::size()
|
||||||
|
{
|
||||||
|
return computedPoints.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
int DivePlannerDisplay::columnCount(const QModelIndex &parent) const
|
||||||
|
{
|
||||||
|
return COLUMNS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariant DivePlannerDisplay::data(const QModelIndex &index, int role) const
|
||||||
|
{
|
||||||
|
if (role == Qt::DisplayRole) {
|
||||||
|
computedPoint p = computedPoints.at(index.row());
|
||||||
|
switch (index.column()) {
|
||||||
|
case COMPUTED_DEPTH:
|
||||||
|
return rint(get_depth_units(p.computedDepth, NULL, NULL));
|
||||||
|
case COMPUTED_DURATION:
|
||||||
|
return p.computedTime / 60;
|
||||||
|
}
|
||||||
|
} else if (role == Qt::DecorationRole) {
|
||||||
|
switch (index.column()) {
|
||||||
|
}
|
||||||
|
} else if (role == Qt::FontRole) {
|
||||||
|
return defaultModelFont();
|
||||||
|
}
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool DivePlannerDisplay::setData(const QModelIndex &index, const QVariant &value, int role)
|
||||||
|
{
|
||||||
|
if (role == Qt::EditRole) {
|
||||||
|
computedPoint &p = computedPoints[index.row()];
|
||||||
|
switch (index.column()) {
|
||||||
|
case COMPUTED_DEPTH:
|
||||||
|
p.computedDepth = units_to_depth(value.toInt());
|
||||||
|
break;
|
||||||
|
case COMPUTED_DURATION:
|
||||||
|
p.computedTime = value.toInt() * 60;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return QAbstractItemModel::setData(index, value, role);
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariant DivePlannerDisplay::headerData(int section, Qt::Orientation orientation, int role) const
|
||||||
|
{
|
||||||
|
if (role == Qt::DisplayRole && orientation == Qt::Horizontal) {
|
||||||
|
switch (section) {
|
||||||
|
case COMPUTED_DEPTH:
|
||||||
|
return tr("Comp. Depth");
|
||||||
|
case COMPUTED_DURATION:
|
||||||
|
return tr("Comp. Duration");
|
||||||
|
}
|
||||||
|
} else if (role == Qt::FontRole) {
|
||||||
|
return defaultModelFont();
|
||||||
|
}
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
|
||||||
|
Qt::ItemFlags DivePlannerDisplay::flags(const QModelIndex &index) const
|
||||||
|
{
|
||||||
|
return QAbstractItemModel::flags(index) | Qt::ItemIsEditable;
|
||||||
|
}
|
||||||
|
|
||||||
|
int DivePlannerDisplay::rowCount(const QModelIndex &parent) const
|
||||||
|
{
|
||||||
|
return computedPoints.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
struct computedPoint DivePlannerDisplay::at(int row)
|
||||||
|
{
|
||||||
|
return computedPoints.at(row);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DivePlannerDisplay::clear()
|
||||||
|
{
|
||||||
|
if (rowCount() > 0) {
|
||||||
|
beginRemoveRows(QModelIndex(), 0, rowCount() - 1);
|
||||||
|
computedPoints.clear();
|
||||||
|
endRemoveRows();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DivePlannerDisplay::removeStops()
|
||||||
|
{
|
||||||
|
if (rowCount() > 0) {
|
||||||
|
beginRemoveRows(QModelIndex(), 0, rowCount() - 1);
|
||||||
|
endRemoveRows();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DivePlannerDisplay::addStops()
|
||||||
|
{
|
||||||
|
int rows = computedPoints.size();
|
||||||
|
if (rows > 0) {
|
||||||
|
beginInsertRows(QModelIndex(), 0, rows - 1);
|
||||||
|
endInsertRows();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DivePlannerDisplay::insertPoint(const struct computedPoint &p)
|
||||||
|
{
|
||||||
|
computedPoints.append(p);
|
||||||
|
}
|
||||||
|
|
||||||
static DivePlannerPointsModel *plannerModel = DivePlannerPointsModel::instance();
|
static DivePlannerPointsModel *plannerModel = DivePlannerPointsModel::instance();
|
||||||
|
|
||||||
DivePlannerGraphics::DivePlannerGraphics(QWidget *parent) : QGraphicsView(parent),
|
DivePlannerGraphics::DivePlannerGraphics(QWidget *parent) : QGraphicsView(parent),
|
||||||
|
@ -391,16 +509,16 @@ void DivePlannerGraphics::mouseDoubleClickEvent(QMouseEvent *event)
|
||||||
|
|
||||||
int minutes = rint(timeLine->valueAt(mappedPos));
|
int minutes = rint(timeLine->valueAt(mappedPos));
|
||||||
int milimeters = rint(depthLine->valueAt(mappedPos) / M_OR_FT(1, 1)) * M_OR_FT(1, 1);
|
int milimeters = rint(depthLine->valueAt(mappedPos) / M_OR_FT(1, 1)) * M_OR_FT(1, 1);
|
||||||
plannerModel->addStop(milimeters, minutes * 60, -1, 0, 0);
|
plannerModel->addStop(milimeters, minutes * 60, -1, 0, 0, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DivePlannerPointsModel::createSimpleDive()
|
void DivePlannerPointsModel::createSimpleDive()
|
||||||
{
|
{
|
||||||
// plannerModel->addStop(0, 0, O2_IN_AIR, 0, 0);
|
// plannerModel->addStop(0, 0, O2_IN_AIR, 0, 0);
|
||||||
plannerModel->addStop(M_OR_FT(15, 45), 1 * 60, O2_IN_AIR, 0, 0);
|
plannerModel->addStop(M_OR_FT(15, 45), 1 * 60, O2_IN_AIR, 0, 0, true);
|
||||||
plannerModel->addStop(M_OR_FT(15, 45), 40 * 60, O2_IN_AIR, 0, 0);
|
plannerModel->addStop(M_OR_FT(15, 45), 40 * 60, O2_IN_AIR, 0, 0, true);
|
||||||
plannerModel->addStop(M_OR_FT(5, 15), 42 * 60, O2_IN_AIR, 0, 0);
|
plannerModel->addStop(M_OR_FT(5, 15), 42 * 60, O2_IN_AIR, 0, 0, true);
|
||||||
plannerModel->addStop(M_OR_FT(5, 15), 45 * 60, O2_IN_AIR, 0, 0);
|
plannerModel->addStop(M_OR_FT(5, 15), 45 * 60, O2_IN_AIR, 0, 0, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DivePlannerPointsModel::loadFromDive(dive *d)
|
void DivePlannerPointsModel::loadFromDive(dive *d)
|
||||||
|
@ -421,7 +539,7 @@ void DivePlannerPointsModel::loadFromDive(dive *d)
|
||||||
if (s.time.seconds == 0)
|
if (s.time.seconds == 0)
|
||||||
continue;
|
continue;
|
||||||
get_gas_from_events(&backupDive.dc, lasttime, &o2, &he);
|
get_gas_from_events(&backupDive.dc, lasttime, &o2, &he);
|
||||||
plannerModel->addStop(s.depth.mm, s.time.seconds, o2, he, 0);
|
plannerModel->addStop(s.depth.mm, s.time.seconds, o2, he, 0, true);
|
||||||
lasttime = s.time.seconds;
|
lasttime = s.time.seconds;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -510,6 +628,7 @@ void DivePlannerGraphics::drawProfile()
|
||||||
QPolygonF poly;
|
QPolygonF poly;
|
||||||
poly.append(QPointF(lastx, lasty));
|
poly.append(QPointF(lastx, lasty));
|
||||||
|
|
||||||
|
plannerDisplay->clear();
|
||||||
for (dp = diveplan.dp; dp != NULL; dp = dp->next) {
|
for (dp = diveplan.dp; dp != NULL; dp = dp->next) {
|
||||||
if (dp->time == 0) // magic entry for available tank
|
if (dp->time == 0) // magic entry for available tank
|
||||||
continue;
|
continue;
|
||||||
|
@ -520,12 +639,20 @@ void DivePlannerGraphics::drawProfile()
|
||||||
item->setPen(QPen(QBrush(Qt::red), 0));
|
item->setPen(QPen(QBrush(Qt::red), 0));
|
||||||
scene()->addItem(item);
|
scene()->addItem(item);
|
||||||
lines << item;
|
lines << item;
|
||||||
|
if (dp->depth) {
|
||||||
|
qDebug() << "Time: " << dp->time / 60 << " depth: " << dp->depth / 1000;
|
||||||
|
computedPoint p(dp->time, dp->depth);
|
||||||
|
plannerDisplay->insertPoint(p);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
lastx = xpos;
|
lastx = xpos;
|
||||||
lasty = ypos;
|
lasty = ypos;
|
||||||
poly.append(QPointF(lastx, lasty));
|
poly.append(QPointF(lastx, lasty));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qDebug() << " ";
|
||||||
|
plannerDisplay->addStops();
|
||||||
|
|
||||||
diveBg->setPolygon(poly);
|
diveBg->setPolygon(poly);
|
||||||
QRectF b = poly.boundingRect();
|
QRectF b = poly.boundingRect();
|
||||||
QLinearGradient pat(
|
QLinearGradient pat(
|
||||||
|
@ -932,6 +1059,8 @@ DivePlannerWidget::DivePlannerWidget(QWidget *parent, Qt::WindowFlags f) : QWidg
|
||||||
ui.tableWidget->setTitle(tr("Dive Planner Points"));
|
ui.tableWidget->setTitle(tr("Dive Planner Points"));
|
||||||
ui.tableWidget->setModel(DivePlannerPointsModel::instance());
|
ui.tableWidget->setModel(DivePlannerPointsModel::instance());
|
||||||
ui.tableWidget->view()->setItemDelegateForColumn(DivePlannerPointsModel::GAS, new AirTypesDelegate(this));
|
ui.tableWidget->view()->setItemDelegateForColumn(DivePlannerPointsModel::GAS, new AirTypesDelegate(this));
|
||||||
|
ui.tableWidgetComp->setTitle(tr("Computed Waypoints"));
|
||||||
|
ui.tableWidgetComp->setModel(DivePlannerDisplay::instance());
|
||||||
ui.cylinderTableWidget->setTitle(tr("Available Gases"));
|
ui.cylinderTableWidget->setTitle(tr("Available Gases"));
|
||||||
ui.cylinderTableWidget->setModel(CylindersModel::instance());
|
ui.cylinderTableWidget->setModel(CylindersModel::instance());
|
||||||
QTableView *view = ui.cylinderTableWidget->view();
|
QTableView *view = ui.cylinderTableWidget->view();
|
||||||
|
@ -952,6 +1081,7 @@ DivePlannerWidget::DivePlannerWidget(QWidget *parent, Qt::WindowFlags f) : QWidg
|
||||||
GasSelectionModel::instance(), SLOT(repopulate()));
|
GasSelectionModel::instance(), SLOT(repopulate()));
|
||||||
|
|
||||||
ui.tableWidget->setBtnToolTip(tr("add dive data point"));
|
ui.tableWidget->setBtnToolTip(tr("add dive data point"));
|
||||||
|
ui.tableWidgetComp->setBtnToolTip(tr("This does nothing, and should be removed"));
|
||||||
connect(ui.startTime, SIGNAL(timeChanged(QTime)), plannerModel, SLOT(setStartTime(QTime)));
|
connect(ui.startTime, SIGNAL(timeChanged(QTime)), plannerModel, SLOT(setStartTime(QTime)));
|
||||||
connect(ui.ATMPressure, SIGNAL(textChanged(QString)), this, SLOT(atmPressureChanged(QString)));
|
connect(ui.ATMPressure, SIGNAL(textChanged(QString)), this, SLOT(atmPressureChanged(QString)));
|
||||||
connect(ui.bottomSAC, SIGNAL(textChanged(QString)), this, SLOT(bottomSacChanged(QString)));
|
connect(ui.bottomSAC, SIGNAL(textChanged(QString)), this, SLOT(bottomSacChanged(QString)));
|
||||||
|
@ -1186,7 +1316,7 @@ bool DivePlannerPointsModel::addGas(int o2, int he)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int DivePlannerPointsModel::addStop(int milimeters, int seconds, int o2, int he, int ccpoint)
|
int DivePlannerPointsModel::addStop(int milimeters, int seconds, int o2, int he, int ccpoint, bool entered)
|
||||||
{
|
{
|
||||||
int row = divepoints.count();
|
int row = divepoints.count();
|
||||||
if (seconds == 0 && milimeters == 0 && row != 0) {
|
if (seconds == 0 && milimeters == 0 && row != 0) {
|
||||||
|
@ -1253,6 +1383,7 @@ int DivePlannerPointsModel::addStop(int milimeters, int seconds, int o2, int he,
|
||||||
point.o2 = o2;
|
point.o2 = o2;
|
||||||
point.he = he;
|
point.he = he;
|
||||||
point.po2 = ccpoint;
|
point.po2 = ccpoint;
|
||||||
|
point.entered = entered;
|
||||||
divepoints.append(point);
|
divepoints.append(point);
|
||||||
std::sort(divepoints.begin(), divepoints.end(), divePointsLessThan);
|
std::sort(divepoints.begin(), divepoints.end(), divePointsLessThan);
|
||||||
endInsertRows();
|
endInsertRows();
|
||||||
|
@ -1410,7 +1541,8 @@ 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;
|
||||||
plan_add_segment(&diveplan, deltaT, p.depth, p.o2, p.he, p.po2);
|
p.entered = true;
|
||||||
|
plan_add_segment(&diveplan, deltaT, p.depth, p.o2, p.he, p.po2, true);
|
||||||
}
|
}
|
||||||
char *cache = NULL;
|
char *cache = NULL;
|
||||||
tempDive = NULL;
|
tempDive = NULL;
|
||||||
|
|
|
@ -12,6 +12,43 @@
|
||||||
class QListView;
|
class QListView;
|
||||||
class QModelIndex;
|
class QModelIndex;
|
||||||
|
|
||||||
|
struct computedPoint {
|
||||||
|
int computedTime;
|
||||||
|
unsigned int computedDepth;
|
||||||
|
computedPoint(int computedTime_, unsigned int computedDepth_) {
|
||||||
|
computedTime = computedTime_;
|
||||||
|
computedDepth = computedDepth_;
|
||||||
|
};
|
||||||
|
computedPoint() {};
|
||||||
|
};
|
||||||
|
|
||||||
|
class DivePlannerDisplay : public QAbstractTableModel {
|
||||||
|
Q_OBJECT
|
||||||
|
private:
|
||||||
|
explicit DivePlannerDisplay(QObject *parent = 0);
|
||||||
|
QVector<computedPoint> computedPoints;
|
||||||
|
|
||||||
|
public:
|
||||||
|
static DivePlannerDisplay *instance();
|
||||||
|
enum Sections {
|
||||||
|
COMPUTED_DEPTH,
|
||||||
|
COMPUTED_DURATION,
|
||||||
|
COLUMNS
|
||||||
|
};
|
||||||
|
virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
|
||||||
|
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
|
||||||
|
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
|
||||||
|
virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
|
||||||
|
virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
|
||||||
|
virtual Qt::ItemFlags flags(const QModelIndex &index) const;
|
||||||
|
void clear();
|
||||||
|
computedPoint at(int row);
|
||||||
|
int size();
|
||||||
|
void removeStops();
|
||||||
|
void addStops();
|
||||||
|
void insertPoint(const struct computedPoint &p);
|
||||||
|
};
|
||||||
|
|
||||||
class DivePlannerPointsModel : public QAbstractTableModel {
|
class DivePlannerPointsModel : public QAbstractTableModel {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
|
@ -57,7 +94,7 @@ public:
|
||||||
|
|
||||||
public
|
public
|
||||||
slots:
|
slots:
|
||||||
int addStop(int millimeters = 0, int seconds = 0, int o2 = 0, int he = 0, int ccpoint = 0);
|
int addStop(int millimeters = 0, int seconds = 0, int o2 = 0, int he = 0, int ccpoint = 0, bool entered = true);
|
||||||
void addCylinder_clicked();
|
void addCylinder_clicked();
|
||||||
void setGFHigh(const int gfhigh);
|
void setGFHigh(const int gfhigh);
|
||||||
void setGFLow(const int ghflow);
|
void setGFLow(const int ghflow);
|
||||||
|
|
|
@ -142,7 +142,7 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="8" column="0" colspan="2">
|
<item row="8" column="0" colspan="1">
|
||||||
<widget class="TableView" name="tableWidget" native="true">
|
<widget class="TableView" name="tableWidget" native="true">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
|
||||||
|
@ -158,6 +158,22 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="8" column="1" colspan="1">
|
||||||
|
<widget class="TableView" name="tableWidgetComp" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>50</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="9" column="0" colspan="2">
|
<item row="9" column="0" colspan="2">
|
||||||
<widget class="QDialogButtonBox" name="buttonBox">
|
<widget class="QDialogButtonBox" name="buttonBox">
|
||||||
<property name="standardButtons">
|
<property name="standardButtons">
|
||||||
|
|
|
@ -85,7 +85,7 @@ MainWindow::MainWindow() : QMainWindow(),
|
||||||
ui.divePlannerWidget->settingsChanged();
|
ui.divePlannerWidget->settingsChanged();
|
||||||
|
|
||||||
#ifndef ENABLE_PLANNER
|
#ifndef ENABLE_PLANNER
|
||||||
ui.menuLog->removeAction(ui.actionDivePlanner);
|
// ui.menuLog->removeAction(ui.actionDivePlanner);
|
||||||
#endif
|
#endif
|
||||||
#ifdef NO_MARBLE
|
#ifdef NO_MARBLE
|
||||||
ui.layoutWidget->hide();
|
ui.layoutWidget->hide();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue