Correctly track the root folder name change

PR #16004.
This commit is contained in:
Vladimir Golovnev 2022-01-11 07:24:24 +03:00 committed by GitHub
parent 2da39e2fbb
commit 84a8158aa2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 29 deletions

View file

@ -2148,18 +2148,6 @@ bool Session::addTorrent_impl(const std::variant<MagnetUri, TorrentInfo> &source
{
const TorrentInfo &torrentInfo = std::get<TorrentInfo>(source);
// if torrent name wasn't explicitly set we handle the case of
// initial renaming of torrent content and rename torrent accordingly
if (loadTorrentParams.name.isEmpty())
{
QString contentName = torrentInfo.rootFolder();
if (contentName.isEmpty() && (torrentInfo.filesCount() == 1))
contentName = Utils::Fs::fileName(torrentInfo.filePath(0));
if (!contentName.isEmpty() && (contentName != torrentInfo.name()))
loadTorrentParams.name = contentName;
}
Q_ASSERT(addTorrentParams.filePaths.isEmpty() || (addTorrentParams.filePaths.size() == torrentInfo.filesCount()));
const TorrentContentLayout contentLayout = ((loadTorrentParams.contentLayout == TorrentContentLayout::Original)
@ -2167,6 +2155,18 @@ bool Session::addTorrent_impl(const std::variant<MagnetUri, TorrentInfo> &source
QStringList filePaths = (!addTorrentParams.filePaths.isEmpty() ? addTorrentParams.filePaths : torrentInfo.filePaths());
applyContentLayout(filePaths, contentLayout, Utils::Fs::findRootFolder(torrentInfo.filePaths()));
// if torrent name wasn't explicitly set we handle the case of
// initial renaming of torrent content and rename torrent accordingly
if (loadTorrentParams.name.isEmpty())
{
QString contentName = Utils::Fs::findRootFolder(filePaths);
if (contentName.isEmpty() && (filePaths.size() == 1))
contentName = Utils::Fs::fileName(filePaths.at(0));
if (!contentName.isEmpty() && (contentName != torrentInfo.name()))
loadTorrentParams.name = contentName;
}
if (!loadTorrentParams.hasSeedStatus)
{
const QString actualDownloadPath = useAutoTMM