Account Settings: Add a text for folder using vierual files
authorOlivier Goffart <ogoffart@woboq.com>
Sat, 18 Aug 2018 07:37:00 +0000 (09:37 +0200)
committerKevin Ottens <kevin.ottens@nextcloud.com>
Tue, 15 Dec 2020 09:58:04 +0000 (10:58 +0100)
Issue #6723

src/gui/folderstatusdelegate.cpp
src/gui/folderstatusdelegate.h
src/gui/folderstatusmodel.cpp

index d5b62a688b69c420f492f0d5c8f24794177099eb..f130ba0d489e2c0a9d0b33c0e33d60d76dbad684 100644 (file)
@@ -79,16 +79,13 @@ QSize FolderStatusDelegate::sizeHint(const QStyleOptionViewItem &option,
     int h = rootFolderHeightWithoutErrors(fm, aliasFm);
     // this already includes the bottom margin
 
-    // add some space to show an conflict indicator.
+    // add some space for the message boxes.
     int margin = fm.height() / 4;
-    if (!qvariant_cast<QStringList>(index.data(FolderConflictMsg)).isEmpty()) {
-        QStringList msgs = qvariant_cast<QStringList>(index.data(FolderConflictMsg));
-        h += margin + 2 * margin + msgs.count() * fm.height();
-    }
-    // add some space to show an error condition.
-    if (!qvariant_cast<QStringList>(index.data(FolderErrorMsg)).isEmpty()) {
-        QStringList errMsgs = qvariant_cast<QStringList>(index.data(FolderErrorMsg));
-        h += margin + 2 * margin + errMsgs.count() * fm.height();
+    for (auto role : {FolderConflictMsg, FolderErrorMsg, FolderInfoMsg}) {
+        auto msgs = qvariant_cast<QStringList>(index.data(role));
+        if (!msgs.isEmpty()) {
+            h += margin + 2 * margin + msgs.count() * fm.height();
+        }
     }
 
     return {0, h};
@@ -162,6 +159,7 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem &
     auto remotePath = qvariant_cast<QString>(index.data(FolderSecondPathRole));
     auto conflictTexts = qvariant_cast<QStringList>(index.data(FolderConflictMsg));
     auto errorTexts = qvariant_cast<QStringList>(index.data(FolderErrorMsg));
+    auto infoTexts = qvariant_cast<QStringList>(index.data(FolderInfoMsg));
 
     auto overallPercent = qvariant_cast<int>(index.data(SyncProgressOverallPercent));
     auto overallString = qvariant_cast<QString>(index.data(SyncProgressOverallString));
@@ -307,6 +305,8 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem &
         drawTextBox(conflictTexts, QColor(0xba, 0xba, 0x4d));
     if (!errorTexts.isEmpty())
         drawTextBox(errorTexts, QColor(0xbb, 0x4d, 0x4d));
+    if (!infoTexts.isEmpty())
+        drawTextBox(infoTexts, QColor(0x4d, 0xba, 0x4d));
 
     // Sync File Progress Bar: Show it if syncFile is not empty.
     if (showProgess) {
index 342be330a69bc66c0fbdf84d363a4ae109273c86..fc9cd234941ade66337fd75a26d7b291eca3cdb5 100644 (file)
@@ -34,6 +34,7 @@ public:
         FolderSecondPathRole,
         FolderConflictMsg,
         FolderErrorMsg,
+        FolderInfoMsg,
         FolderSyncPaused,
         FolderStatusIconRole,
         FolderAccountConnected,
index 5a550e01a2d9a0bc0d0edc18b236f635c5b3d188..22f915ce590b74af1cd2d112c3c3d259fe67094f 100644 (file)
@@ -218,6 +218,10 @@ QVariant FolderStatusModel::data(const QModelIndex &index, int role) const
             : QStringList();
     case FolderStatusDelegate::FolderErrorMsg:
         return f->syncResult().errorStrings();
+    case FolderStatusDelegate::FolderInfoMsg:
+        return f->useVirtualFiles()
+            ? QStringList(tr("New files are being created as virtual files."))
+            : QStringList();
     case FolderStatusDelegate::SyncRunning:
         return f->syncResult().status() == SyncResult::SyncRunning;
     case FolderStatusDelegate::SyncDate: