diff --git a/src/mirall/accountsettings.cpp b/src/mirall/accountsettings.cpp index 93479cb349..dadce7122d 100644 --- a/src/mirall/accountsettings.cpp +++ b/src/mirall/accountsettings.cpp @@ -227,7 +227,7 @@ void AccountSettings::slotAddFolder( Folder *folder ) if( ! folder || folder->alias().isEmpty() ) return; QStandardItem *item = new QStandardItem(); - folderToModelItem( item, folder ); + folderToModelItem( item, folder, _account->state() == Account::Connected ); _model->appendRow( item ); // in order to update the enabled state of the "Sync now" button connect(folder, SIGNAL(syncStateChange()), this, SLOT(slotFolderSyncStateChange()), Qt::UniqueConnection); @@ -249,7 +249,7 @@ void AccountSettings::setGeneralErrors( const QStringList& errors ) } } -void AccountSettings::folderToModelItem( QStandardItem *item, Folder *f ) +void AccountSettings::folderToModelItem( QStandardItem *item, Folder *f, bool accountConnected ) { if( ! item || !f ) return; @@ -257,6 +257,7 @@ void AccountSettings::folderToModelItem( QStandardItem *item, Folder *f ) item->setData( f->remotePath(), FolderStatusDelegate::FolderSecondPathRole ); item->setData( f->alias(), FolderStatusDelegate::FolderAliasRole ); item->setData( f->syncPaused(), FolderStatusDelegate::FolderSyncPaused ); + item->setData( accountConnected, FolderStatusDelegate::FolderAccountConnected ); SyncResult res = f->syncResult(); SyncResult::Status status = res.status(); @@ -516,7 +517,7 @@ void AccountSettings::slotUpdateFolderState( Folder *folder ) } if( item ) { - folderToModelItem( item, folder ); + folderToModelItem( item, folder, _account->state() == Account::Connected ); } else { // the dialog is not visible. } @@ -782,10 +783,10 @@ void AccountSettings::slotSyncStateChange(const QString& alias) { Q_UNUSED(alias); - FolderMan *folderMan = FolderMan::instance(); - SyncResult state = folderMan->accountStatus(folderMan->map().values()); QIcon icon; if (_account && _account->state() == Account::Connected) { + FolderMan *folderMan = FolderMan::instance(); + SyncResult state = folderMan->accountStatus(folderMan->map().values()); icon = Theme::instance()->syncStateIcon(state.status()); } else { icon = Theme::instance()->folderOfflineIcon(); diff --git a/src/mirall/accountsettings.h b/src/mirall/accountsettings.h index ee3bfd4392..56753605ac 100644 --- a/src/mirall/accountsettings.h +++ b/src/mirall/accountsettings.h @@ -86,7 +86,7 @@ protected slots: private: QString shortenFilename( const QString& folder, const QString& file ) const; - void folderToModelItem( QStandardItem *, Folder * ); + void folderToModelItem(QStandardItem *, Folder * , bool accountConnected); QStandardItem* itemForFolder(const QString& ); void showConnectionLabel( const QString& message, const QString& tooltip = QString() ); diff --git a/src/mirall/folderstatusmodel.cpp b/src/mirall/folderstatusmodel.cpp index c4eea0f978..2cf9d6a1f4 100644 --- a/src/mirall/folderstatusmodel.cpp +++ b/src/mirall/folderstatusmodel.cpp @@ -133,8 +133,9 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem & QString itemString = qvariant_cast(index.data(SyncProgressItemString)); int warningCount = qvariant_cast(index.data(WarningCount)); bool syncOngoing = qvariant_cast(index.data(SyncRunning)); + // QString statusText = qvariant_cast(index.data(FolderStatus)); - bool syncEnabled = index.data(FolderSyncEnabled).toBool(); + bool syncEnabled = index.data(FolderAccountConnected).toBool(); // QString syncStatus = syncEnabled? tr( "Enabled" ) : tr( "Disabled" ); QRect iconRect = option.rect; diff --git a/src/mirall/folderstatusmodel.h b/src/mirall/folderstatusmodel.h index 77120b324d..4cd36a9b0b 100644 --- a/src/mirall/folderstatusmodel.h +++ b/src/mirall/folderstatusmodel.h @@ -44,6 +44,7 @@ class FolderStatusDelegate : public QStyledItemDelegate FolderErrorMsg, FolderSyncPaused, FolderStatusIconRole, + FolderAccountConnected, SyncProgressOverallPercent, SyncProgressOverallString,