From e619718a1e12d18d1a08ad43aa70b4505a9eeb3d Mon Sep 17 00:00:00 2001 From: Yat Ho Date: Mon, 1 Apr 2024 04:01:05 +0800 Subject: [PATCH] fix: save sequential download across sessions (#6746) --- libtransmission/resume.cc | 7 +++++++ libtransmission/resume.h | 1 + libtransmission/torrent.h | 1 + 3 files changed, 9 insertions(+) diff --git a/libtransmission/resume.cc b/libtransmission/resume.cc index e6f094c7c..f0e2f1141 100644 --- a/libtransmission/resume.cc +++ b/libtransmission/resume.cc @@ -735,6 +735,13 @@ tr_resume::fields_t load_from_file(tr_torrent* tor, tr_torrent::ResumeHelper& he fields_loaded |= tr_resume::BandwidthPriority; } + if (auto val = bool{}; + (fields_to_load & tr_resume::SequentialDownload) != 0 && tr_variantDictFindBool(&top, TR_KEY_sequentialDownload, &val)) + { + tor->set_sequential_download(val); + fields_loaded |= tr_resume::SequentialDownload; + } + if ((fields_to_load & tr_resume::Peers) != 0) { fields_loaded |= loadPeers(&top, tor); diff --git a/libtransmission/resume.h b/libtransmission/resume.h index a836e2e4e..c9449bdb6 100644 --- a/libtransmission/resume.h +++ b/libtransmission/resume.h @@ -44,6 +44,7 @@ auto inline constexpr Filenames = fields_t{ 1 << 20 }; auto inline constexpr Name = fields_t{ 1 << 21 }; auto inline constexpr Labels = fields_t{ 1 << 22 }; auto inline constexpr Group = fields_t{ 1 << 23 }; +auto inline constexpr SequentialDownload = fields_t{ 1 << 24 }; auto inline constexpr All = ~fields_t{ 0 }; diff --git a/libtransmission/torrent.h b/libtransmission/torrent.h index f9cf0414e..3b72bffd7 100644 --- a/libtransmission/torrent.h +++ b/libtransmission/torrent.h @@ -729,6 +729,7 @@ struct tr_torrent { sequential_download_ = is_sequential; sequential_download_changed_.emit(this, is_sequential); + set_dirty(); } }