import QtQuick 2.0 import Sailfish.Silica 1.0 Page { id: page // The effective value will be restricted by ApplicationWindow.allowedOrientations allowedOrientations: Orientation.All property int columnwidth: page.width - (2 * Theme.horizontalPageMargin) - 4 * Theme.paddingLarge SilicaListView { id: listView model: journeymodel anchors.fill: parent 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: ListItem { id: delegate menu: journeyMenuComponent Row { spacing: Theme.paddingLarge x: Theme.horizontalPageMargin Label { width: columnwidth * 0.34 text: Qt.formatDate(journeymodel.epochToDate(start), "d MMM yyyy") color: delegate.highlighted ? Theme.highlightColor : Theme.primaryColor } Label { width: columnwidth * 0.18 text: Qt.formatTime(journeymodel.epochToTime(start), "hh:mm") color: delegate.highlighted ? Theme.highlightColor : Theme.primaryColor } Label { 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) }) } } VerticalScrollDecorator {} } }