mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
SyncEngine & UI: Move QElapsedTimer to object
Using a function static is too dangerous when multiple threads are involved.
This commit is contained in:
parent
c27f151451
commit
88072a985a
@ -457,15 +457,17 @@ void UpdateJob::update_job_update_callback (bool local,
|
||||
const char *dirUrl,
|
||||
void *userdata)
|
||||
{
|
||||
// Don't wanna overload the UI
|
||||
static QElapsedTimer throttleTimer;
|
||||
if (throttleTimer.elapsed() < 200) {
|
||||
return;
|
||||
}
|
||||
throttleTimer.restart();
|
||||
|
||||
UpdateJob *updateJob = static_cast<Mirall::UpdateJob*>(userdata);
|
||||
if (updateJob) {
|
||||
// Don't wanna overload the UI
|
||||
if (!updateJob->lastUpdateProgressCallbackCall.isValid()) {
|
||||
updateJob->lastUpdateProgressCallbackCall.restart(); // first call
|
||||
} else if (updateJob->lastUpdateProgressCallbackCall.elapsed() < 200) {
|
||||
return;
|
||||
} else {
|
||||
updateJob->lastUpdateProgressCallbackCall.restart();
|
||||
}
|
||||
|
||||
QString path = QString::fromUtf8(dirUrl).section('/', -1);
|
||||
emit updateJob->folderDiscovered(local, path);
|
||||
}
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
#include <QString>
|
||||
#include <QSet>
|
||||
#include <QMap>
|
||||
#include <qelapsedtimer.h>
|
||||
#include <QElapsedTimer>
|
||||
|
||||
#include <csync.h>
|
||||
|
||||
@ -153,12 +153,14 @@ class UpdateJob : public QObject {
|
||||
csync_log_callback _log_callback;
|
||||
int _log_level;
|
||||
void* _log_userdata;
|
||||
QElapsedTimer lastUpdateProgressCallbackCall;
|
||||
Q_INVOKABLE void start() {
|
||||
csync_set_log_callback(_log_callback);
|
||||
csync_set_log_level(_log_level);
|
||||
csync_set_log_userdata(_log_userdata);
|
||||
_csync_ctx->callbacks.update_callback = update_job_update_callback;
|
||||
_csync_ctx->callbacks.update_callback_userdata = this;
|
||||
lastUpdateProgressCallbackCall.invalidate();
|
||||
emit finished(csync_update(_csync_ctx));
|
||||
deleteLater();
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user