diff options
author | Jocke <j.bygdell@gmail.com> | 2018-07-16 18:01:56 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2018-08-11 11:19:07 -0700 |
commit | 94428b9a1823fd7df9f2f0f7815900efca2213a4 (patch) | |
tree | 995486e8dc3301ed8c0d4808fe856ab9c8fcebff /mobile-widgets/qmlmanager.cpp | |
parent | 6b93e5fe272dd9ee67973c0eec6e3310dcee1b19 (diff) | |
download | subsurface-94428b9a1823fd7df9f2f0f7815900efca2213a4.tar.gz |
Mobile: save edited cylinders
Save the edited cylinder in the correct slot.
Since the cylinder number and the used cylinder number need not be
the same we first need to test if the cylinder are used.
Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Diffstat (limited to 'mobile-widgets/qmlmanager.cpp')
-rw-r--r-- | mobile-widgets/qmlmanager.cpp | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp index 645ddd152..8bc9026e6 100644 --- a/mobile-widgets/qmlmanager.cpp +++ b/mobile-widgets/qmlmanager.cpp @@ -1004,7 +1004,7 @@ bool QMLManager::checkDepth(DiveObjectHelper *myDive, dive *d, QString depth) // update the dive and return the notes field, stripped of the HTML junk void QMLManager::commitChanges(QString diveId, QString date, QString location, QString gps, QString duration, QString depth, QString airtemp, QString watertemp, QString suit, QString buddy, QString diveMaster, QString weight, QString notes, - QString startpressure, QString endpressure, QString gasmix, QString cylinder, int rating, int visibility) + QString startpressure, QString endpressure, QString gasmix, QStringList usedCylinder, int rating, int visibility) { struct dive *d = get_dive_by_uniq_id(diveId.toInt()); @@ -1069,26 +1069,31 @@ void QMLManager::commitChanges(QString diveId, QString date, QString location, Q } } // info for first cylinder - if (myDive->getCylinder() != cylinder) { + if (myDive->getCylinder() != usedCylinder) { diveChanged = true; unsigned long i; - int size = 0, wp = 0; - for (i = 0; i < MAX_TANK_INFO && tank_info[i].name != NULL; i++) { - if (tank_info[i].name == cylinder ) { - if (tank_info[i].ml > 0){ - size = tank_info[i].ml; - wp = tank_info[i].bar * 1000; - } else { - size = (int) (cuft_to_l(tank_info[i].cuft) * 1000 / bar_to_atm(psi_to_bar(tank_info[i].psi))); - wp = psi_to_mbar(tank_info[i].psi); + int size = 0, wp = 0, j = 0, k = 0; + for (j = 0; k < usedCylinder.length() ; j++) { + if (!is_cylinder_used(d, j)) + continue; + + for (i = 0; i < MAX_TANK_INFO && tank_info[i].name != NULL; i++) { + if (tank_info[i].name == usedCylinder[k] ) { + if (tank_info[i].ml > 0){ + size = tank_info[i].ml; + wp = tank_info[i].bar * 1000; + } else { + size = (int) (cuft_to_l(tank_info[i].cuft) * 1000 / bar_to_atm(psi_to_bar(tank_info[i].psi))); + wp = psi_to_mbar(tank_info[i].psi); + } + break; } - break; } - + d->cylinder[j].type.description = copy_qstring(usedCylinder[k]); + d->cylinder[j].type.size.mliter = size; + d->cylinder[j].type.workingpressure.mbar = wp; + k++; } - d->cylinder[0].type.description = copy_qstring(cylinder); - d->cylinder[0].type.size.mliter = size; - d->cylinder[0].type.workingpressure.mbar = wp; } if (myDive->suit() != suit) { diveChanged = true; |