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);
/// 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.
*/
: QObject(folder),
_folder(folder)
{
- _d.reset(new FolderWatcherPrivate(this, root));
+ _canonicalFolderPath = QFileInfo(root).canonicalFilePath();
+
+ _d.reset(new FolderWatcherPrivate(this, _canonicalFolderPath));
_timer.start();
}
if( !_folder ) return false;
#ifndef OWNCLOUD_TEST
- if (_folder->isFileExcludedAbsolute(path)) {
- qDebug() << "* Ignoring file" << path;
- return true;
+ 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;
+ }
}
+ // there could be an odd watch event not being inside the _canonicalFolderPath
+ // We will just not ignore it then, who knows.
+
#endif
return false;
}