mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-31 22:33:24 +00:00
QML UI: enable editing of weight
But only if there is only one weight system defined in the dive. Otherwise display a read only text that explains that this cannot be edited. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
ad7fb80d0a
commit
a4ec520601
4 changed files with 26 additions and 5 deletions
|
@ -70,7 +70,14 @@ MobileComponents.Page {
|
|||
buddy = diveDetailsListView.currentItem.modelData.dive.buddy
|
||||
divemaster = diveDetailsListView.currentItem.modelData.dive.divemaster
|
||||
notes = diveDetailsListView.currentItem.modelData.dive.notes
|
||||
weight = diveDetailsListView.currentItem.modelData.dive.sumWeight
|
||||
if (diveDetailsListView.currentItem.modelData.dive.singleWeight) {
|
||||
// we have only one weight, go ahead, have fun and edit it
|
||||
weight = diveDetailsListView.currentItem.modelData.dive.sumWeight
|
||||
} else {
|
||||
// careful when translating, this text is "magic" in DiveDetailsEdit.qml
|
||||
weight = "cannot edit multiple weight systems"
|
||||
}
|
||||
|
||||
diveDetailsPage.state = "edit"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -139,6 +139,7 @@ Item {
|
|||
}
|
||||
TextField {
|
||||
id: txtWeight
|
||||
readOnly: (text == "cannot edit multiple weight systems" ? true : false)
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
|
@ -167,7 +168,7 @@ Item {
|
|||
// apply the changes to the dive_table
|
||||
manager.commitChanges(dive_id, detailsEdit.dateText, detailsEdit.locationText, detailsEdit.gpsText, detailsEdit.durationText,
|
||||
detailsEdit.depthText, detailsEdit.airtempText, detailsEdit.watertempText, detailsEdit.suitText,
|
||||
detailsEdit.buddyText, detailsEdit.divemasterText, detailsEdit.notesText)
|
||||
detailsEdit.buddyText, detailsEdit.divemasterText, detailsEdit.weightText, detailsEdit.notesText)
|
||||
// apply the changes to the dive detail view - since the edit could have changed the order
|
||||
// first make sure that we are looking at the correct dive - our model allows us to look
|
||||
// up the index based on the unique dive_id
|
||||
|
|
|
@ -329,7 +329,7 @@ void QMLManager::refreshDiveList()
|
|||
|
||||
// update the dive and return the notes field, stripped of the HTML junk
|
||||
QString 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 notes)
|
||||
QString airtemp, QString watertemp, QString suit, QString buddy, QString diveMaster, QString weight, QString notes)
|
||||
{
|
||||
#define DROP_EMPTY_PLACEHOLDER(_s) if ((_s) == QLatin1Literal("--")) (_s).clear()
|
||||
|
||||
|
@ -341,6 +341,7 @@ QString QMLManager::commitChanges(QString diveId, QString date, QString location
|
|||
DROP_EMPTY_PLACEHOLDER(suit);
|
||||
DROP_EMPTY_PLACEHOLDER(buddy);
|
||||
DROP_EMPTY_PLACEHOLDER(diveMaster);
|
||||
DROP_EMPTY_PLACEHOLDER(weight);
|
||||
DROP_EMPTY_PLACEHOLDER(notes);
|
||||
|
||||
#undef DROP_EMPTY_PLACEHOLDER
|
||||
|
@ -470,6 +471,18 @@ QString QMLManager::commitChanges(QString diveId, QString date, QString location
|
|||
prefs.units.temperature = units::FAHRENHEIT;
|
||||
d->watertemp.mkelvin = parseTemperatureToMkelvin(watertemp);
|
||||
}
|
||||
// not sure what we'd do if there was more than one weight system
|
||||
// defined - for now just ignore that case
|
||||
if (weightsystem_none((void *)&d->weightsystem[1])) {
|
||||
if (get_weight_string(d->weightsystem[0].weight, true) != weight) {
|
||||
diveChanged = true;
|
||||
if (weight.contains(tr("kg")))
|
||||
prefs.units.weight = units::KG;
|
||||
else if (weight.contains(tr("lbs")))
|
||||
prefs.units.weight = units::LBS;
|
||||
d->weightsystem[0].weight.grams = parseWeightToGrams(weight);
|
||||
}
|
||||
}
|
||||
if (!same_string(d->suit, qPrintable(suit))) {
|
||||
diveChanged = true;
|
||||
free(d->suit);
|
||||
|
|
|
@ -70,10 +70,10 @@ public slots:
|
|||
void loadDivesWithValidCredentials();
|
||||
void loadDiveProgress(int percent);
|
||||
void provideAuth(QNetworkReply *reply, QAuthenticator *auth);
|
||||
QString commitChanges(QString diveId,QString date, QString location,
|
||||
QString commitChanges(QString diveId, QString date, QString location,
|
||||
QString gps, QString duration, QString depth,
|
||||
QString airtemp, QString watertemp, QString suit,
|
||||
QString buddy, QString diveMaster, QString notes);
|
||||
QString buddy, QString diveMaster, QString weight, QString notes);
|
||||
|
||||
void saveChanges();
|
||||
QString addDive();
|
||||
|
|
Loading…
Add table
Reference in a new issue