From a83424a7a7579c26af4d86830ea33ab4cf4658cb Mon Sep 17 00:00:00 2001 From: Vladimir Golovnev Date: Thu, 30 Nov 2023 08:58:41 +0300 Subject: [PATCH] Don't forget to store Stop condition PR #20045. Closes #20043. --- src/base/bittorrent/addtorrentparams.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/base/bittorrent/addtorrentparams.cpp b/src/base/bittorrent/addtorrentparams.cpp index e78939232..c657038dc 100644 --- a/src/base/bittorrent/addtorrentparams.cpp +++ b/src/base/bittorrent/addtorrentparams.cpp @@ -44,6 +44,7 @@ const QString PARAM_DOWNLOADPATH = u"download_path"_s; const QString PARAM_OPERATINGMODE = u"operating_mode"_s; const QString PARAM_QUEUETOP = u"add_to_top_of_queue"_s; const QString PARAM_STOPPED = u"stopped"_s; +const QString PARAM_STOPCONDITION = u"stop_condition"_s; const QString PARAM_SKIPCHECKING = u"skip_checking"_s; const QString PARAM_CONTENTLAYOUT = u"content_layout"_s; const QString PARAM_AUTOTMM = u"use_auto_tmm"_s; @@ -126,17 +127,18 @@ BitTorrent::AddTorrentParams BitTorrent::parseAddTorrentParams(const QJsonObject params.savePath = Path(jsonObj.value(PARAM_SAVEPATH).toString()); params.useDownloadPath = getOptionalBool(jsonObj, PARAM_USEDOWNLOADPATH); params.downloadPath = Path(jsonObj.value(PARAM_DOWNLOADPATH).toString()); - params.addForced = (getEnum(jsonObj, PARAM_OPERATINGMODE) == BitTorrent::TorrentOperatingMode::Forced); + params.addForced = (getEnum(jsonObj, PARAM_OPERATINGMODE) == TorrentOperatingMode::Forced); params.addToQueueTop = getOptionalBool(jsonObj, PARAM_QUEUETOP); params.addPaused = getOptionalBool(jsonObj, PARAM_STOPPED); + params.stopCondition = getOptionalEnum(jsonObj, PARAM_STOPCONDITION); params.skipChecking = jsonObj.value(PARAM_SKIPCHECKING).toBool(); - params.contentLayout = getOptionalEnum(jsonObj, PARAM_CONTENTLAYOUT); + params.contentLayout = getOptionalEnum(jsonObj, PARAM_CONTENTLAYOUT); params.useAutoTMM = getOptionalBool(jsonObj, PARAM_AUTOTMM); params.uploadLimit = jsonObj.value(PARAM_UPLOADLIMIT).toInt(-1); params.downloadLimit = jsonObj.value(PARAM_DOWNLOADLIMIT).toInt(-1); - params.seedingTimeLimit = jsonObj.value(PARAM_SEEDINGTIMELIMIT).toInt(BitTorrent::Torrent::USE_GLOBAL_SEEDING_TIME); - params.inactiveSeedingTimeLimit = jsonObj.value(PARAM_INACTIVESEEDINGTIMELIMIT).toInt(BitTorrent::Torrent::USE_GLOBAL_INACTIVE_SEEDING_TIME); - params.ratioLimit = jsonObj.value(PARAM_RATIOLIMIT).toDouble(BitTorrent::Torrent::USE_GLOBAL_RATIO); + params.seedingTimeLimit = jsonObj.value(PARAM_SEEDINGTIMELIMIT).toInt(Torrent::USE_GLOBAL_SEEDING_TIME); + params.inactiveSeedingTimeLimit = jsonObj.value(PARAM_INACTIVESEEDINGTIMELIMIT).toInt(Torrent::USE_GLOBAL_INACTIVE_SEEDING_TIME); + params.ratioLimit = jsonObj.value(PARAM_RATIOLIMIT).toDouble(Torrent::USE_GLOBAL_RATIO); return params; } @@ -149,7 +151,7 @@ QJsonObject BitTorrent::serializeAddTorrentParams(const AddTorrentParams ¶ms {PARAM_SAVEPATH, params.savePath.data()}, {PARAM_DOWNLOADPATH, params.downloadPath.data()}, {PARAM_OPERATINGMODE, Utils::String::fromEnum(params.addForced - ? BitTorrent::TorrentOperatingMode::Forced : BitTorrent::TorrentOperatingMode::AutoManaged)}, + ? TorrentOperatingMode::Forced : TorrentOperatingMode::AutoManaged)}, {PARAM_SKIPCHECKING, params.skipChecking}, {PARAM_UPLOADLIMIT, params.uploadLimit}, {PARAM_DOWNLOADLIMIT, params.downloadLimit}, @@ -162,6 +164,8 @@ QJsonObject BitTorrent::serializeAddTorrentParams(const AddTorrentParams ¶ms jsonObj[PARAM_QUEUETOP] = *params.addToQueueTop; if (params.addPaused) jsonObj[PARAM_STOPPED] = *params.addPaused; + if (params.stopCondition) + jsonObj[PARAM_STOPCONDITION] = Utils::String::fromEnum(*params.stopCondition); if (params.contentLayout) jsonObj[PARAM_CONTENTLAYOUT] = Utils::String::fromEnum(*params.contentLayout); if (params.useAutoTMM)