mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 13:10:19 +00:00
624e44e73d
We don't want any of the rich text markup to sneak into our fields. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
149 lines
3.9 KiB
QML
149 lines
3.9 KiB
QML
import QtQuick 2.3
|
|
import QtQuick.Controls 1.4
|
|
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
|
|
|
|
MobileComponents.Page {
|
|
id: diveDetailsWindow
|
|
width: parent.width
|
|
objectName: "DiveDetails"
|
|
|
|
property string location
|
|
property string gps
|
|
property string depth
|
|
property string dive_id
|
|
property string diveNumber
|
|
property string duration
|
|
property string airtemp
|
|
property string watertemp
|
|
property string suit
|
|
property int rating
|
|
property string buddy
|
|
property string divemaster;
|
|
property string notes;
|
|
property string date
|
|
property string number
|
|
property string weight
|
|
state: "view"
|
|
|
|
states: [
|
|
State {
|
|
name: "view"
|
|
PropertyChanges { target: detailsView; opacity: 1 }
|
|
PropertyChanges { target: detailsEdit; opacity: 0 }
|
|
},
|
|
State {
|
|
name: "edit"
|
|
PropertyChanges { target: detailsView; opacity: 0 }
|
|
PropertyChanges { target: detailsEdit; opacity: 1 }
|
|
}
|
|
]
|
|
property list<Action> viewActions: [
|
|
Action {
|
|
id: editSelector
|
|
text: "Edit"
|
|
iconName: "document-edit"
|
|
onTriggered: {
|
|
diveDetailsWindow.state = "edit"
|
|
contextDrawer.close()
|
|
}
|
|
}
|
|
]
|
|
property list<Action> editActions: [
|
|
Action {
|
|
id: cancelSelector
|
|
text: "Cancel"
|
|
iconName: "dialog-cancel"
|
|
onTriggered: {
|
|
// reset the fields in the edit screen
|
|
detailsEdit.dateText = date
|
|
detailsEdit.locationText = location
|
|
detailsEdit.durationText = duration
|
|
detailsEdit.depthText = depth
|
|
detailsEdit.airtempText = airtemp
|
|
detailsEdit.watertempText = watertemp
|
|
detailsEdit.suitText = suit
|
|
detailsEdit.buddyText = buddy
|
|
detailsEdit.divemasterText = divemaster
|
|
detailsEdit.notesText = notes
|
|
// back to view state and close the drawer
|
|
diveDetailsWindow.state = "view"
|
|
contextDrawer.close()
|
|
}
|
|
},
|
|
Action {
|
|
id: saveSelector
|
|
text: "Save"
|
|
iconName: "document-save"
|
|
onTriggered: {
|
|
// apply the changes to the dive_table
|
|
notes = 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)
|
|
// apply the changes to the dive detail view
|
|
date = detailsEdit.dateText
|
|
location = detailsEdit.locationText
|
|
duration = detailsEdit.durationText
|
|
depth = detailsEdit.depthText
|
|
airtemp = detailsEdit.airtempText
|
|
watertemp = detailsEdit.watertempText
|
|
suit = detailsEdit.suitText
|
|
buddy = detailsEdit.buddyText
|
|
divemaster = detailsEdit.divemasterText
|
|
// back to view state and close the drawer
|
|
diveDetailsWindow.state = "view"
|
|
contextDrawer.close()
|
|
}
|
|
}
|
|
]
|
|
contextualActions: diveDetailsWindow.state === "view" ? viewActions : editActions
|
|
|
|
ScrollView {
|
|
anchors.fill: parent
|
|
Flickable {
|
|
id: flick
|
|
anchors.fill: parent
|
|
contentHeight: content.height
|
|
interactive: contentHeight > height
|
|
clip: true
|
|
Item {
|
|
id: content
|
|
width: flick.width
|
|
height: childrenRect.height + MobileComponents.Units.smallSpacing * 2
|
|
|
|
DiveDetailsEdit {
|
|
id: detailsEdit
|
|
anchors {
|
|
left: parent.left
|
|
right: parent.right
|
|
top: parent.top
|
|
margins: MobileComponents.Units.gridUnit / 2
|
|
}
|
|
visible: opacity > 0
|
|
|
|
Behavior on opacity {
|
|
NumberAnimation { duration: MobileComponents.Units.shortDuration }
|
|
}
|
|
}
|
|
DiveDetailsView {
|
|
id: detailsView
|
|
anchors {
|
|
left: parent.left
|
|
right: parent.right
|
|
top: parent.top
|
|
margins: MobileComponents.Units.gridUnit / 2
|
|
}
|
|
visible: opacity > 0
|
|
|
|
Behavior on opacity {
|
|
NumberAnimation { duration: MobileComponents.Units.shortDuration }
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|