зеркало из https://github.com/nextcloud/desktop.git
This is not sufficient as it is not working for the Socket API. Next commit will fix it in another layer. Also, not ignoring paths that are not inside the folder is wrong as it might still happen if the name has a different casing This reverts commitd5a481f132
. (cherry picked from commit904cd46f75
)
This commit is contained in:
Родитель
907918dca3
Коммит
b228488eb7
|
@ -628,6 +628,11 @@ void Folder::removeFromSettings() const
|
|||
settings->remove(FolderMan::escapeAlias(_definition.alias));
|
||||
}
|
||||
|
||||
bool Folder::isFileExcludedAbsolute(const QString& fullPath) const
|
||||
{
|
||||
return _engine->excludedFiles().isExcluded(fullPath, path(), _definition.ignoreHiddenFiles);
|
||||
}
|
||||
|
||||
bool Folder::isFileExcludedRelative(const QString& relativePath) const
|
||||
{
|
||||
return _engine->excludedFiles().isExcluded(path() + relativePath, path(), _definition.ignoreHiddenFiles);
|
||||
|
|
|
@ -183,6 +183,11 @@ public:
|
|||
/// Removes the folder from the account's settings.
|
||||
void removeFromSettings() const;
|
||||
|
||||
/**
|
||||
* Returns whether a file inside this folder should be excluded.
|
||||
*/
|
||||
bool isFileExcludedAbsolute(const QString& fullPath) const;
|
||||
|
||||
/**
|
||||
* Returns whether a file inside this folder should be excluded.
|
||||
*/
|
||||
|
|
|
@ -41,9 +41,7 @@ FolderWatcher::FolderWatcher(const QString &root, Folder* folder)
|
|||
: QObject(folder),
|
||||
_folder(folder)
|
||||
{
|
||||
_canonicalFolderPath = QFileInfo(root).canonicalFilePath();
|
||||
|
||||
_d.reset(new FolderWatcherPrivate(this, _canonicalFolderPath));
|
||||
_d.reset(new FolderWatcherPrivate(this, root));
|
||||
|
||||
_timer.start();
|
||||
}
|
||||
|
@ -57,17 +55,10 @@ bool FolderWatcher::pathIsIgnored( const QString& path )
|
|||
if( !_folder ) return false;
|
||||
|
||||
#ifndef OWNCLOUD_TEST
|
||||
QString relPath = path;
|
||||
if (relPath.startsWith(_canonicalFolderPath)) {
|
||||
relPath = relPath.remove(0, _canonicalFolderPath.length()+1);
|
||||
if (_folder->isFileExcludedRelative(relPath)) {
|
||||
qDebug() << "* Ignoring file" << relPath << "in" << _canonicalFolderPath;
|
||||
return true;
|
||||
}
|
||||
if (_folder->isFileExcludedAbsolute(path)) {
|
||||
qDebug() << "* Ignoring file" << path;
|
||||
return true;
|
||||
}
|
||||
// there could be an odd watch event not being inside the _canonicalFolderPath
|
||||
// We will just not ignore it then, who knows.
|
||||
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -89,7 +89,6 @@ private:
|
|||
QTime _timer;
|
||||
QSet<QString> _lastPaths;
|
||||
Folder* _folder;
|
||||
QString _canonicalFolderPath;
|
||||
|
||||
friend class FolderWatcherPrivate;
|
||||
};
|
||||
|
|
Загрузка…
Ссылка в новой задаче