header: PageHeader {
title: qsTr("Journey list")
}
- delegate: BackgroundItem {
+ delegate: ListItem {
id: delegate
+ menu: journeyMenuComponent
Row {
spacing: Theme.paddingLarge
}
}
onClicked: pageStack.push(Qt.resolvedUrl("AddJourney.qml"), {title: "Edit journey", 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("AddJourney.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 {}
}
emit dataChanged(createIndex(index, 0), createIndex(index, 0));
}
+void JourneyModel::deleteJourney(quint32 index) {
+ beginRemoveRows(QModelIndex(), index, index);
+ journeys.removeAt(index);
+ endRemoveRows();
+}
+
int JourneyModel::rowCount(const QModelIndex & parent) const {
Q_UNUSED(parent)
return journeys.count();
QDate JourneyModel::epochToDate(quint64 epoch) {
QDateTime date;
- qDebug() << "Epoch: " << epoch;
date.setMSecsSinceEpoch(epoch);
- qDebug() << "Date: " << date.date();
return date.date();
}
void addJourney(const Journey &journey);
Q_INVOKABLE void addJourney(QDateTime start, quint32 duration, quint32 overtook, quint32 overtakenby);
Q_INVOKABLE void editJourney(quint32 index, QDateTime start, quint32 duration, quint32 overtook, quint32 overtakenby);
+ Q_INVOKABLE void deleteJourney(quint32 index);
int rowCount(const QModelIndex & parent = QModelIndex()) const;
<source>Journey list</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Delete</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Deleting journey</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>MainPage</name>
<source>Journey list</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Delete</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Deleting journey</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>MainPage</name>