mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-16 02:03:07 -07:00
Consider explicitly specified parameters when resolving optional ones
PR #18955. Closes #18951.
This commit is contained in:
parent
58ae98026b
commit
c10f1f0ad2
3 changed files with 45 additions and 39 deletions
|
@ -2611,50 +2611,30 @@ LoadTorrentParams SessionImpl::initLoadTorrentParams(const AddTorrentParams &add
|
|||
const auto defaultSavePath = suggestedSavePath(loadTorrentParams.category, addTorrentParams.useAutoTMM);
|
||||
const auto defaultDownloadPath = suggestedDownloadPath(loadTorrentParams.category, addTorrentParams.useAutoTMM);
|
||||
|
||||
loadTorrentParams.useAutoTMM = addTorrentParams.useAutoTMM.value_or(!isAutoTMMDisabledByDefault());
|
||||
loadTorrentParams.useAutoTMM = addTorrentParams.useAutoTMM.value_or(
|
||||
addTorrentParams.savePath.isEmpty() && addTorrentParams.downloadPath.isEmpty() && !isAutoTMMDisabledByDefault());
|
||||
|
||||
if (!addTorrentParams.useAutoTMM.has_value())
|
||||
if (!loadTorrentParams.useAutoTMM)
|
||||
{
|
||||
// Default TMM settings
|
||||
if (addTorrentParams.savePath.isAbsolute())
|
||||
loadTorrentParams.savePath = addTorrentParams.savePath;
|
||||
else
|
||||
loadTorrentParams.savePath = defaultSavePath / addTorrentParams.savePath;
|
||||
|
||||
if (!loadTorrentParams.useAutoTMM)
|
||||
// if useDownloadPath isn't specified but downloadPath is explicitly set we prefer to use it
|
||||
const bool useDownloadPath = addTorrentParams.useDownloadPath.value_or(!addTorrentParams.downloadPath.isEmpty() || isDownloadPathEnabled());
|
||||
if (useDownloadPath)
|
||||
{
|
||||
loadTorrentParams.savePath = defaultSavePath;
|
||||
if (isDownloadPathEnabled())
|
||||
loadTorrentParams.downloadPath = (!defaultDownloadPath.isEmpty() ? defaultDownloadPath : downloadPath());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Overridden TMM settings
|
||||
// Overridden "Download path" settings
|
||||
|
||||
if (!loadTorrentParams.useAutoTMM)
|
||||
{
|
||||
if (addTorrentParams.savePath.isAbsolute())
|
||||
loadTorrentParams.savePath = addTorrentParams.savePath;
|
||||
else
|
||||
loadTorrentParams.savePath = defaultSavePath / addTorrentParams.savePath;
|
||||
|
||||
if (!addTorrentParams.useDownloadPath.has_value())
|
||||
if (addTorrentParams.downloadPath.isAbsolute())
|
||||
{
|
||||
// Default "Download path" settings
|
||||
|
||||
if (isDownloadPathEnabled())
|
||||
loadTorrentParams.downloadPath = (!defaultDownloadPath.isEmpty() ? defaultDownloadPath : downloadPath());
|
||||
loadTorrentParams.downloadPath = addTorrentParams.downloadPath;
|
||||
}
|
||||
else if (addTorrentParams.useDownloadPath.value())
|
||||
else
|
||||
{
|
||||
// Overridden "Download path" settings
|
||||
|
||||
if (addTorrentParams.downloadPath.isAbsolute())
|
||||
{
|
||||
loadTorrentParams.downloadPath = addTorrentParams.downloadPath;
|
||||
}
|
||||
else
|
||||
{
|
||||
const Path basePath = (!defaultDownloadPath.isEmpty() ? defaultDownloadPath : downloadPath());
|
||||
loadTorrentParams.downloadPath = basePath / addTorrentParams.downloadPath;
|
||||
}
|
||||
const Path basePath = (!defaultDownloadPath.isEmpty() ? defaultDownloadPath : downloadPath());
|
||||
loadTorrentParams.downloadPath = basePath / addTorrentParams.downloadPath;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue