mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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:
parent
8b710f4d6c
commit
eea1ff6a83
4 changed files with 25 additions and 12 deletions
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue