diff options
Diffstat (limited to 'src/mirall/folderstatusmodel.cpp')
-rw-r--r-- | src/mirall/folderstatusmodel.cpp | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/mirall/folderstatusmodel.cpp b/src/mirall/folderstatusmodel.cpp index 1b75489e1..bc2403c96 100644 --- a/src/mirall/folderstatusmodel.cpp +++ b/src/mirall/folderstatusmodel.cpp @@ -118,16 +118,17 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem & int aliasMargin = aliasFm.height()/2; int margin = subFm.height()/4; - QIcon statusIcon = qvariant_cast<QIcon>(index.data(FolderStatusIconRole)); - QString aliasText = qvariant_cast<QString>(index.data(FolderAliasRole)); - QString pathText = qvariant_cast<QString>(index.data(FolderPathRole)); - QString remotePath = qvariant_cast<QString>(index.data(FolderSecondPathRole)); - QString errorText = qvariant_cast<QString>(index.data(FolderErrorMsg)); + QIcon statusIcon = qvariant_cast<QIcon>(index.data(FolderStatusIconRole)); + QString aliasText = qvariant_cast<QString>(index.data(FolderAliasRole)); + QString pathText = qvariant_cast<QString>(index.data(FolderPathRole)); + QString remotePath = qvariant_cast<QString>(index.data(FolderSecondPathRole)); + QString errorText = qvariant_cast<QString>(index.data(FolderErrorMsg)); int overallPercent = qvariant_cast<int>(index.data(SyncProgressOverallPercent)); QString overallString = qvariant_cast<QString>(index.data(SyncProgressOverallString)); QString itemString = qvariant_cast<QString>(index.data(SyncProgressItemString)); - + int warningCount = qvariant_cast<int>(index.data(WarningCount)); + bool syncOngoing = qvariant_cast<bool>(index.data(SyncRunning)); // QString statusText = qvariant_cast<QString>(index.data(FolderStatus)); bool syncEnabled = index.data(FolderSyncEnabled).toBool(); // QString syncStatus = syncEnabled? tr( "Enabled" ) : tr( "Disabled" ); @@ -166,6 +167,20 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem & QPixmap pm = statusIcon.pixmap(iconSize, iconSize, syncEnabled ? QIcon::Normal : QIcon::Disabled ); painter->drawPixmap(QPoint(iconRect.left(), iconRect.top()), pm); + // only show the warning icon if the sync is running. Otherwise its + // encoded in the status icon. + if( warningCount > 0 && syncOngoing) { + QRect warnRect; + warnRect.setLeft(iconRect.left()); + warnRect.setTop(iconRect.bottom()-17); + warnRect.setWidth(16); + warnRect.setHeight(16); + + QIcon warnIcon(":/mirall/resources/warning-16"); + QPixmap pm = warnIcon.pixmap(16,16, syncEnabled ? QIcon::Normal : QIcon::Disabled ); + painter->drawPixmap(QPoint(warnRect.left(), warnRect.top()),pm ); + } + if ((option.state & QStyle::State_Selected) && (option.state & QStyle::State_Active) // Hack: Windows Vista's light blue is not contrasting enough for white |