QML UI: resolve confusion about dive list model ordering

Oops, I forgot to take the sort model on top of the model into account.
Now everything should stay consistent - ListView order when accessed from
QML, but internal order when accessing the underlying array.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2016-03-02 09:02:00 -08:00
parent cd713d421b
commit 605d085573
2 changed files with 4 additions and 3 deletions

View file

@ -38,7 +38,8 @@ Item {
// apply the changes to the dive detail view - since the edit could have changed the order
// first make sure that we are looking at the correct dive - our model allows us to look
// up the index based on the unique dive_id
diveDetailsListView.currentIndex = diveModel.getIdxForId(dive_id)
var newIdx = diveModel.getIdxForId(dive_id)
diveDetailsListView.currentIndex = newIdx
diveDetailsListView.currentItem.modelData.date = detailsEdit.dateText
diveDetailsListView.currentItem.modelData.location = detailsEdit.locationText
diveDetailsListView.currentItem.modelData.duration = detailsEdit.durationText
@ -52,7 +53,7 @@ Item {
diveDetailsPage.state = "view"
Qt.inputMethod.hide()
// now make sure we directly show the saved dive (this may be a new dive, or it may have moved)
showDiveIndex(manager.getIndex(dive_id))
showDiveIndex(newIdx)
}
height: editArea.height

View file

@ -141,7 +141,7 @@ QString DiveListModel::startAddDive()
d->number = nr;
d->dc.model = strdup("manually added dive");
add_single_dive(-1, d);
insertDive(dive_table.nr - 1 - get_idx_by_uniq_id(d->id), new DiveObjectHelper(d));
insertDive(get_idx_by_uniq_id(d->id), new DiveObjectHelper(d));
return QString::number(d->id);
}