2015-12-04 00:38:04 +00:00
|
|
|
import QtQuick 2.3
|
|
|
|
import QtQuick.Controls 1.2
|
|
|
|
import QtQuick.Controls.Styles 1.2
|
|
|
|
import QtQuick.Dialogs 1.2
|
|
|
|
import QtQuick.Layouts 1.1
|
|
|
|
import org.subsurfacedivelog.mobile 1.0
|
|
|
|
import org.kde.plasma.mobilecomponents 0.2 as MobileComponents
|
|
|
|
|
|
|
|
Item {
|
2016-01-12 00:15:02 +00:00
|
|
|
id: detailsEdit
|
|
|
|
property int dive_id
|
|
|
|
property int number
|
2016-01-05 14:59:04 +00:00
|
|
|
property alias dateText: txtDate.text
|
2015-12-27 06:57:47 +00:00
|
|
|
property alias locationText: txtLocation.text
|
|
|
|
property string gpsText
|
|
|
|
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 notesText: txtNotes.text
|
2016-01-01 08:23:15 +00:00
|
|
|
property alias durationText: txtDuration.text
|
2016-01-01 08:32:30 +00:00
|
|
|
property alias depthText: txtDepth.text
|
2016-01-29 02:26:37 +00:00
|
|
|
property alias weightText: txtWeight.text
|
|
|
|
|
2016-01-20 22:07:06 +00:00
|
|
|
height: editArea.height
|
2015-12-04 00:38:04 +00:00
|
|
|
ColumnLayout {
|
2016-01-20 22:07:06 +00:00
|
|
|
id: editArea
|
2015-12-04 00:38:04 +00:00
|
|
|
spacing: MobileComponents.Units.smallSpacing
|
2016-01-29 06:49:46 +00:00
|
|
|
width: subsurfaceTheme.columnWidth - 2 * MobileComponents.Units.gridUnit
|
2015-12-04 00:38:04 +00:00
|
|
|
|
|
|
|
GridLayout {
|
|
|
|
id: editorDetails
|
|
|
|
width: parent.width
|
|
|
|
columns: 2
|
|
|
|
|
|
|
|
MobileComponents.Heading {
|
|
|
|
Layout.columnSpan: 2
|
2016-01-05 14:59:04 +00:00
|
|
|
text: "Dive " + number
|
|
|
|
}
|
|
|
|
MobileComponents.Label {
|
|
|
|
Layout.alignment: Qt.AlignRight
|
|
|
|
text: "Date:"
|
|
|
|
}
|
|
|
|
TextField {
|
|
|
|
id: txtDate;
|
|
|
|
Layout.fillWidth: true
|
2015-12-04 00:38:04 +00:00
|
|
|
}
|
|
|
|
MobileComponents.Label {
|
|
|
|
Layout.alignment: Qt.AlignRight
|
|
|
|
text: "Location:"
|
|
|
|
}
|
|
|
|
TextField {
|
2016-01-12 00:15:02 +00:00
|
|
|
id: txtLocation;
|
2015-12-04 00:38:04 +00:00
|
|
|
Layout.fillWidth: true
|
|
|
|
}
|
|
|
|
|
2015-12-27 06:57:47 +00:00
|
|
|
// we should add a checkbox here that allows the user
|
|
|
|
// to add the current location as the dive location
|
|
|
|
// (think of someone adding a dive while on the boat or
|
|
|
|
// at the dive site)
|
2016-01-02 01:23:29 +00:00
|
|
|
MobileComponents.Label {
|
|
|
|
Layout.alignment: Qt.AlignRight
|
|
|
|
text: "Use current\nGPS location:"
|
|
|
|
}
|
|
|
|
CheckBox {
|
|
|
|
id: checkboxGPS
|
|
|
|
onCheckedChanged: {
|
|
|
|
if (checked)
|
|
|
|
gpsText = manager.getCurrentPosition()
|
|
|
|
}
|
|
|
|
}
|
2015-12-27 06:57:47 +00:00
|
|
|
|
2016-01-01 08:32:30 +00:00
|
|
|
MobileComponents.Label {
|
|
|
|
Layout.alignment: Qt.AlignRight
|
|
|
|
text: "Depth:"
|
|
|
|
}
|
|
|
|
TextField {
|
|
|
|
id: txtDepth
|
|
|
|
Layout.fillWidth: true
|
|
|
|
}
|
2016-01-01 08:23:15 +00:00
|
|
|
MobileComponents.Label {
|
|
|
|
Layout.alignment: Qt.AlignRight
|
|
|
|
text: "Duration:"
|
|
|
|
}
|
|
|
|
TextField {
|
|
|
|
id: txtDuration
|
|
|
|
Layout.fillWidth: true
|
|
|
|
}
|
|
|
|
|
2015-12-04 00:38:04 +00:00
|
|
|
MobileComponents.Label {
|
|
|
|
Layout.alignment: Qt.AlignRight
|
|
|
|
text: "Air Temp:"
|
|
|
|
}
|
|
|
|
TextField {
|
|
|
|
id: txtAirTemp
|
|
|
|
Layout.fillWidth: true
|
|
|
|
}
|
|
|
|
|
|
|
|
MobileComponents.Label {
|
|
|
|
Layout.alignment: Qt.AlignRight
|
|
|
|
text: "Water Temp:"
|
|
|
|
}
|
|
|
|
TextField {
|
|
|
|
id: txtWaterTemp
|
|
|
|
Layout.fillWidth: true
|
|
|
|
}
|
|
|
|
|
|
|
|
MobileComponents.Label {
|
|
|
|
Layout.alignment: Qt.AlignRight
|
|
|
|
text: "Suit:"
|
|
|
|
}
|
|
|
|
TextField {
|
|
|
|
id: txtSuit
|
|
|
|
Layout.fillWidth: true
|
|
|
|
}
|
|
|
|
|
|
|
|
MobileComponents.Label {
|
|
|
|
Layout.alignment: Qt.AlignRight
|
|
|
|
text: "Buddy:"
|
|
|
|
}
|
|
|
|
TextField {
|
|
|
|
id: txtBuddy
|
|
|
|
Layout.fillWidth: true
|
|
|
|
}
|
|
|
|
|
|
|
|
MobileComponents.Label {
|
|
|
|
Layout.alignment: Qt.AlignRight
|
|
|
|
text: "Dive Master:"
|
|
|
|
}
|
|
|
|
TextField {
|
|
|
|
id: txtDiveMaster
|
|
|
|
Layout.fillWidth: true
|
|
|
|
}
|
|
|
|
|
2016-01-29 02:26:37 +00:00
|
|
|
MobileComponents.Label {
|
|
|
|
Layout.alignment: Qt.AlignRight
|
|
|
|
text: "Weight:"
|
|
|
|
}
|
|
|
|
TextField {
|
|
|
|
id: txtWeight
|
|
|
|
Layout.fillWidth: true
|
|
|
|
}
|
|
|
|
|
2015-12-04 00:38:04 +00:00
|
|
|
MobileComponents.Label {
|
2016-01-21 21:09:10 +00:00
|
|
|
Layout.columnSpan: 2
|
|
|
|
Layout.alignment: Qt.AlignLeft
|
2015-12-04 00:38:04 +00:00
|
|
|
text: "Notes:"
|
|
|
|
}
|
|
|
|
TextArea {
|
2016-01-21 21:09:10 +00:00
|
|
|
Layout.columnSpan: 2
|
|
|
|
width: parent.width
|
2015-12-04 00:38:04 +00:00
|
|
|
id: txtNotes
|
2016-01-07 07:03:07 +00:00
|
|
|
textFormat: TextEdit.RichText
|
2015-12-04 00:38:04 +00:00
|
|
|
focus: true
|
|
|
|
Layout.fillWidth: true
|
|
|
|
Layout.fillHeight: true
|
|
|
|
Layout.minimumHeight: MobileComponents.Units.gridUnit * 6
|
|
|
|
selectByMouse: true
|
|
|
|
wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
|
|
|
|
}
|
|
|
|
}
|
2016-01-20 11:47:58 +00:00
|
|
|
SubsurfaceButton {
|
2016-01-12 00:15:02 +00:00
|
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
|
|
text: "Save"
|
|
|
|
onClicked: {
|
|
|
|
// 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)
|
2016-01-29 02:31:24 +00:00
|
|
|
// 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
|
|
|
|
diveDetailsListView.currentIndex = diveModel.getIdxForId(dive_id)
|
2016-01-29 00:01:29 +00:00
|
|
|
diveDetailsListView.currentItem.modelData.date = detailsEdit.dateText
|
|
|
|
diveDetailsListView.currentItem.modelData.location = detailsEdit.locationText
|
|
|
|
diveDetailsListView.currentItem.modelData.duration = detailsEdit.durationText
|
|
|
|
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.notes = detailsEdit.notesText
|
2016-01-20 22:07:06 +00:00
|
|
|
diveDetailsPage.state = "view"
|
2016-02-05 18:49:43 +00:00
|
|
|
Qt.inputMethod.hide()
|
2016-01-12 00:15:02 +00:00
|
|
|
}
|
|
|
|
}
|
2015-12-04 00:38:04 +00:00
|
|
|
Item {
|
|
|
|
height: MobileComponents.Units.gridUnit * 3
|
|
|
|
width: height // just to make sure the spacer doesn't produce scrollbars, but also isn't null
|
|
|
|
}
|
|
|
|
}
|
2015-12-08 06:24:56 +00:00
|
|
|
}
|