Merge pull request #224 from jamierocks/atl-abort-close-optional-mods-dialog

This commit is contained in:
Sefa Eyeoglu 2022-10-22 15:31:53 +02:00 committed by GitHub
commit 24e4db676a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 5 deletions

View File

@ -736,7 +736,12 @@ void PackInstallTask::downloadMods()
QVector<QString> selectedMods; QVector<QString> selectedMods;
if (!optionalMods.isEmpty()) { if (!optionalMods.isEmpty()) {
setStatus(tr("Selecting optional mods...")); setStatus(tr("Selecting optional mods..."));
selectedMods = m_support->chooseOptionalMods(m_version, optionalMods); auto mods = m_support->chooseOptionalMods(m_version, optionalMods);
if (!mods.has_value()) {
emitAborted();
return;
}
selectedMods = mods.value();
} }
setStatus(tr("Downloading mods...")); setStatus(tr("Downloading mods..."));

View File

@ -62,7 +62,7 @@ public:
/** /**
* Requests a user interaction to select which optional mods should be installed. * Requests a user interaction to select which optional mods should be installed.
*/ */
virtual QVector<QString> chooseOptionalMods(PackVersion version, QVector<ATLauncher::VersionMod> mods) = 0; virtual std::optional<QVector<QString>> chooseOptionalMods(PackVersion version, QVector<ATLauncher::VersionMod> mods) = 0;
/** /**
* Requests a user interaction to select a component version from a given version list * Requests a user interaction to select a component version from a given version list

View File

@ -43,10 +43,13 @@ AtlUserInteractionSupportImpl::AtlUserInteractionSupportImpl(QWidget *parent) :
{ {
} }
QVector<QString> AtlUserInteractionSupportImpl::chooseOptionalMods(ATLauncher::PackVersion version, QVector<ATLauncher::VersionMod> mods) std::optional<QVector<QString>> AtlUserInteractionSupportImpl::chooseOptionalMods(ATLauncher::PackVersion version, QVector<ATLauncher::VersionMod> mods)
{ {
AtlOptionalModDialog optionalModDialog(m_parent, version, mods); AtlOptionalModDialog optionalModDialog(m_parent, version, mods);
optionalModDialog.exec(); auto result = optionalModDialog.exec();
if (result == QDialog::Rejected) {
return {};
}
return optionalModDialog.getResult(); return optionalModDialog.getResult();
} }

View File

@ -47,7 +47,7 @@ public:
private: private:
QString chooseVersion(Meta::VersionListPtr vlist, QString minecraftVersion) override; QString chooseVersion(Meta::VersionListPtr vlist, QString minecraftVersion) override;
QVector<QString> chooseOptionalMods(ATLauncher::PackVersion version, QVector<ATLauncher::VersionMod> mods) override; std::optional<QVector<QString>> chooseOptionalMods(ATLauncher::PackVersion version, QVector<ATLauncher::VersionMod> mods) override;
void displayMessage(QString message) override; void displayMessage(QString message) override;
private: private: