QML UI: add comboboxes to DiveDetailsEdit

This adds autocompleting text input fields for suit, buddy and
divemaster.

[Dirk Hohndel: some whitespace cleanup]

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-05-16 19:59:05 +02:00 committed by Dirk Hohndel
parent fcc370b2fe
commit 0e4e8edf78
3 changed files with 38 additions and 29 deletions

View file

@ -371,9 +371,9 @@ QStringList DiveObjectHelper::suitList() const
if (!temp.isEmpty())
suits << d->suit;
}
suits.removeDuplicates();
suits.sort();
return suits;
suits.removeDuplicates();
suits.sort();
return suits;
}
QStringList DiveObjectHelper::buddyList() const
@ -392,9 +392,9 @@ QStringList DiveObjectHelper::buddyList() const
buddies << tempList;
}
}
buddies.removeDuplicates();
buddies.sort();
return buddies;
buddies.removeDuplicates();
buddies.sort();
return buddies;
}
QStringList DiveObjectHelper::divemasterList() const
@ -407,7 +407,7 @@ QStringList DiveObjectHelper::divemasterList() const
if (!temp.isEmpty())
divemasters << d->divemaster;
}
divemasters.removeDuplicates();
divemasters.sort();
return divemasters;
divemasters.removeDuplicates();
divemasters.sort();
return divemasters;
}

View file

@ -15,14 +15,14 @@ Kirigami.Page {
property alias date: detailsEdit.dateText
property alias airtemp: detailsEdit.airtempText
property alias watertemp: detailsEdit.watertempText
property alias buddy: detailsEdit.buddyText
property alias divemaster: detailsEdit.divemasterText
property alias buddyIndex: detailsEdit.buddyIndex
property alias divemasterIndex: detailsEdit.divemasterIndex
property alias depth: detailsEdit.depthText
property alias duration: detailsEdit.durationText
property alias location: detailsEdit.locationText
property alias gps: detailsEdit.gpsText
property alias notes: detailsEdit.notesText
property alias suit: detailsEdit.suitText
property alias suitIndex: detailsEdit.suitIndex
property alias weight: detailsEdit.weightText
property alias startpressure: detailsEdit.startpressureText
property alias endpressure: detailsEdit.endpressureText
@ -149,9 +149,9 @@ Kirigami.Page {
depth = diveDetailsListView.currentItem.modelData.dive.depth
airtemp = diveDetailsListView.currentItem.modelData.dive.airTemp
watertemp = diveDetailsListView.currentItem.modelData.dive.waterTemp
suit = diveDetailsListView.currentItem.modelData.dive.suit
buddy = diveDetailsListView.currentItem.modelData.dive.buddy
divemaster = diveDetailsListView.currentItem.modelData.dive.divemaster
suitIndex = diveDetailsListView.currentItem.modelData.dive.suitList.indexOf(diveDetailsListView.currentItem.modelData.dive.suit)
buddyIndex = diveDetailsListView.currentItem.modelData.dive.buddyList.indexOf(diveDetailsListView.currentItem.modelData.dive.buddy)
divemasterIndex = diveDetailsListView.currentItem.modelData.dive.divemasterList.indexOf(diveDetailsListView.currentItem.modelData.dive.divemaster)
notes = diveDetailsListView.currentItem.modelData.dive.notes
if (diveDetailsListView.currentItem.modelData.dive.singleWeight) {
// we have only one weight, go ahead, have fun and edit it

View file

@ -15,9 +15,9 @@ Item {
property alias gpsText: txtGps.text
property alias airtempText: txtAirTemp.text
property alias watertempText: txtWaterTemp.text
property alias suitText: txtSuit.text
property alias buddyText: txtBuddy.text
property alias divemasterText: txtDiveMaster.text
property alias suitIndex: suitBox.currentIndex
property alias buddyIndex: buddyBox.currentIndex
property alias divemasterIndex: divemasterBox.currentIndex
property alias notesText: txtNotes.text
property alias durationText: txtDuration.text
property alias depthText: txtDepth.text
@ -30,8 +30,8 @@ Item {
function saveData() {
// 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.weightText, detailsEdit.notesText,
detailsEdit.depthText, detailsEdit.airtempText, detailsEdit.watertempText, suitBox.editText,
buddyBox.editText, divemasterBox.editText, detailsEdit.weightText, detailsEdit.notesText,
detailsEdit.startpressureText, detailsEdit.endpressureText, detailsEdit.gasmixText)
// trigger the profile to be redrawn
QMLProfile.diveId = dive_id
@ -47,9 +47,9 @@ Item {
diveDetailsListView.currentItem.modelData.depth = detailsEdit.depthText
diveDetailsListView.currentItem.modelData.airtemp = detailsEdit.airtempText
diveDetailsListView.currentItem.modelData.watertemp = detailsEdit.watertempText
diveDetailsListView.currentItem.modelData.suit = detailsEdit.suitText
diveDetailsListView.currentItem.modelData.buddy = detailsEdit.buddyText
diveDetailsListView.currentItem.modelData.divemaster = detailsEdit.divemasterText
diveDetailsListView.currentItem.modelData.suit = suitBox.currentText
diveDetailsListView.currentItem.modelData.buddy = buddyBox.currentText
diveDetailsListView.currentItem.modelData.divemaster = divemasterBox.currentText
diveDetailsListView.currentItem.modelData.notes = detailsEdit.notesText
diveDetailsPage.state = "view"
Qt.inputMethod.hide()
@ -154,8 +154,11 @@ Item {
Layout.alignment: Qt.AlignRight
text: qsTr("Suit:")
}
StyledTextField {
id: txtSuit
ComboBox {
id: suitBox
editable: true
model: diveDetailsListView.currentItem.modelData.dive.suitList
inputMethodHints: Qt.ImhNoPredictiveText
Layout.fillWidth: true
}
@ -163,8 +166,11 @@ Item {
Layout.alignment: Qt.AlignRight
text: qsTr("Buddy:")
}
StyledTextField {
id: txtBuddy
ComboBox {
id: buddyBox
editable: true
model: diveDetailsListView.currentItem.modelData.dive.buddyList
inputMethodHints: Qt.ImhNoPredictiveText
Layout.fillWidth: true
}
@ -172,8 +178,11 @@ Item {
Layout.alignment: Qt.AlignRight
text: qsTr("Dive Master:")
}
StyledTextField {
id: txtDiveMaster
ComboBox {
id: divemasterBox
editable: true
model: diveDetailsListView.currentItem.modelData.dive.divemasterList
inputMethodHints: Qt.ImhNoPredictiveText
Layout.fillWidth: true
}