subsurface/qt-mobile/qml/DiveDetails.qml
Sebastian Kügler de5bb98dba dive edit gets contextual actions
Option to switch between view and edit and to save the changes are now
in the context drawer. Let's see how this works out.

If it turns out to be badly discoverable (which is what I'm worried
about), this needs to be fixed at component level.
2015-12-07 18:46:57 +01:00

108 lines
2.3 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"
flickable: flick
property string location
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 }
}
]
contextualActions: [
Action {
text: "Save Changes"
enabled: diveDetailsWindow.state == "edit"
iconName: "document-save"
onTriggered: {
manager.saveChanges();
}
},
Action {
text: checked ? "View" : "Edit"
checkable: true
iconName: checked ? "view-readermode" : "document-edit"
onTriggered: {
diveDetailsWindow.state = checked ? "edit" : "view"
}
}
]
ScrollView {
anchors.fill: parent
Flickable {
id: flick
anchors.fill: parent
contentHeight: content.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.smallSpacing
}
Behavior on opacity {
NumberAnimation { duration: MobileComponents.Units.shortDuration }
}
}
DiveDetailsView {
id: detailsView
anchors {
left: parent.left
right: parent.right
top: parent.top
margins: MobileComponents.Units.smallSpacing
}
Behavior on opacity {
NumberAnimation { duration: MobileComponents.Units.shortDuration }
}
}
}
}
}
}