diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index 372b410a1..0852043a4 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -2148,18 +2148,6 @@ bool Session::addTorrent_impl(const std::variant &source { const TorrentInfo &torrentInfo = std::get(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 &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 diff --git a/src/base/bittorrent/torrentimpl.cpp b/src/base/bittorrent/torrentimpl.cpp index 7782f8059..6898f1838 100644 --- a/src/base/bittorrent/torrentimpl.cpp +++ b/src/base/bittorrent/torrentimpl.cpp @@ -443,7 +443,7 @@ QString TorrentImpl::rootPath() const if (!hasMetadata()) return {}; - const QString relativeRootPath = m_torrentInfo.rootFolder(); + const QString relativeRootPath = Utils::Fs::findRootFolder(filePaths()); if (relativeRootPath.isEmpty()) return {}; diff --git a/src/base/bittorrent/torrentinfo.cpp b/src/base/bittorrent/torrentinfo.cpp index 3f6050e7a..e698d0c06 100644 --- a/src/base/bittorrent/torrentinfo.cpp +++ b/src/base/bittorrent/torrentinfo.cpp @@ -409,19 +409,6 @@ int TorrentInfo::fileIndex(const QString &fileName) const return -1; } -QString TorrentInfo::rootFolder() const -{ - if (!isValid()) - return {}; - - return Utils::Fs::findRootFolder(filePaths()); -} - -bool TorrentInfo::hasRootFolder() const -{ - return !rootFolder().isEmpty(); -} - TorrentContentLayout TorrentInfo::contentLayout() const { if (!isValid()) diff --git a/src/base/bittorrent/torrentinfo.h b/src/base/bittorrent/torrentinfo.h index 4f09a1ed3..62d073ef5 100644 --- a/src/base/bittorrent/torrentinfo.h +++ b/src/base/bittorrent/torrentinfo.h @@ -92,9 +92,6 @@ namespace BitTorrent PieceRange filePieces(const QString &file) const; PieceRange filePieces(int fileIndex) const; - QString rootFolder() const; - bool hasRootFolder() const; - std::shared_ptr nativeInfo() const; QVector nativeIndexes() const;