Change the git progress update callback signature

This way we can include additional text. This will be used in later
patches.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2016-04-03 18:13:22 -05:00
parent 8b710f4d6c
commit eea1ff6a83
4 changed files with 25 additions and 12 deletions

View file

@ -66,8 +66,10 @@
QProgressDialog *progressDialog = NULL; QProgressDialog *progressDialog = NULL;
bool progressDialogCanceled = false; bool progressDialogCanceled = false;
extern "C" int updateProgress(int percent) extern "C" int updateProgress(int percent, const char *text)
{ {
if (verbose)
qDebug() << "git storage:" << percent << "% with note" << text;
if (progressDialog) if (progressDialog)
progressDialog->setValue(percent); progressDialog->setValue(percent);
return progressDialogCanceled; return progressDialogCanceled;

View file

@ -7,6 +7,8 @@
#include <QDesktopServices> #include <QDesktopServices>
#include <QTextDocument> #include <QTextDocument>
#include <QRegularExpression> #include <QRegularExpression>
#include <QApplication>
#include <QElapsedTimer>
#include "qt-models/divelistmodel.h" #include "qt-models/divelistmodel.h"
#include <gpslistmodel.h> #include <gpslistmodel.h>
@ -30,15 +32,24 @@ static void appendTextToLogStandalone(const char *text)
self->appendTextToLog(QString(text)); self->appendTextToLog(QString(text));
} }
extern "C" int gitProgressCB(int percent) extern "C" int gitProgressCB(int percent, const char *text)
{ {
static int lastPercent = -10; static QElapsedTimer timer;
static qint64 lastTime = 0;
if (percent - lastPercent >= 10) { if (!timer.isValid() || percent == 0) {
lastPercent += 10; timer.restart();
lastTime = 0;
}
QMLManager *self = QMLManager::instance(); QMLManager *self = QMLManager::instance();
if (self) if (self) {
qint64 elapsed = timer.elapsed();
self->loadDiveProgress(percent); self->loadDiveProgress(percent);
self->appendTextToLog(QString::number(elapsed / 1000.0, 'f', 1) + " / " + QString::number((elapsed - lastTime) / 1000.0, 'f', 3) +
QString(" : git progress %1 (%2)").arg(percent).arg(text));
qApp->processEvents();
qApp->flush();
lastTime = elapsed;
} }
// return 0 so that we don't end the download // return 0 so that we don't end the download
return 0; return 0;

View file

@ -22,9 +22,9 @@
bool is_subsurface_cloud = false; bool is_subsurface_cloud = false;
int (*update_progress_cb)(int) = NULL; int (*update_progress_cb)(int, const char *) = NULL;
void set_git_update_cb(int(*cb)(int)) void set_git_update_cb(int(*cb)(int, const char *))
{ {
update_progress_cb = cb; update_progress_cb = cb;
} }
@ -34,7 +34,7 @@ static int update_progress(int percent)
static int last_percent = -10; static int last_percent = -10;
int ret = 0; int ret = 0;
if (update_progress_cb) if (update_progress_cb)
ret = (*update_progress_cb)(percent); ret = (*update_progress_cb)(percent, "");
if (verbose && percent - 10 >= last_percent) { if (verbose && percent - 10 >= last_percent) {
last_percent = percent; last_percent = percent;
fprintf(stderr, "git progress %d%%\n", percent); fprintf(stderr, "git progress %d%%\n", percent);

View file

@ -23,7 +23,7 @@ extern int do_git_save(git_repository *repo, const char *branch, const char *rem
extern const char *saved_git_id; extern const char *saved_git_id;
extern void clear_git_id(void); extern void clear_git_id(void);
extern void set_git_id(const struct git_oid *); extern void set_git_id(const struct git_oid *);
void set_git_update_cb(int(*cb)(int)); void set_git_update_cb(int (*)(int, const char *));
char *get_local_dir(const char *remote, const char *branch); char *get_local_dir(const char *remote, const char *branch);
#ifdef __cplusplus #ifdef __cplusplus
} }