diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index f46cf80b13..a6858043ae 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 94110a9bc6..46b6fd9ba1 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*);