Virtual files: Don't show selective sync
authorOlivier Goffart <ogoffart@woboq.com>
Thu, 30 Aug 2018 16:14:13 +0000 (18:14 +0200)
committerKevin Ottens <kevin.ottens@nextcloud.com>
Tue, 15 Dec 2020 09:58:06 +0000 (10:58 +0100)
Issue #6724

src/gui/accountsettings.cpp
src/gui/folderstatusmodel.cpp

index 99fdb2023d48f6b859979ab4ff8ceb0e14e442d1..47721a10f192f85b967be0a0d1a1437fe6c440ee 100644 (file)
@@ -403,6 +403,9 @@ void AccountSettings::slotCustomContextMenuRequested(const QPoint &pos)
     bool folderPaused = _model->data(index, FolderStatusDelegate::FolderSyncPaused).toBool();
     bool folderConnected = _model->data(index, FolderStatusDelegate::FolderAccountConnected).toBool();
     auto folderMan = FolderMan::instance();
+    QPointer<Folder> folder = folderMan->folder(alias);
+    if (!folder)
+        return;
 
     auto *menu = new QMenu(tv);
 
@@ -414,7 +417,7 @@ void AccountSettings::slotCustomContextMenuRequested(const QPoint &pos)
     ac = menu->addAction(tr("Edit Ignored Files"));
     connect(ac, &QAction::triggered, this, &AccountSettings::slotEditCurrentIgnoredFiles);
 
-    if (!_ui->_folderList->isExpanded(index)) {
+    if (!_ui->_folderList->isExpanded(index) && !folder->useVirtualFiles()) {
         ac = menu->addAction(tr("Choose what to sync"));
         ac->setEnabled(folderConnected);
         connect(ac, &QAction::triggered, this, &AccountSettings::doExpand);
index 22f915ce590b74af1cd2d112c3c3d259fe67094f..73d68fc9647514e785d88e993847c18ae13040d2 100644 (file)
@@ -370,6 +370,8 @@ int FolderStatusModel::rowCount(const QModelIndex &parent) const
     auto info = infoForIndex(parent);
     if (!info)
         return 0;
+    if (info->_folder && info->_folder->useVirtualFiles())
+        return 0;
     if (info->hasLabel())
         return 1;
     return info->_subs.count();
@@ -525,6 +527,9 @@ bool FolderStatusModel::hasChildren(const QModelIndex &parent) const
     if (!info)
         return false;
 
+    if (info->_folder && info->_folder->useVirtualFiles())
+        return false;
+
     if (!info->_fetched)
         return true;
 
@@ -550,6 +555,10 @@ bool FolderStatusModel::canFetchMore(const QModelIndex &parent) const
         // Keep showing the error to the user, it will be hidden when the account reconnects
         return false;
     }
+    if (info->_folder && info->_folder->useVirtualFiles()) {
+        // Selective sync is hidden in that case
+        return false;
+    }
     return true;
 }