subsurface/qt-mobile/qml/DiveDetails.qml

86 lines
2.6 KiB
QML
Raw Normal View History

import QtQuick 2.4
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.2
import org.subsurfacedivelog.mobile 1.0
import org.kde.plasma.mobilecomponents 0.2 as MobileComponents
MobileComponents.Page {
id: page
objectName: "DiveList"
property alias currentIndex: diveListView.currentIndex
mainAction: Action {
iconName: editDrawer.opened ? "dialog-cancel" : "document-edit"
onTriggered: {
if (editDrawer.opened) {
editDrawer.close();
return;
}
detailsEdit.dive_id = diveListView.currentItem.modelData.dive.id
detailsEdit.number = diveListView.currentItem.modelData.dive.number
detailsEdit.dateText = diveListView.currentItem.modelData.dive.date
detailsEdit.locationText = diveListView.currentItem.modelData.dive.location
detailsEdit.durationText = diveListView.currentItem.modelData.dive.duration
detailsEdit.depthText = diveListView.currentItem.modelData.dive.depth
detailsEdit.airtempText = diveListView.currentItem.modelData.dive.airTemp
detailsEdit.watertempText = diveListView.currentItem.modelData.dive.waterTemp
detailsEdit.suitText = diveListView.currentItem.modelData.dive.suit
detailsEdit.buddyText = diveListView.currentItem.modelData.dive.buddy
detailsEdit.divemasterText = diveListView.currentItem.modelData.dive.divemaster
detailsEdit.notesText = diveListView.currentItem.modelData.dive.notes
editDrawer.open();
}
}
function showDiveIndex(index) {
diveListView.currentIndex = index;
diveListView.positionViewAtIndex(diveListView.currentIndex, ListView.Beginning);
}
onWidthChanged: diveListView.positionViewAtIndex(diveListView.currentIndex, ListView.Beginning);
ScrollView {
anchors.fill: parent
ListView {
id: diveListView
anchors.fill: parent
model: diveModel
currentIndex: -1
boundsBehavior: Flickable.StopAtBounds
maximumFlickVelocity: parent.width/4
cacheBuffer: parent.width/2
orientation: ListView.Horizontal
focus: true
clip: true
snapMode: ListView.SnapOneItem
onMovementEnded: {
currentIndex = indexAt(contentX+1, 1);
}
delegate: ScrollView {
id: internalScrollView
width: diveListView.width
height: diveListView.height
property var modelData: model
Flickable {
//contentWidth: parent.width
contentHeight: diveDetails.height
DiveDetailsView {
id: diveDetails
width: internalScrollView.width
}
}
}
}
}
MobileComponents.OverlayDrawer {
id: editDrawer
anchors.fill: parent
edge: Qt.BottomEdge
contentItem: DiveDetailsEdit {
id: detailsEdit
implicitHeight: page.height - MobileComponents.Units.gridUnit*3
}
}
}