mirror of
https://github.com/nextcloud/desktop.git
synced 2024-11-22 21:15:55 +03:00
Discovery: Add signal for silentlyExcluded files
This allows SyncFileStatusTracker to also know about these. After all its information is used to provide icons for them too.
This commit is contained in:
parent
e2eea24a03
commit
af1666788e
5 changed files with 20 additions and 0 deletions
|
@ -194,6 +194,7 @@ bool ProcessDirectoryJob::handleExcluded(const QString &path, const QString &loc
|
|||
if (excluded == CSYNC_NOT_EXCLUDED && !isSymlink) {
|
||||
return false;
|
||||
} else if (excluded == CSYNC_FILE_SILENTLY_EXCLUDED || excluded == CSYNC_FILE_EXCLUDE_AND_REMOVE) {
|
||||
emit _discoveryData->silentlyExcluded(path);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -98,6 +98,7 @@ signals:
|
|||
void firstDirectoryPermissions(RemotePermissions);
|
||||
void etag(const QString &);
|
||||
void finished(const HttpResult<QVector<RemoteInfo>> &result);
|
||||
|
||||
private slots:
|
||||
void directoryListingIteratedSlot(QString, const QMap<QString, QString> &);
|
||||
void lsJobFinishedWithoutErrorSlot();
|
||||
|
@ -194,6 +195,12 @@ signals:
|
|||
|
||||
// A new folder was discovered and was not synced because of the confirmation feature
|
||||
void newBigFolder(const QString &folder, bool isExternal);
|
||||
|
||||
/** For excluded items that don't show up in itemDiscovered()
|
||||
*
|
||||
* The path is relative to the sync folder, similar to item->_file
|
||||
*/
|
||||
void silentlyExcluded(const QString &folderPath);
|
||||
};
|
||||
|
||||
/// Implementation of DiscoveryPhase::adjustRenamedPath
|
||||
|
|
|
@ -634,6 +634,8 @@ void SyncEngine::slotStartDiscovery()
|
|||
finalize(false);
|
||||
});
|
||||
connect(_discoveryPhase.data(), &DiscoveryPhase::finished, this, &SyncEngine::slotDiscoveryFinished);
|
||||
connect(_discoveryPhase.data(), &DiscoveryPhase::silentlyExcluded,
|
||||
_syncFileStatusTracker.data(), &SyncFileStatusTracker::slotAddSilentlyExcluded);
|
||||
|
||||
auto discoveryJob = new ProcessDirectoryJob(SyncFileItemPtr(), ProcessDirectoryJob::NormalQuery, ProcessDirectoryJob::NormalQuery,
|
||||
_discoveryPhase.data(), _discoveryPhase.data());
|
||||
|
|
|
@ -137,6 +137,8 @@ SyncFileStatus SyncFileStatusTracker::fileStatus(const QString &relativePath)
|
|||
// update the exclude list at runtime and doing it statically here removes
|
||||
// our ability to notify changes through the fileStatusChanged signal,
|
||||
// it's an acceptable compromize to treat all exclude types the same.
|
||||
// Update: This extra check shouldn't hurt even though silently excluded files
|
||||
// are now available via slotAddSilentlyExcluded().
|
||||
if (_syncEngine->excludedFiles().isExcluded(_syncEngine->localPath() + relativePath,
|
||||
_syncEngine->localPath(),
|
||||
_syncEngine->ignoreHiddenFiles())) {
|
||||
|
@ -167,6 +169,12 @@ void SyncFileStatusTracker::slotPathTouched(const QString &fileName)
|
|||
emit fileStatusChanged(fileName, SyncFileStatus::StatusSync);
|
||||
}
|
||||
|
||||
void SyncFileStatusTracker::slotAddSilentlyExcluded(const QString &folderPath)
|
||||
{
|
||||
_syncProblems[folderPath] = SyncFileStatus::StatusWarning;
|
||||
emit fileStatusChanged(getSystemDestination(folderPath), resolveSyncAndErrorStatus(folderPath, NotShared));
|
||||
}
|
||||
|
||||
void SyncFileStatusTracker::incSyncCountAndEmitStatusChanged(const QString &relativePath, SharedFlag sharedFlag)
|
||||
{
|
||||
// Will return 0 (and increase to 1) if the path wasn't in the map yet
|
||||
|
|
|
@ -40,6 +40,8 @@ public:
|
|||
|
||||
public slots:
|
||||
void slotPathTouched(const QString &fileName);
|
||||
// path relative to folder
|
||||
void slotAddSilentlyExcluded(const QString &folderPath);
|
||||
|
||||
signals:
|
||||
void fileStatusChanged(const QString &systemFileName, SyncFileStatus fileStatus);
|
||||
|
|
Loading…
Reference in a new issue