mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-19 14:25:27 +00:00
mobile/dive-list: correctly update view when changing dive date
If the dive timestamp changes, the dive could move in the dive list. But the current dive actually doesn't change (it's still the same dive, right?). Yet we need to update the dive list as well as the shown dive (especially if this is after adding a dive, which is first inserted with the current time and then updated with whatever the user enters). Fixes: #2971 Suggested-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
927b008781
commit
a469dfa348
3 changed files with 5 additions and 6 deletions
|
@ -1,4 +1,4 @@
|
|||
|
||||
mobile: fix manually adding dives in the past [#2971]
|
||||
|
||||
---
|
||||
* Always add new entries at the very top of this file above other existing entries and this note.
|
||||
|
|
|
@ -1414,7 +1414,7 @@ void QMLManager::selectDive(int id)
|
|||
amount_selected++;
|
||||
}
|
||||
if (amount_selected == 0)
|
||||
qWarning("QManager::selectDive() called with unknown id");
|
||||
qWarning("QManager::selectDive() called with unknown id %d",id);
|
||||
}
|
||||
|
||||
void QMLManager::deleteDive(int id)
|
||||
|
|
|
@ -538,9 +538,6 @@ static ShownChange updateShownAll()
|
|||
|
||||
void DiveTripModelBase::currentChanged()
|
||||
{
|
||||
if (oldCurrent == current_dive)
|
||||
return;
|
||||
|
||||
// On Desktop we use a signal to forward current-dive changed, on mobile we use ROLE_CURRENT.
|
||||
// TODO: Unify - use the role for both.
|
||||
#if defined(SUBSURFACE_MOBILE)
|
||||
|
@ -549,11 +546,13 @@ void DiveTripModelBase::currentChanged()
|
|||
QModelIndex oldIdx = diveToIdx(oldCurrent);
|
||||
dataChanged(oldIdx, oldIdx, roles);
|
||||
}
|
||||
if (current_dive) {
|
||||
if (current_dive && oldCurrent != current_dive) {
|
||||
QModelIndex newIdx = diveToIdx(current_dive);
|
||||
dataChanged(newIdx, newIdx, roles);
|
||||
}
|
||||
#else
|
||||
if (oldCurrent == current_dive)
|
||||
return;
|
||||
if (current_dive) {
|
||||
QModelIndex newIdx = diveToIdx(current_dive);
|
||||
emit currentDiveChanged(newIdx);
|
||||
|
|
Loading…
Add table
Reference in a new issue