X-Git-Url: https://www.flypig.org.uk/git/?p=harbour-pedalo.git;a=blobdiff_plain;f=qml%2Fpages%2FJourneyList.qml;h=1bcf4015e03610258f7a449018f14e9b1cc3c354;hp=9d84129e10a2630c0e8e979286aef01f30a1ac48;hb=b0cf1cc508e82763046f46134347e8a37d7dddd6;hpb=0108947ead4cc9e0ff23fee82db2fb1fd7cb2dad diff --git a/qml/pages/JourneyList.qml b/qml/pages/JourneyList.qml index 9d84129..1bcf401 100644 --- a/qml/pages/JourneyList.qml +++ b/qml/pages/JourneyList.qml @@ -6,39 +6,114 @@ Page { // The effective value will be restricted by ApplicationWindow.allowedOrientations allowedOrientations: Orientation.All - property int columnwidth: page.width - 2 * Theme.horizontalPageMargin + property int columnwidth: page.width - (2 * Theme.horizontalPageMargin) - 4 * Theme.paddingLarge SilicaListView { id: listView - model: 20 + model: journeymodel anchors.fill: parent - header: PageHeader { - title: qsTr("Journey list") + header: Column { + width: page.width + spacing: Theme.paddingLarge + height: implicitHeight + Theme.paddingLarge + + PageHeader { + id: headerItem + title: qsTr("Journey list") + } + + Row { + spacing: Theme.paddingLarge + x: Theme.horizontalPageMargin + y: headerItem.height + + Label { + width: columnwidth * 0.34 + text: "Date" + color: Theme.secondaryColor + } + Label { + width: columnwidth * 0.18 + text: "Start" + color: Theme.secondaryColor + } + Label { + width: columnwidth * 0.18 + text: "Length" + color: Theme.secondaryColor + } + Label { + width: columnwidth * 0.15 + text: "+" + color: Theme.secondaryColor + horizontalAlignment: Text.AlignRight + } + Label { + width: columnwidth * 0.15 + text: "-" + color: Theme.secondaryColor + horizontalAlignment: Text.AlignRight + } + } } - delegate: BackgroundItem { + + delegate: ListItem { id: delegate + menu: journeyMenuComponent Row { spacing: Theme.paddingLarge x: Theme.horizontalPageMargin Label { - width: columnwidth / 3.0 - text: qsTr("Item") + " " + index + width: columnwidth * 0.34 + text: Qt.formatDate(journeymodel.epochToDate(start), "d MMM yyyy") color: delegate.highlighted ? Theme.highlightColor : Theme.primaryColor } Label { - width: columnwidth / 3.0 - text: qsTr("1 May 2018") + width: columnwidth * 0.18 + text: Qt.formatTime(journeymodel.epochToTime(start), "hh:mm") color: delegate.highlighted ? Theme.highlightColor : Theme.primaryColor } Label { - width: columnwidth / 3.0 - text: qsTr("20 mins") + width: columnwidth * 0.18 + text: Qt.formatTime(new Date(0, 0, 0, 0, 0, duration), 'hh:mm') color: delegate.highlighted ? Theme.highlightColor : Theme.primaryColor } + Label { + width: columnwidth * 0.15 + text: overtook + color: delegate.highlighted ? Theme.highlightColor : Theme.primaryColor + horizontalAlignment: Text.AlignRight + } + Label { + width: columnwidth * 0.15 + text: overtakenby + color: delegate.highlighted ? Theme.highlightColor : Theme.primaryColor + horizontalAlignment: Text.AlignRight + } + } + onClicked: pageStack.push(Qt.resolvedUrl("JourneyInfo.qml"), {title: "Journey info", index: index, start: journeymodel.epochToDateTime(start), duration: duration, overtook: overtook, overtakenby: overtakenby}) + + Component { + id: journeyMenuComponent + ContextMenu { + MenuItem { + text: qsTr("Edit") + onClicked: pageStack.push(Qt.resolvedUrl("JourneyEdit.qml"), {title: "Edit journey", index: index, start: journeymodel.epochToDateTime(start), duration: duration, overtook: overtook, overtakenby: overtakenby}) + } + MenuItem { + text: qsTr("Delete") + onClicked: remove(index) + } + } + } + + function remove(index) { + remorseAction(qsTr("Deleting journey"), function() { + onClicked: journeymodel.deleteJourney(index) + }) } - onClicked: pageStack.push(Qt.resolvedUrl("AddJourney.qml"), {title: "Edit journey"}) } VerticalScrollDecorator {} }