void DivePlannerWidget::heightChanged(const int height) { int pressure = (int) (1013.0 * exp(- (double) units_to_depth((double) height) / 7800000.0)); ui.ATMPressure->blockSignals(true); ui.ATMPressure->setValue(pressure); ui.ATMPressure->blockSignals(false); plannerModel->setSurfacePressure(pressure); }
bool DivePlannerPointsModel::setData(const QModelIndex &index, const QVariant &value, int role) { int i, shift; if (role == Qt::EditRole) { divedatapoint &p = divepoints[index.row()]; switch (index.column()) { case DEPTH: if (value.toInt() >= 0) { p.depth = units_to_depth(value.toInt()); if (updateMaxDepth()) CylindersModel::instance()->updateBestMixes(); } break; case RUNTIME: p.time = value.toInt() * 60; break; case DURATION: i = index.row(); if (i) shift = divepoints[i].time - divepoints[i - 1].time - value.toInt() * 60; else shift = divepoints[i].time - value.toInt() * 60; while (i < divepoints.size()) divepoints[i++].time -= shift; break; case CCSETPOINT: { int po2 = 0; QByteArray gasv = value.toByteArray(); if (validate_po2(gasv.data(), &po2)) p.setpoint = po2; } break; case GAS: if (value.toInt() >= 0 && value.toInt() < MAX_CYLINDERS) p.cylinderid = value.toInt(); CylindersModel::instance()->updateTrashIcon(); break; } editStop(index.row(), p); } return QAbstractItemModel::setData(index, value, role); }
bool DivePlannerPointsModel::setData(const QModelIndex &index, const QVariant &value, int role) { struct gasmix gas = { 0 }; int i, shift; if (role == Qt::EditRole) { divedatapoint &p = divepoints[index.row()]; switch (index.column()) { case DEPTH: if (value.toInt() >= 0) p.depth = units_to_depth(value.toInt()); break; case RUNTIME: p.time = value.toInt() * 60; break; case DURATION: i = index.row(); if (i) shift = divepoints[i].time - divepoints[i - 1].time - value.toInt() * 60; else shift = divepoints[i].time - value.toInt() * 60; while (i < divepoints.size()) divepoints[i++].time -= shift; break; case CCSETPOINT: { int po2 = 0; QByteArray gasv = value.toByteArray(); if (validate_po2(gasv.data(), &po2)) p.setpoint = po2; } break; case GAS: QByteArray gasv = value.toByteArray(); if (validate_gas(gasv.data(), &gas)) p.gasmix = gas; break; } editStop(index.row(), p); } return QAbstractItemModel::setData(index, value, role); }