QML UI: Enable cylinder edit

This adds the option to select a cylinder when adding or editing a dive.
Due to limited screen size we restrict the editing to the first cylinder only.

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Joakim Bygdell 2016-08-30 16:24:19 +02:00 committed by Dirk Hohndel
parent 7b3665827a
commit 674d8331f5
6 changed files with 74 additions and 16 deletions

View file

@ -5,6 +5,7 @@
#include "../qthelper.h"
#include "../helpers.h"
#include "../../qt-models/tankinfomodel.h"
static QString EMPTY_DIVE_STRING = QStringLiteral("");
enum returnPressureSelector {START_PRESSURE, END_PRESSURE};
@ -252,15 +253,29 @@ QString DiveObjectHelper::suit() const
return m_dive->suit ? m_dive->suit : EMPTY_DIVE_STRING;
}
QString DiveObjectHelper::cylinderList() const
QStringList DiveObjectHelper::cylinderList() const
{
QString cylinders;
for (int i = 0; i < MAX_CYLINDERS; i++) {
QString cyl = getFormattedCylinder(m_dive, i);
QStringList cylinders;
struct dive *d;
int i = 0;
for_each_dive (i, d) {
for (int j = 0; j < MAX_CYLINDERS; j++) {
QString cyl = d->cylinder[j].type.description;
if (cyl == EMPTY_DIVE_STRING)
continue;
cylinders << cyl;
}
}
for (i = 0; i < sizeof(tank_info) && tank_info[i].name != NULL; i++) {
QString cyl = tank_info[i].name;
if (cyl == EMPTY_DIVE_STRING)
continue;
cylinders += cyl + "; ";
cylinders << cyl;
}
cylinders.removeDuplicates();
cylinders.sort();
return cylinders;
}