mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-16 02:03:07 -07:00
Add queue repair code
This is a bit adjusted code created by nxd4, who shared it in issue disappearing).
This commit is contained in:
parent
3c1f747c25
commit
6cd233dd61
1 changed files with 14 additions and 1 deletions
|
@ -3077,6 +3077,7 @@ void Session::startUpTorrents()
|
||||||
// Resume downloads
|
// Resume downloads
|
||||||
QMap<int, TorrentResumeData> queuedResumeData;
|
QMap<int, TorrentResumeData> queuedResumeData;
|
||||||
int nextQueuePosition = 1;
|
int nextQueuePosition = 1;
|
||||||
|
int numOfRemappedFiles = 0;
|
||||||
QRegExp rx(QLatin1String("^([A-Fa-f0-9]{40})\\.fastresume$"));
|
QRegExp rx(QLatin1String("^([A-Fa-f0-9]{40})\\.fastresume$"));
|
||||||
foreach (const QString &fastresumeName, fastresumes) {
|
foreach (const QString &fastresumeName, fastresumes) {
|
||||||
if (rx.indexIn(fastresumeName) == -1) continue;
|
if (rx.indexIn(fastresumeName) == -1) continue;
|
||||||
|
@ -3100,11 +3101,23 @@ void Session::startUpTorrents()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
queuedResumeData[queuePosition] = { hash, magnetUri, resumeData, data };
|
int q = queuePosition;
|
||||||
|
for(; queuedResumeData.contains(q); ++q) {
|
||||||
|
}
|
||||||
|
if (q != queuePosition) {
|
||||||
|
++numOfRemappedFiles;
|
||||||
|
}
|
||||||
|
queuedResumeData[q] = { hash, magnetUri, resumeData, data };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (numOfRemappedFiles > 0) {
|
||||||
|
logger->addMessage(
|
||||||
|
QString(tr("Queue positions were corrected in %1 resume files")).arg(numOfRemappedFiles),
|
||||||
|
Log::CRITICAL);
|
||||||
|
}
|
||||||
|
|
||||||
// starting up downloading torrents (queue position > 0)
|
// starting up downloading torrents (queue position > 0)
|
||||||
foreach (const TorrentResumeData &torrentResumeData, queuedResumeData)
|
foreach (const TorrentResumeData &torrentResumeData, queuedResumeData)
|
||||||
startupTorrent(torrentResumeData);
|
startupTorrent(torrentResumeData);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue