0102e91940
When selecting multiple mods at once, it can become hard to keep track of which ones you selected. To address this, a dialog is now displayed when you finish selecting the mods to download, showing you which ones you selected and their filenames. From there, you can either accept it and download the mods, or you can cancel it and go back to the mod selection dialog.
58 lines
1.4 KiB
C++
58 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include <QDialog>
|
|
#include <QVBoxLayout>
|
|
|
|
#include "BaseVersion.h"
|
|
#include "ui/pages/BasePageProvider.h"
|
|
#include "minecraft/mod/ModFolderModel.h"
|
|
#include "ModDownloadTask.h"
|
|
#include "ui/pages/modplatform/flame/FlameModPage.h"
|
|
|
|
namespace Ui
|
|
{
|
|
class ModDownloadDialog;
|
|
}
|
|
|
|
class PageContainer;
|
|
class QDialogButtonBox;
|
|
class ModrinthPage;
|
|
|
|
class ModDownloadDialog : public QDialog, public BasePageProvider
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit ModDownloadDialog(const std::shared_ptr<ModFolderModel> &mods, QWidget *parent, BaseInstance *instance);
|
|
~ModDownloadDialog();
|
|
|
|
QString dialogTitle() override;
|
|
QList<BasePage *> getPages() override;
|
|
|
|
void addSelectedMod(const QString & name = QString(), ModDownloadTask * task = nullptr);
|
|
void removeSelectedMod(const QString & name = QString());
|
|
bool isModSelected(const QString & name, const QString & filename) const;
|
|
|
|
const QList<ModDownloadTask*> getTasks();
|
|
const std::shared_ptr<ModFolderModel> &mods;
|
|
|
|
public slots:
|
|
void confirm();
|
|
void accept() override;
|
|
void reject() override;
|
|
|
|
//private slots:
|
|
|
|
private:
|
|
Ui::ModDownloadDialog *ui = nullptr;
|
|
PageContainer * m_container = nullptr;
|
|
QDialogButtonBox * m_buttons = nullptr;
|
|
QVBoxLayout *m_verticalLayout = nullptr;
|
|
|
|
|
|
ModrinthPage *modrinthPage = nullptr;
|
|
FlameModPage *flameModPage = nullptr;
|
|
QHash<QString, ModDownloadTask*> modTask;
|
|
BaseInstance *m_instance;
|
|
};
|