QML UI: correctly show if we are accessing remote or local storage

This makes sure that if the user switches to offline mode they don't get
incorrect notifications that tell them that they are accessing cloud
storage.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2016-04-19 10:27:18 -07:00
parent ac0c1eb5e1
commit 660f421d6d
2 changed files with 12 additions and 9 deletions

View file

@ -22,10 +22,15 @@ Kirigami.ApplicationWindow {
property bool showingDiveList: false
property alias syncToCloud: manager.syncToCloud
onAccessingCloudChanged: {
// >= 0 for updating cloud, -1 for hide, < -1 for local storage
if (accessingCloud >= 0) {
// we now keep updating this to show progress, so timing out after 30 seconds is more useful
// but should still be very conservative
showPassiveNotification("Accessing Subsurface Cloud Storage " + accessingCloud +"%", 30000);
showPassiveNotification("Accessing Subsurface cloud storage " + accessingCloud +"%", 30000);
} else if (accessingCloud < -1) {
// local storage should be much faster, so timeout of 5 seconds
// the offset of 2 is so that things start 0 again
showPassiveNotification("Accessing local storage " + -(accessingCloud + 2) +"%", 5000);
} else {
hidePassiveNotification();
}

View file

@ -46,7 +46,7 @@ extern "C" int gitProgressCB(bool reset, const char *text)
if (!timer.isValid() || reset) {
timer.restart();
lastTime = 0;
lastPercent = 0;
lastPercent = prefs.git_local_only ? -2 : 0;
lastText.clear();
}
if (self) {
@ -54,7 +54,11 @@ extern "C" int gitProgressCB(bool reset, const char *text)
// don't show the same status twice in 200ms
if (lastText == text && elapsed - lastTime < 200)
return 0;
self->loadDiveProgress(++lastPercent);
if (lastPercent < 0)
lastPercent--;
else
lastPercent++;
self->loadDiveProgress(lastPercent);
QString logText = QString::number(elapsed / 1000.0, 'f', 1) + " / " + QString::number((elapsed - lastTime) / 1000.0, 'f', 3) +
QString(" : git %1 (%2)").arg(lastPercent).arg(text);
self->appendTextToLog(logText);
@ -356,13 +360,7 @@ void QMLManager::retrieveUserid()
void QMLManager::loadDiveProgress(int percent)
{
QString text(tr("Loading dive list from cloud storage."));
setAccessingCloud(percent);
while (percent > 0) {
text.append(".");
percent -= 10;
}
setStartPageText(text);
}
void QMLManager::loadDivesWithValidCredentials()