mirror of
https://git.citron-emu.org/citron/emulator
synced 2026-02-01 07:13:33 +00:00
Add src/citron/mod_manager/mod_downloader_dialog.h
Signed-off-by: Collecting <collecting@noreply.localhost>
This commit is contained in:
49
src/citron/mod_manager/mod_downloader_dialog.h
Normal file
49
src/citron/mod_manager/mod_downloader_dialog.h
Normal file
@@ -0,0 +1,49 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 citron Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QDialog>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
#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<DownloadTask> pending_downloads;
|
||||
int current_download_index = -1;
|
||||
int current_file_index = 0;
|
||||
};
|
||||
|
||||
} // namespace ModManager
|
||||
Reference in New Issue
Block a user