From 3d6f5c843c4251626c306f97273a6458ca062619 Mon Sep 17 00:00:00 2001 From: Collecting Date: Fri, 16 Jan 2026 08:30:36 +0000 Subject: [PATCH] Add src/citron/mod_manager/mod_downloader_dialog.h Signed-off-by: Collecting --- .../mod_manager/mod_downloader_dialog.h | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/citron/mod_manager/mod_downloader_dialog.h diff --git a/src/citron/mod_manager/mod_downloader_dialog.h b/src/citron/mod_manager/mod_downloader_dialog.h new file mode 100644 index 000000000..222d85f5c --- /dev/null +++ b/src/citron/mod_manager/mod_downloader_dialog.h @@ -0,0 +1,49 @@ +// SPDX-FileCopyrightText: Copyright 2025 citron Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include +#include +#include "citron/mod_manager/mod_service.h" + +namespace Ui { +class ModDownloaderDialog; +} + +namespace ModManager { + +// Helper to keep track of what version a patch belongs to during download +struct DownloadTask { + ModPatch patch; + QString version; +}; + +class ModDownloaderDialog : public QDialog { + Q_OBJECT + +public: + explicit ModDownloaderDialog(const ModUpdateInfo& info, QWidget* parent = nullptr); + ~ModDownloaderDialog() override; + +private slots: + void OnDownloadClicked(); + void OnCancelClicked(); + +private: + void SetupModList(); + void StartNextDownload(); + + ::Ui::ModDownloaderDialog* ui; + ModUpdateInfo mod_info; + + class QNetworkAccessManager* network_manager; + class QNetworkReply* current_reply; + + std::vector pending_downloads; + int current_download_index = -1; + int current_file_index = 0; +}; + +} // namespace ModManager