mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Allow user to disable a cylinder in planner
In the cylinder table, the last column ("use") always showed OC-GAS. Editing was enabled, but the user had to guess to enter a small integer meaning dilluent or CCR oxygen cylingder. I guess, nobody has ever done that. This patch makes this column clickable. A click toggles if the cylinder is used for planning or not. This wait it is much easier to investigate the consequences of gas loss on a plan. Signed-off-by: Robert C. Helling <helling@atdotde.de>
This commit is contained in:
parent
79bba04fd4
commit
c1dc0c9ce0
4 changed files with 15 additions and 4 deletions
|
@ -30,7 +30,7 @@ static const char *default_tags[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
const char *cylinderuse_text[] = {
|
const char *cylinderuse_text[] = {
|
||||||
QT_TRANSLATE_NOOP("gettextFromC", "OC-gas"), QT_TRANSLATE_NOOP("gettextFromC", "diluent"), QT_TRANSLATE_NOOP("gettextFromC", "oxygen")
|
QT_TRANSLATE_NOOP("gettextFromC", "OC-gas"), QT_TRANSLATE_NOOP("gettextFromC", "diluent"), QT_TRANSLATE_NOOP("gettextFromC", "oxygen"), QT_TRANSLATE_NOOP("gettextFromC", "not used")
|
||||||
};
|
};
|
||||||
const char *divemode_text[] = { "OC", "CCR", "PSCR", "Freedive" };
|
const char *divemode_text[] = { "OC", "CCR", "PSCR", "Freedive" };
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ extern "C" {
|
||||||
extern int last_xml_version;
|
extern int last_xml_version;
|
||||||
|
|
||||||
enum dive_comp_type {OC, CCR, PSCR, FREEDIVE, NUM_DC_TYPE}; // Flags (Open-circuit and Closed-circuit-rebreather) for setting dive computer type
|
enum dive_comp_type {OC, CCR, PSCR, FREEDIVE, NUM_DC_TYPE}; // Flags (Open-circuit and Closed-circuit-rebreather) for setting dive computer type
|
||||||
enum cylinderuse {OC_GAS, DILUENT, OXYGEN, NUM_GAS_USE}; // The different uses for cylinders
|
enum cylinderuse {OC_GAS, DILUENT, OXYGEN, NOT_USED, NUM_GAS_USE}; // The different uses for cylinders
|
||||||
|
|
||||||
extern const char *cylinderuse_text[];
|
extern const char *cylinderuse_text[];
|
||||||
extern const char *divemode_text[];
|
extern const char *divemode_text[];
|
||||||
|
|
|
@ -480,7 +480,7 @@ void CylindersModel::copyFromDive(dive *d)
|
||||||
|
|
||||||
Qt::ItemFlags CylindersModel::flags(const QModelIndex &index) const
|
Qt::ItemFlags CylindersModel::flags(const QModelIndex &index) const
|
||||||
{
|
{
|
||||||
if (index.column() == REMOVE)
|
if (index.column() == REMOVE || index.column() == USE)
|
||||||
return Qt::ItemIsEnabled;
|
return Qt::ItemIsEnabled;
|
||||||
return QAbstractItemModel::flags(index) | Qt::ItemIsEditable;
|
return QAbstractItemModel::flags(index) | Qt::ItemIsEditable;
|
||||||
}
|
}
|
||||||
|
@ -488,6 +488,17 @@ Qt::ItemFlags CylindersModel::flags(const QModelIndex &index) const
|
||||||
void CylindersModel::remove(const QModelIndex &index)
|
void CylindersModel::remove(const QModelIndex &index)
|
||||||
{
|
{
|
||||||
int mapping[MAX_CYLINDERS];
|
int mapping[MAX_CYLINDERS];
|
||||||
|
|
||||||
|
if (index.column() == USE) {
|
||||||
|
cylinder_t *cyl = cylinderAt(index);
|
||||||
|
if (cyl->cylinder_use == OC_GAS)
|
||||||
|
cyl->cylinder_use = NOT_USED;
|
||||||
|
else if (cyl->cylinder_use == NOT_USED)
|
||||||
|
cyl->cylinder_use = OC_GAS;
|
||||||
|
changed = true;
|
||||||
|
dataChanged(index, index);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (index.column() != REMOVE) {
|
if (index.column() != REMOVE) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -798,7 +798,7 @@ void DivePlannerPointsModel::createTemporaryPlan()
|
||||||
struct divedatapoint *dp = NULL;
|
struct divedatapoint *dp = NULL;
|
||||||
for (int i = 0; i < MAX_CYLINDERS; i++) {
|
for (int i = 0; i < MAX_CYLINDERS; i++) {
|
||||||
cylinder_t *cyl = &displayed_dive.cylinder[i];
|
cylinder_t *cyl = &displayed_dive.cylinder[i];
|
||||||
if (cyl->depth.mm) {
|
if (cyl->depth.mm && cyl->cylinder_use != NOT_USED) {
|
||||||
dp = create_dp(0, cyl->depth.mm, i, 0);
|
dp = create_dp(0, cyl->depth.mm, i, 0);
|
||||||
if (diveplan.dp) {
|
if (diveplan.dp) {
|
||||||
dp->next = diveplan.dp;
|
dp->next = diveplan.dp;
|
||||||
|
|
Loading…
Add table
Reference in a new issue