mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-25 22:05:53 +03:00
Discovery: Ensure selective sync lists are sorted #6958
This commit is contained in:
parent
22255e4976
commit
e774c6c739
3 changed files with 21 additions and 4 deletions
|
@ -186,6 +186,18 @@ void DiscoveryPhase::startJob(ProcessDirectoryJob *job)
|
|||
job->start();
|
||||
}
|
||||
|
||||
void DiscoveryPhase::setSelectiveSyncBlackList(const QStringList &list)
|
||||
{
|
||||
_selectiveSyncBlackList = list;
|
||||
std::sort(_selectiveSyncBlackList.begin(), _selectiveSyncBlackList.end());
|
||||
}
|
||||
|
||||
void DiscoveryPhase::setSelectiveSyncWhiteList(const QStringList &list)
|
||||
{
|
||||
_selectiveSyncWhiteList = list;
|
||||
std::sort(_selectiveSyncWhiteList.begin(), _selectiveSyncWhiteList.end());
|
||||
}
|
||||
|
||||
void DiscoveryPhase::scheduleMoreJobs()
|
||||
{
|
||||
auto limit = qMax(1, _syncOptions._parallelNetworkJobs);
|
||||
|
|
|
@ -135,6 +135,10 @@ class DiscoveryPhase : public QObject
|
|||
QMap<QString, QString> _renamedItems; // map source -> destinations
|
||||
int _currentlyActiveJobs = 0;
|
||||
|
||||
// both must contain a sorted list
|
||||
QStringList _selectiveSyncBlackList;
|
||||
QStringList _selectiveSyncWhiteList;
|
||||
|
||||
void scheduleMoreJobs();
|
||||
|
||||
bool isInSelectiveSyncBlackList(const QString &path) const;
|
||||
|
@ -166,8 +170,6 @@ public:
|
|||
SyncJournalDb *_statedb;
|
||||
AccountPtr _account;
|
||||
SyncOptions _syncOptions;
|
||||
QStringList _selectiveSyncBlackList;
|
||||
QStringList _selectiveSyncWhiteList;
|
||||
ExcludedFiles *_excludes;
|
||||
QRegExp _invalidFilenameRx; // FIXME: maybe move in ExcludedFiles
|
||||
QStringList _serverBlacklistedFiles; // The blacklist from the capabilities
|
||||
|
@ -176,6 +178,9 @@ public:
|
|||
|
||||
void startJob(ProcessDirectoryJob *);
|
||||
|
||||
void setSelectiveSyncBlackList(const QStringList &list);
|
||||
void setSelectiveSyncWhiteList(const QStringList &list);
|
||||
|
||||
// output
|
||||
QByteArray _dataFingerprint;
|
||||
|
||||
|
|
|
@ -586,8 +586,8 @@ void SyncEngine::slotStartDiscovery()
|
|||
_discoveryPhase->_remoteFolder+='/';
|
||||
_discoveryPhase->_syncOptions = _syncOptions;
|
||||
_discoveryPhase->_shouldDiscoverLocaly = [this](const QString &s) { return shouldDiscoverLocally(s); };
|
||||
_discoveryPhase->_selectiveSyncBlackList = selectiveSyncBlackList;
|
||||
_discoveryPhase->_selectiveSyncWhiteList = _journal->getSelectiveSyncList(SyncJournalDb::SelectiveSyncWhiteList, &ok);
|
||||
_discoveryPhase->setSelectiveSyncBlackList(selectiveSyncBlackList);
|
||||
_discoveryPhase->setSelectiveSyncWhiteList(_journal->getSelectiveSyncList(SyncJournalDb::SelectiveSyncWhiteList, &ok));
|
||||
if (!ok) {
|
||||
qCWarning(lcEngine) << "Unable to read selective sync list, aborting.";
|
||||
syncError(tr("Unable to read from the sync journal."));
|
||||
|
|
Loading…
Reference in a new issue