From: Christian Kamm Date: Fri, 27 Mar 2015 13:40:33 +0000 (+0100) Subject: AccountSettings: Update progress only twice per second. #3014 X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~1673^2~20 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=0f33e266cede90f56824cd92a19a8fd8b3c2801a;p=nextcloud-desktop.git AccountSettings: Update progress only twice per second. #3014 --- diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index f46cf80b1..a6858043a 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -119,6 +119,8 @@ AccountSettings::AccountSettings(QWidget *parent) : connect(folderMan, SIGNAL(folderListLoaded(Folder::Map)), this, SLOT(setFolderList(Folder::Map))); setFolderList(FolderMan::instance()->map()); + + _lastProgressUpdate.start(); } void AccountSettings::slotAccountStateChanged(AccountState *newAccountState) @@ -607,6 +609,15 @@ void AccountSettings::slotSetProgress(const QString& folder, const Progress::Inf return; } + // Don't update progess too often. + const int msBetweenProgressUpdates = 500; + if (_lastProgressUpdate.elapsed() < msBetweenProgressUpdates) { + qDebug() << "skip progress"; + return; + } + _lastProgressUpdate.restart(); + + if(!progress._lastCompletedItem.isEmpty() && Progress::isWarningKind(progress._lastCompletedItem._status)) { int warnCount = item->data(FolderStatusDelegate::WarningCount).toInt(); diff --git a/src/gui/accountsettings.h b/src/gui/accountsettings.h index 94110a9bc..46b6fd9ba 100644 --- a/src/gui/accountsettings.h +++ b/src/gui/accountsettings.h @@ -98,6 +98,7 @@ private: QStringList _generalErrors; bool _wasDisabledBefore; AccountState *_accountState; + QElapsedTimer _lastProgressUpdate; private slots: void slotFolderSyncStateChange(); void slotAccountStateChanged(AccountState*);