diff options
-rw-r--r-- | core/checkcloudconnection.cpp | 6 | ||||
-rw-r--r-- | core/git-access.c | 85 | ||||
-rw-r--r-- | core/git-access.h | 4 | ||||
-rw-r--r-- | core/load-git.c | 8 | ||||
-rw-r--r-- | core/save-git.c | 8 | ||||
-rw-r--r-- | desktop-widgets/mainwindow.cpp | 19 | ||||
-rw-r--r-- | mobile-widgets/qml/main.qml | 18 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.cpp | 77 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.h | 11 |
9 files changed, 106 insertions, 130 deletions
diff --git a/core/checkcloudconnection.cpp b/core/checkcloudconnection.cpp index 2147d90e4..b9a11046a 100644 --- a/core/checkcloudconnection.cpp +++ b/core/checkcloudconnection.cpp @@ -52,18 +52,18 @@ bool CheckCloudConnection::checkServer() mgr->deleteLater(); if (verbose > 1) qWarning() << "Cloud storage: successfully checked connection to cloud server"; - git_storage_update_progress(false, "successfully checked cloud connection"); + git_storage_update_progress("successfully checked cloud connection"); return true; } } else if (seconds < prefs.cloud_timeout) { QString text = QString("waited %1 sec for cloud connetion").arg(seconds); - git_storage_update_progress(false, qPrintable(text)); + git_storage_update_progress(qPrintable(text)); } else { disconnect(reply, SIGNAL(finished()), &loop, SLOT(quit())); reply->abort(); } } - git_storage_update_progress(false, "cloud connection failed"); + git_storage_update_progress("cloud connection failed"); prefs.git_local_only = true; if (verbose) qDebug() << "connection test to cloud server failed" << diff --git a/core/git-access.c b/core/git-access.c index e190e4d5f..d7f971c54 100644 --- a/core/git-access.c +++ b/core/git-access.c @@ -25,9 +25,9 @@ bool is_subsurface_cloud = false; -int (*update_progress_cb)(bool, const char *) = NULL; +int (*update_progress_cb)(const char *) = NULL; -void set_git_update_cb(int(*cb)(bool, const char *)) +void set_git_update_cb(int(*cb)(const char *)) { update_progress_cb = cb; } @@ -38,11 +38,11 @@ void set_git_update_cb(int(*cb)(bool, const char *)) // proportional - some parts are based on compute performance, some on network speed) // they also provide information where in the process we are so we can analyze the log // to understand which parts of the process take how much time. -int git_storage_update_progress(bool reset, const char *text) +int git_storage_update_progress(const char *text) { int ret = 0; if (update_progress_cb) - ret = (*update_progress_cb)(reset, text); + ret = (*update_progress_cb)(text); return ret; } @@ -52,12 +52,9 @@ static void progress_cb(const char *path, size_t completed_steps, size_t total_s { (void) path; (void) payload; - static size_t last_percent = -1; - - if (total_steps && 20 * completed_steps / total_steps > last_percent) { - (void)git_storage_update_progress(false, "checkout_progress_cb"); - last_percent = 20 * completed_steps / total_steps; - } + char buf[80]; + snprintf(buf, sizeof(buf), translate("gettextFromC", "Checkout from storage (%lu/%lu)"), completed_steps, total_steps); + (void)git_storage_update_progress(buf); } // this randomly assumes that 80% of the time is spent on the objects and 20% on the deltas @@ -66,21 +63,29 @@ static void progress_cb(const char *path, size_t completed_steps, size_t total_s static int transfer_progress_cb(const git_transfer_progress *stats, void *payload) { (void) payload; - static int last_percent = -1; - int percent = 0; - if (stats->total_objects) - percent = 16 * stats->received_objects / stats->total_objects; - if (stats->total_deltas) - percent += 4 * stats->indexed_deltas / stats->total_deltas; + static int last_done = -1; + char buf[80]; + int done = 0; + int total = 0; + + if (stats->total_objects) { + total = 60; + done = 60 * stats->received_objects / stats->total_objects; + } + if (stats->total_deltas) { + total += 20; + done += 20 * stats->indexed_deltas / stats->total_deltas; + } /* for debugging this is useful char buf[100]; snprintf(buf, 100, "transfer cb rec_obj %d tot_obj %d idx_delta %d total_delta %d local obj %d", stats->received_objects, stats->total_objects, stats->indexed_deltas, stats->total_deltas, stats->local_objects); - return git_storage_update_progress(false, buf); + return git_storage_update_progress(buf); */ - if (percent > last_percent) { - last_percent = percent; - return git_storage_update_progress(false, "transfer cb"); + if (done > last_done) { + last_done = done; + snprintf(buf, sizeof(buf), translate("gettextFromC", "Transfer from storage (%d/%d)"), done, total); + return git_storage_update_progress(buf); } return 0; } @@ -90,16 +95,9 @@ static int push_transfer_progress_cb(unsigned int current, unsigned int total, s { (void) bytes; (void) payload; - static int last_percent = -1; - int percent = 0; - - if (total != 0) - percent = 5 * current / total; - if (percent > last_percent) { - last_percent = percent; - return git_storage_update_progress(false, "push trasfer cb"); - } - return 0; + char buf[80]; + snprintf(buf, sizeof(buf), translate("gettextFromC", "Transfer to storage (%d/%d)"), current, total); + return git_storage_update_progress("push trasfer cb"); } char *get_local_dir(const char *remote, const char *branch) @@ -434,7 +432,7 @@ static int try_to_update(git_repository *repo, git_remote *origin, git_reference if (verbose) fprintf(stderr, "git storage: try to update\n"); - git_storage_update_progress(false, "try to update"); + git_storage_update_progress("try to update"); if (!git_reference_cmp(local, remote)) return 0; @@ -468,7 +466,7 @@ static int try_to_update(git_repository *repo, git_remote *origin, git_reference } /* Is the remote strictly newer? Use it */ if (git_oid_equal(&base, local_id)) { - git_storage_update_progress(false, "fast forward to remote"); + git_storage_update_progress("fast forward to remote"); return reset_to_remote(repo, local, remote_id); } @@ -476,7 +474,7 @@ static int try_to_update(git_repository *repo, git_remote *origin, git_reference if (git_oid_equal(&base, remote_id)) { if (verbose) fprintf(stderr, "local is newer than remote, update remote\n"); - git_storage_update_progress(false, "git_update_remote, local was newer"); + git_storage_update_progress("git_update_remote, local was newer"); return update_remote(repo, origin, local, remote, rt); } /* Merging a bare repository always needs user action */ @@ -494,7 +492,7 @@ static int try_to_update(git_repository *repo, git_remote *origin, git_reference return report_error("Local and remote do not match, local branch not HEAD - cannot update"); } /* Ok, let's try to merge these */ - git_storage_update_progress(false, "try to merge"); + git_storage_update_progress("try to merge"); ret = try_to_git_merge(repo, &local, remote, &base, local_id, remote_id); if (ret == 0) return update_remote(repo, origin, local, remote, rt); @@ -516,7 +514,7 @@ static int check_remote_status(git_repository *repo, git_remote *origin, const c if (verbose) fprintf(stderr, "git storage: check remote status\n"); - git_storage_update_progress(false, "git check remote status"); + git_storage_update_progress("git check remote status"); if (git_branch_lookup(&local_ref, repo, branch, GIT_BRANCH_LOCAL)) { if (is_subsurface_cloud) @@ -537,7 +535,7 @@ static int check_remote_status(git_repository *repo, git_remote *origin, const c else if (rt == RT_HTTPS) opts.callbacks.credentials = credential_https_cb; opts.callbacks.certificate_check = certificate_check_cb; - git_storage_update_progress(false, "git remote push (no remote existed)"); + git_storage_update_progress("git remote push (no remote existed)"); error = git_remote_push(origin, &refspec, &opts); } else { error = try_to_update(repo, origin, local_ref, remote_ref, remote, branch, rt); @@ -561,7 +559,7 @@ int sync_with_remote(git_repository *repo, const char *remote, const char *branc } if (verbose) fprintf(stderr, "sync with remote %s[%s]\n", remote, branch); - git_storage_update_progress(false, "sync with remote"); + git_storage_update_progress("sync with remote"); git_repository_config(&conf, repo); if (rt == RT_HTTPS && getProxyString(&proxy_string)) { if (verbose) @@ -588,7 +586,7 @@ int sync_with_remote(git_repository *repo, const char *remote, const char *branc if (rt == RT_HTTPS && !canReachCloudServer()) { // this is not an error, just a warning message, so return 0 report_error("Cannot connect to cloud server, working with local copy"); - git_storage_update_progress(false, "can't reach cloud server, working with local copy"); + git_storage_update_progress("can't reach cloud server, working with local copy"); return 0; } if (verbose) @@ -601,7 +599,7 @@ int sync_with_remote(git_repository *repo, const char *remote, const char *branc else if (rt == RT_HTTPS) opts.callbacks.credentials = credential_https_cb; opts.callbacks.certificate_check = certificate_check_cb; - git_storage_update_progress(false, "git fetch remote"); + git_storage_update_progress("git fetch remote"); error = git_remote_fetch(origin, NULL, &opts, NULL); // NOTE! A fetch error is not fatal, we just report it if (error) { @@ -616,7 +614,7 @@ int sync_with_remote(git_repository *repo, const char *remote, const char *branc error = check_remote_status(repo, origin, remote, branch, rt); } git_remote_free(origin); - git_storage_update_progress(false, "done with sync with remote"); + git_storage_update_progress("done with sync with remote"); return error; } @@ -636,9 +634,10 @@ static git_repository *update_local_repo(const char *localdir, const char *remot report_error("Unable to open git cache repository at %s: %s", localdir, giterr_last()->message); return NULL; } - if (!prefs.git_local_only) + if (!prefs.git_local_only) { + git_storage_update_progress("update remote repo"); sync_with_remote(repo, remote, branch, rt); - + } return repo; } @@ -774,7 +773,7 @@ static struct git_repository *get_remote_repo(const char *localdir, const char * if (verbose > 1) { fprintf(stderr, "git_remote_repo: accessing %s\n", remote); } - git_storage_update_progress(false, "start git interaction"); + git_storage_update_progress("start git interaction"); /* Do we already have a local cache? */ if (!subsurface_stat(localdir, &st)) { if (!S_ISDIR(st.st_mode)) { diff --git a/core/git-access.h b/core/git-access.h index 5cdef37ae..395f5ed2b 100644 --- a/core/git-access.h +++ b/core/git-access.h @@ -25,8 +25,8 @@ extern int do_git_save(git_repository *repo, const char *branch, const char *rem extern const char *saved_git_id; extern void clear_git_id(void); extern void set_git_id(const struct git_oid *); -void set_git_update_cb(int(*)(bool, const char *)); -int git_storage_update_progress(bool reset, const char *text); +void set_git_update_cb(int(*)(const char *)); +int git_storage_update_progress(const char *text); char *get_local_dir(const char *remote, const char *branch); int git_create_local_repo(const char *filename); diff --git a/core/load-git.c b/core/load-git.c index 59bb4ef71..01c231c77 100644 --- a/core/load-git.c +++ b/core/load-git.c @@ -1675,19 +1675,19 @@ static int do_git_load(git_repository *repo, const char *branch) git_commit *commit; git_tree *tree; - git_storage_update_progress(false, "do_git_load, find the commit"); + git_storage_update_progress("do_git_load, find the commit"); ret = find_commit(repo, branch, &commit); if (ret) return ret; - git_storage_update_progress(false, "git commit tree"); + git_storage_update_progress("git commit tree"); if (git_commit_tree(&tree, commit)) return report_error("Could not look up tree of commit in branch '%s'", branch); - git_storage_update_progress(false, "load dives from tree"); + git_storage_update_progress("load dives from tree"); ret = load_dives_from_tree(repo, tree); if (!ret) set_git_id(git_commit_id(commit)); git_object_free((git_object *)tree); - git_storage_update_progress(false, "done do_git_load"); + git_storage_update_progress("done do_git_load"); return ret; } diff --git a/core/save-git.c b/core/save-git.c index 6916dec33..8f4e4ff0b 100644 --- a/core/save-git.c +++ b/core/save-git.c @@ -936,7 +936,7 @@ static int create_git_tree(git_repository *repo, struct dir *root, bool select_o struct dive *dive; dive_trip_t *trip; - git_storage_update_progress(false, "start create git tree"); + git_storage_update_progress("start create git tree"); save_settings(repo, root); save_divesites(repo, root); @@ -945,7 +945,7 @@ static int create_git_tree(git_repository *repo, struct dir *root, bool select_o trip->index = 0; /* save the dives */ - git_storage_update_progress(false, "start saving dives"); + git_storage_update_progress("start saving dives"); for_each_dive(i, dive) { struct tm tm; struct dir *tree; @@ -978,7 +978,7 @@ static int create_git_tree(git_repository *repo, struct dir *root, bool select_o save_one_dive(repo, tree, dive, &tm, cached_ok); } - git_storage_update_progress(false, "done creating git tree"); + git_storage_update_progress("done creating git tree"); return 0; } @@ -1209,7 +1209,7 @@ int do_git_save(git_repository *repo, const char *branch, const char *remote, bo fprintf(stderr, "git storage: do git save\n"); if (!create_empty) // so we are actually saving the dives - git_storage_update_progress(false, "start git save"); + git_storage_update_progress("start git save"); /* * Check if we can do the cached writes - we need to diff --git a/desktop-widgets/mainwindow.cpp b/desktop-widgets/mainwindow.cpp index 9df50663e..c8eaecaa2 100644 --- a/desktop-widgets/mainwindow.cpp +++ b/desktop-widgets/mainwindow.cpp @@ -66,16 +66,17 @@ QProgressDialog *progressDialog = NULL; bool progressDialogCanceled = false; -extern "C" int updateProgress(bool reset, const char *text) +extern "C" int updateProgress(const char *text) { - static int percent; - - if (reset) - percent = 0; + static int progress = 0; if (verbose) - qDebug() << "git storage:" << +percent << "% (" << text << ")"; - if (progressDialog) - progressDialog->setValue(percent); + qDebug() << "git storage:" << text; + if (progressDialog) { + progressDialog->setLabelText(text); + progressDialog->setValue(++progress); + if (progress == 100) + progress = 0; // yes this is silly, but we really don't know how long it will take + } qApp->processEvents(); return progressDialogCanceled; } @@ -2015,7 +2016,7 @@ void MainWindow::showProgressBar() progressDialog = new QProgressDialog(tr("Contacting cloud service..."), tr("Cancel"), 0, 100, this); progressDialog->setWindowModality(Qt::WindowModal); - progressDialog->setMinimumDuration(200); + progressDialog->setMinimumDuration(0); progressDialogCanceled = false; connect(progressDialog, SIGNAL(canceled()), this, SLOT(cancelCloudStorageOperation())); } diff --git a/mobile-widgets/qml/main.qml b/mobile-widgets/qml/main.qml index 5a5d7d20e..d3d102f99 100644 --- a/mobile-widgets/qml/main.qml +++ b/mobile-widgets/qml/main.qml @@ -19,23 +19,19 @@ Kirigami.ApplicationWindow { } property bool fullscreen: true property alias oldStatus: manager.oldStatus - property alias accessingCloud: manager.accessingCloud + property alias notificationText: manager.notificationText property QtObject notification: null property bool showingDiveList: false property alias syncToCloud: manager.syncToCloud property alias showPin: manager.showPin - 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); - } 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); + onNotificationTextChanged: { + if (notificationText != "") { + // there's a risk that we have a >5 second gap in update events; + // still, keep the timeout at 5s to avoid odd unchanging notifications + showPassiveNotification(notificationText, 5000) } else { + // hiding the notification right away may be a mistake as it hides the last warning / error hidePassiveNotification(); } } diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp index 3cfb13d2d..5db6ee186 100644 --- a/mobile-widgets/qmlmanager.cpp +++ b/mobile-widgets/qmlmanager.cpp @@ -40,37 +40,24 @@ static void appendTextToLogStandalone(const char *text) self->appendTextToLog(QString(text)); } -extern "C" int gitProgressCB(bool reset, const char *text) +// show the git progress in the passive notification area +extern "C" int gitProgressCB(const char *text) { static QElapsedTimer timer; static qint64 lastTime; - static QString lastText; static QMLManager *self; - static int lastPercent; if (!self) self = QMLManager::instance(); - if (!timer.isValid() || reset) { + if (!timer.isValid()) { timer.restart(); lastTime = 0; - lastPercent = prefs.git_local_only ? -2 : 0; - lastText.clear(); } if (self) { qint64 elapsed = timer.elapsed(); - // don't show the same status twice in 200ms - if (lastText == text && elapsed - lastTime < 200) - return 0; - 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); - qDebug() << logText; + self->appendTextToLog(text); + self->setNotificationText(text); if (elapsed - lastTime > 500) qApp->processEvents(); lastTime = elapsed; @@ -101,7 +88,6 @@ QMLManager::QMLManager() : m_locationServiceEnabled(false), qDebug() << "Starting" << getUserAgent(); qDebug() << QStringLiteral("build with Qt Version %1, runtime from Qt Version %2").arg(QT_VERSION_STR).arg(qVersion()); setStartPageText(tr("Starting...")); - setAccessingCloud(-1); setShowPin(false); // create location manager service locationProvider = new GpsLocation(&appendTextToLogStandalone, this); @@ -145,14 +131,15 @@ void QMLManager::applicationStateChanged(Qt::ApplicationState state) void QMLManager::openLocalThenRemote(QString url) { clear_dive_file_data(); + setNotificationText(tr("Open local dive data file")); QByteArray fileNamePrt = QFile::encodeName(url); bool glo = prefs.git_local_only; prefs.git_local_only = true; int error = parse_file(fileNamePrt.data()); - setAccessingCloud(-1); prefs.git_local_only = glo; if (error) { appendTextToLog(QStringLiteral("loading dives from cache failed %1").arg(error)); + setNotificationText(tr("Opening local data file failed")); } else { // if we can load from the cache, we know that we have at least a valid email if (credentialStatus() == UNKNOWN) @@ -172,6 +159,7 @@ void QMLManager::openLocalThenRemote(QString url) DiveListModel::instance()->clear(); DiveListModel::instance()->addAllDives(); appendTextToLog(QStringLiteral("%1 dives loaded from cache").arg(dive_table.nr)); + setNotificationText(tr("%1 dives loaded from local dive data file").arg(dive_table.nr)); } if (oldStatus() == NOCLOUD) { // if we switch to credentials from NOCLOUD, we take things online temporarily @@ -217,11 +205,11 @@ void QMLManager::finishSetup() if (error) { // we got an error loading the local file appendTextToLog(QString("got error %2 when parsing file %1").arg(existing_filename, get_error_string())); + setNotificationText(tr("Error parsing local storage, giving up")); set_filename(NULL, ""); } else { // successfully opened the local file, now add thigs to the dive list consumeFinishedLoad(0); - setAccessingCloud(-1); appendTextToLog(QString("working in no-cloud mode, finished loading %1 dives from %2").arg(dive_table.nr).arg(existing_filename)); } } else { @@ -315,7 +303,6 @@ void QMLManager::checkCredentialsAndExecute(execute_function_type execute) // and (if we haven't done so) load the dive list if (!same_string(prefs.cloud_storage_email, "") && !same_string(prefs.cloud_storage_password, "")) { - setAccessingCloud(0); setStartPageText(tr("Testing cloud credentials")); appendTextToLog("Have credentials, let's see if they are valid"); CloudStorageAuthenticate *csa = new CloudStorageAuthenticate(this); @@ -390,7 +377,7 @@ void QMLManager::handleSslErrors(const QList<QSslError> &errors) } reply->abort(); reply->deleteLater(); - setAccessingCloud(-1); + setNotificationText(QStringLiteral("")); } void QMLManager::handleError(QNetworkReply::NetworkError nError) @@ -400,7 +387,7 @@ void QMLManager::handleError(QNetworkReply::NetworkError nError) setStartPageText(RED_FONT + tr("Cannot open cloud storage: %1").arg(errorString) + END_FONT); reply->abort(); reply->deleteLater(); - setAccessingCloud(-1); + setNotificationText(QStringLiteral("")); } void QMLManager::retrieveUserid() @@ -434,16 +421,11 @@ void QMLManager::retrieveUserid() } setCredentialStatus(VALID); setStartPageText("Cloud credentials valid, loading dives..."); - git_storage_update_progress(true, "load dives with valid credentials"); + git_storage_update_progress("load dives with valid credentials"); // this only gets called with "alreadySaving" already locked loadDivesWithValidCredentials(); } -void QMLManager::loadDiveProgress(int percent) -{ - setAccessingCloud(percent); -} - void QMLManager::loadDivesWithValidCredentials() { QString url; @@ -474,16 +456,16 @@ void QMLManager::loadDivesWithValidCredentials() appendTextToLog(QString("didn't receive valid git repo, try again")); error = parse_file(fileNamePrt.data()); } - setAccessingCloud(-1); if (!error) { report_error("filename is now %s", fileNamePrt.data()); - const char *error_string = get_error_string(); - appendTextToLog(error_string); + QString errorString(get_error_string()); + appendTextToLog(errorString); set_filename(fileNamePrt.data(), true); } else { report_error("failed to open file %s", fileNamePrt.data()); QString errorString(get_error_string()); appendTextToLog(errorString); + setNotificationText(errorString); revertToNoCloudIfNeeded(); return; } @@ -495,7 +477,7 @@ successful_exit: // if we came from local storage mode, let's merge the local data into the local cache // for the remote data - which then later gets merged with the remote data if necessary if (oldStatus() == NOCLOUD) { - git_storage_update_progress(false, "import dives from nocloud local storage"); + git_storage_update_progress("import dives from nocloud local storage"); dive_table.preexisting = dive_table.nr; mergeLocalRepo(); DiveListModel::instance()->clear(); @@ -507,7 +489,6 @@ successful_exit: prefs.git_local_only = syncToCloud(); } } - setAccessingCloud(-1); // if we got here just for an initial connection to the cloud, reset to offline if (currentGitLocalOnly) { currentGitLocalOnly = false; @@ -543,7 +524,6 @@ void QMLManager::revertToNoCloudIfNeeded() set_filename(NOCLOUD_LOCALSTORAGE, true); setStartPageText(RED_FONT + tr("Failed to connect to cloud server, reverting to no cloud status") + END_FONT); } - setAccessingCloud(-1); alreadySaving = false; } @@ -964,7 +944,7 @@ void QMLManager::changesNeedSaving() void QMLManager::saveChangesLocal() { if (unsaved_changes()) { - git_storage_update_progress(true, "saving dives locally"); // reset the timers + git_storage_update_progress("saving dives locally"); if (credentialStatus() == NOCLOUD) { if (same_string(existing_filename, "")) { char *filename = NOCLOUD_LOCALSTORAGE; @@ -990,16 +970,17 @@ void QMLManager::saveChangesLocal() bool glo = prefs.git_local_only; prefs.git_local_only = true; if (save_dives(existing_filename)) { - appendTextToLog(get_error_string()); + QString errorString(get_error_string()); + appendTextToLog(errorString); + setNotificationText(errorString); set_filename(NULL, true); - setAccessingCloud(-1); prefs.git_local_only = glo; alreadySaving = false; return; } prefs.git_local_only = glo; mark_divelist_changed(false); - git_storage_update_progress(false, "done with local save"); + git_storage_update_progress("done with local save"); alreadySaving = false; } else { appendTextToLog("local save requested with no unsaved changes"); @@ -1017,6 +998,7 @@ void QMLManager::saveChangesCloud(bool forceRemoteSync) return; } // first we need to store any unsaved changes to the local repo + gitProgressCB("Save changes to local cache"); saveChangesLocal(); // if the user asked not to push to the cloud we are done @@ -1029,13 +1011,12 @@ void QMLManager::saveChangesCloud(bool forceRemoteSync) } bool glo = prefs.git_local_only; - git_storage_update_progress(false, "start save change to cloud"); + git_storage_update_progress("start save change to cloud"); prefs.git_local_only = false; alreadySaving = true; loadDivesWithValidCredentials(); alreadySaving = false; - git_storage_update_progress(false, "finished syncing dive list to cloud server"); - setAccessingCloud(-1); + git_storage_update_progress("finished syncing dive list to cloud server"); prefs.git_local_only = glo; } @@ -1366,15 +1347,15 @@ QString QMLManager::getVersion() const return versionRe.cap(1); } -int QMLManager::accessingCloud() const +QString QMLManager::notificationText() const { - return m_accessingCloud; + return m_notificationText; } -void QMLManager::setAccessingCloud(int status) +void QMLManager::setNotificationText(QString text) { - m_accessingCloud = status; - emit accessingCloudChanged(); + m_notificationText = text; + emit notificationTextChanged(); } bool QMLManager::syncToCloud() const diff --git a/mobile-widgets/qmlmanager.h b/mobile-widgets/qmlmanager.h index dbaed488e..53b3634d6 100644 --- a/mobile-widgets/qmlmanager.h +++ b/mobile-widgets/qmlmanager.h @@ -29,7 +29,7 @@ class QMLManager : public QObject { Q_PROPERTY(bool verboseEnabled READ verboseEnabled WRITE setVerboseEnabled NOTIFY verboseEnabledChanged) Q_PROPERTY(credentialStatus_t credentialStatus READ credentialStatus WRITE setCredentialStatus NOTIFY credentialStatusChanged) Q_PROPERTY(credentialStatus_t oldStatus READ oldStatus WRITE setOldStatus NOTIFY oldStatusChanged) - Q_PROPERTY(int accessingCloud READ accessingCloud WRITE setAccessingCloud NOTIFY accessingCloudChanged) + Q_PROPERTY(QString notificationText READ notificationText WRITE setNotificationText NOTIFY notificationTextChanged) Q_PROPERTY(bool syncToCloud READ syncToCloud WRITE setSyncToCloud NOTIFY syncToCloudChanged) Q_PROPERTY(int updateSelectedDive READ updateSelectedDive WRITE setUpdateSelectedDive NOTIFY updateSelectedDiveChanged) Q_PROPERTY(int selectedDiveTimestamp READ selectedDiveTimestamp WRITE setSelectedDiveTimestamp NOTIFY selectedDiveTimestampChanged) @@ -94,8 +94,8 @@ public: QString logText() const; void setLogText(const QString &logText); - int accessingCloud() const; - void setAccessingCloud(int status); + QString notificationText() const; + void setNotificationText(QString text); bool syncToCloud() const; void setSyncToCloud(bool status); @@ -126,7 +126,6 @@ public slots: void handleSslErrors(const QList<QSslError> &errors); void retrieveUserid(); void loadDivesWithValidCredentials(); - void loadDiveProgress(int percent); void provideAuth(QNetworkReply *reply, QAuthenticator *auth); void commitChanges(QString diveId, QString date, QString location, QString gps, QString duration, QString depth, QString airtemp, @@ -182,7 +181,7 @@ private: QNetworkRequest request; struct dive *deletedDive; struct dive_trip *deletedTrip; - int m_accessingCloud; + QString m_notificationText; bool m_syncToCloud; int m_updateSelectedDive; int m_selectedDiveTimestamp; @@ -213,7 +212,7 @@ signals: void startPageTextChanged(); void credentialStatusChanged(); void oldStatusChanged(); - void accessingCloudChanged(); + void notificationTextChanged(); void syncToCloudChanged(); void updateSelectedDiveChanged(); void selectedDiveTimestampChanged(); |