From 454ad0b009886e277cfe6574a8622013d6ddd48c Mon Sep 17 00:00:00 2001 From: Oleg Shparber Date: Tue, 18 Aug 2026 16:27:20 +0300 Subject: [PATCH] fix(ui): discard partial archive on failed download (#1957) --- src/libs/ui/docsetsdialog.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/libs/ui/docsetsdialog.cpp b/src/libs/ui/docsetsdialog.cpp index a9ec2a7c..63075835 100644 --- a/src/libs/ui/docsetsdialog.cpp +++ b/src/libs/ui/docsetsdialog.cpp @@ -310,6 +310,14 @@ void DocsetsDialog::processDownload(QNetworkReply *reply) } if (reply->error() != QNetworkReply::OperationCanceledError) { + const auto type = downloadType(reply); + const QString docsetName = reply->property(DocsetNameProperty).toString(); + + // Downloads cannot be resumed, so a retry would append to whatever was received. + if (type == DownloadType::Docset) { + delete m_tmpFiles.take(docsetName); + } + const QString msg = tr("Download failed!

Error: %1
URL: %2") .arg(reply->errorString().toHtmlEscaped(), reply->request().url().toString().toHtmlEscaped()); @@ -320,8 +328,8 @@ void DocsetsDialog::processDownload(QNetworkReply *reply) if (ret == QMessageBox::Retry) { enqueueDownload({.url = reply->request().url(), - .type = downloadType(reply), - .docsetName = reply->property(DocsetNameProperty).toString(), + .type = type, + .docsetName = docsetName, .listItemIndex = reply->property(ListItemIndexProperty).toInt()}); return; }