From 046d180d2ff7e7b6ce0414a9f9095e5258f27062 Mon Sep 17 00:00:00 2001 From: Klaas Freitag Date: Tue, 3 Dec 2013 14:48:38 +0100 Subject: Rather count the blacklist items in the database. Use database functions to count the entries rather than trying to compute it from the progress items the widget got. --- src/mirall/protocolwidget.cpp | 18 +++++++++++++++--- src/mirall/protocolwidget.h | 2 ++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/mirall/protocolwidget.cpp b/src/mirall/protocolwidget.cpp index 5cb037a0a..c7c882e96 100644 --- a/src/mirall/protocolwidget.cpp +++ b/src/mirall/protocolwidget.cpp @@ -171,7 +171,6 @@ void ProtocolWidget::cleanErrorItems( const QString& folder ) // FIXME: Use the if( wipeList.count() > 0 ) { qDeleteAll(wipeList.begin(), wipeList.end()); } - _clearBlacklistBtn->setEnabled(false); } QString ProtocolWidget::timeString(QDateTime dt, QLocale::FormatType format) const @@ -217,7 +216,6 @@ QTreeWidgetItem *ProtocolWidget::createProblemTreewidgetItem( const Progress::Sy item->setIcon(0, Theme::instance()->syncStateIcon(SyncResult::Problem, true)); } else { item->setIcon(0, Theme::instance()->syncStateIcon(SyncResult::Error, true)); - _clearBlacklistBtn->setEnabled(true); } item->setToolTip(0, longTimeStr); item->setToolTip(3, errMsg ); @@ -264,14 +262,28 @@ QTreeWidgetItem* ProtocolWidget::createProgressTreewidgetItem( const Progress::I return item; } +void ProtocolWidget::computeResyncButtonEnabled() +{ + FolderMan *folderMan = FolderMan::instance(); + Folder::Map folders = folderMan->map(); + + int cnt = 0; + foreach( Folder *f, folders ) { + cnt += f->blackListEntryCount(); + } + _clearBlacklistBtn->setEnabled(cnt > 0); + +} + void ProtocolWidget::slotProgressInfo( const QString& folder, const Progress::Info& progress ) { if( progress.kind == Progress::StartSync ) { cleanErrorItems( folder ); + _clearBlacklistBtn->setEnabled(false); } if( progress.kind == Progress::EndSync ) { - // decorateFolderItem( folder ); + computeResyncButtonEnabled(); } // Ingore other events than finishing an individual up- or download. diff --git a/src/mirall/protocolwidget.h b/src/mirall/protocolwidget.h index db1543a17..c61ec484d 100644 --- a/src/mirall/protocolwidget.h +++ b/src/mirall/protocolwidget.h @@ -58,6 +58,8 @@ signals: private: void setSyncResultStatus(const SyncResult& result ); void cleanErrorItems( const QString& folder ); + void computeResyncButtonEnabled(); + QTreeWidgetItem* createProgressTreewidgetItem(const Progress::Info& progress ); QTreeWidgetItem* createProblemTreewidgetItem( const Progress::SyncProblem& problem); QList errorItems(const QString &folder); -- cgit v1.2.3