diff options
Diffstat (limited to 'mobile-widgets/qmlmanager.cpp')
-rw-r--r-- | mobile-widgets/qmlmanager.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp index 569f1ac80..51a06f0a6 100644 --- a/mobile-widgets/qmlmanager.cpp +++ b/mobile-widgets/qmlmanager.cpp @@ -385,6 +385,8 @@ void QMLManager::loadDivesWithValidCredentials() return; } appendTextToLog("Cloud sync brought newer data, reloading the dive list"); + timestamp_t currentDiveTimestamp = selectedDiveTimestamp(); + clear_dive_file_data(); if (git != dummy_git_repository) { appendTextToLog(QString("have repository and branch %1").arg(branch)); @@ -414,6 +416,7 @@ void QMLManager::loadDivesWithValidCredentials() DiveListModel::instance()->clear(); process_dives(false, false); DiveListModel::instance()->addAllDives(); + setUpdateSelectedDive(dlSortModel->getIdxForId(get_dive_id_closest_to(currentDiveTimestamp))); appendTextToLog(QStringLiteral("%1 dives loaded").arg(dive_table.nr)); if (dive_table.nr == 0) setStartPageText(tr("Cloud storage open successfully. No dives in dive list.")); @@ -1128,6 +1131,28 @@ void QMLManager::setSyncToCloud(bool status) emit syncToCloudChanged(); } +int QMLManager::updateSelectedDive() const +{ + return m_updateSelectedDive; +} + +void QMLManager::setUpdateSelectedDive(int idx) +{ + m_updateSelectedDive = idx; + emit updateSelectedDiveChanged(); +} + +int QMLManager::selectedDiveTimestamp() const +{ + return m_selectedDiveTimestamp; +} + +void QMLManager::setSelectedDiveTimestamp(int when) +{ + m_selectedDiveTimestamp = when; + emit selectedDiveTimestampChanged(); +} + qreal QMLManager::lastDevicePixelRatio() { return m_lastDevicePixelRatio; |