diff --git a/src/base/scanfoldersmodel.cpp b/src/base/scanfoldersmodel.cpp index c1e0b369b..25a61e4ba 100644 --- a/src/base/scanfoldersmodel.cpp +++ b/src/base/scanfoldersmodel.cpp @@ -230,6 +230,22 @@ ScanFoldersModel::PathStatus ScanFoldersModel::addPath(const QString &watchPath, return Ok; } +ScanFoldersModel::PathStatus ScanFoldersModel::updatePath(const QString &watchPath, const PathType& downloadType, const QString &downloadPath) +{ + QDir watchDir(watchPath); + const QString &canonicalWatchPath = watchDir.canonicalPath(); + int row = findPathData(canonicalWatchPath); + if (row == -1) return DoesNotExist; + + QDir downloadDir(downloadPath); + const QString &canonicalDownloadPath = downloadDir.canonicalPath(); + + m_pathList.at(row)->downloadType = downloadType; + m_pathList.at(row)->downloadPath = Utils::Fs::toNativePath(canonicalDownloadPath); + + return Ok; +} + void ScanFoldersModel::addToFSWatcher(const QStringList &watchPaths) { if (!m_fsWatcher) diff --git a/src/base/scanfoldersmodel.h b/src/base/scanfoldersmodel.h index e1b767c8b..1dc62c5a5 100644 --- a/src/base/scanfoldersmodel.h +++ b/src/base/scanfoldersmodel.h @@ -82,6 +82,7 @@ public: // TODO: removePaths(); singular version becomes private helper functions; // also: remove functions should take modelindexes PathStatus addPath(const QString &watchPath, const PathType& downloadType, const QString &downloadPath, bool addToFSWatcher = true); + PathStatus updatePath(const QString &watchPath, const PathType& downloadType, const QString &downloadPath); // PRECONDITION: The paths must have been added with addPath() first. void addToFSWatcher(const QStringList &watchPaths); void removePath(int row);