NOISSUE Pass the optional mod dialog the full version

We will need more information, let's just pass the whole thing.
This commit is contained in:
Jamie Mansfield 2022-05-05 20:30:51 +01:00
parent af36e5c43f
commit 41f728b22f
No known key found for this signature in database
GPG Key ID: 36F61598F39F67B0
6 changed files with 15 additions and 13 deletions

View File

@ -530,7 +530,7 @@ 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(optionalMods); selectedMods = m_support->chooseOptionalMods(m_version, optionalMods);
} }
setStatus(tr("Downloading mods...")); setStatus(tr("Downloading mods..."));

View File

@ -37,7 +37,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(QVector<ATLauncher::VersionMod> mods) = 0; virtual QVector<QString> chooseOptionalMods(ATLauncher::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

@ -1,5 +1,5 @@
/* /*
* Copyright 2021 Jamie Mansfield <jmansfield@cadixdev.org> * Copyright 2021-2022 Jamie Mansfield <jmansfield@cadixdev.org>
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -17,8 +17,8 @@
#include "AtlOptionalModDialog.h" #include "AtlOptionalModDialog.h"
#include "ui_AtlOptionalModDialog.h" #include "ui_AtlOptionalModDialog.h"
AtlOptionalModListModel::AtlOptionalModListModel(QWidget *parent, QVector<ATLauncher::VersionMod> mods) AtlOptionalModListModel::AtlOptionalModListModel(QWidget *parent, ATLauncher::PackVersion version, QVector<ATLauncher::VersionMod> mods)
: QAbstractListModel(parent), m_mods(mods) { : QAbstractListModel(parent), m_version(version), m_mods(mods) {
// fill mod index // fill mod index
for (int i = 0; i < m_mods.size(); i++) { for (int i = 0; i < m_mods.size(); i++) {
@ -199,11 +199,11 @@ void AtlOptionalModListModel::setMod(ATLauncher::VersionMod mod, int index, bool
} }
AtlOptionalModDialog::AtlOptionalModDialog(QWidget *parent, QVector<ATLauncher::VersionMod> mods) AtlOptionalModDialog::AtlOptionalModDialog(QWidget *parent, ATLauncher::PackVersion version, QVector<ATLauncher::VersionMod> mods)
: QDialog(parent), ui(new Ui::AtlOptionalModDialog) { : QDialog(parent), ui(new Ui::AtlOptionalModDialog) {
ui->setupUi(this); ui->setupUi(this);
listModel = new AtlOptionalModListModel(this, mods); listModel = new AtlOptionalModListModel(this, version, mods);
ui->treeView->setModel(listModel); ui->treeView->setModel(listModel);
ui->treeView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); ui->treeView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2021 Jamie Mansfield <jmansfield@cadixdev.org> * Copyright 2021-2022 Jamie Mansfield <jmansfield@cadixdev.org>
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -36,7 +36,7 @@ public:
DescriptionColumn, DescriptionColumn,
}; };
AtlOptionalModListModel(QWidget *parent, QVector<ATLauncher::VersionMod> mods); AtlOptionalModListModel(QWidget *parent, ATLauncher::PackVersion version, QVector<ATLauncher::VersionMod> mods);
QVector<QString> getResult(); QVector<QString> getResult();
@ -58,7 +58,9 @@ private:
void setMod(ATLauncher::VersionMod mod, int index, bool enable, bool shouldEmit = true); void setMod(ATLauncher::VersionMod mod, int index, bool enable, bool shouldEmit = true);
private: private:
ATLauncher::PackVersion m_version;
QVector<ATLauncher::VersionMod> m_mods; QVector<ATLauncher::VersionMod> m_mods;
QMap<QString, bool> m_selection; QMap<QString, bool> m_selection;
QMap<QString, int> m_index; QMap<QString, int> m_index;
QMap<QString, QVector<QString>> m_dependants; QMap<QString, QVector<QString>> m_dependants;
@ -68,7 +70,7 @@ class AtlOptionalModDialog : public QDialog {
Q_OBJECT Q_OBJECT
public: public:
AtlOptionalModDialog(QWidget *parent, QVector<ATLauncher::VersionMod> mods); AtlOptionalModDialog(QWidget *parent, ATLauncher::PackVersion version, QVector<ATLauncher::VersionMod> mods);
~AtlOptionalModDialog() override; ~AtlOptionalModDialog() override;
QVector<QString> getResult() { QVector<QString> getResult() {

View File

@ -147,8 +147,8 @@ void AtlPage::onVersionSelectionChanged(QString data)
suggestCurrent(); suggestCurrent();
} }
QVector<QString> AtlPage::chooseOptionalMods(QVector<ATLauncher::VersionMod> mods) { QVector<QString> AtlPage::chooseOptionalMods(ATLauncher::PackVersion version, QVector<ATLauncher::VersionMod> mods) {
AtlOptionalModDialog optionalModDialog(this, mods); AtlOptionalModDialog optionalModDialog(this, version, mods);
optionalModDialog.exec(); optionalModDialog.exec();
return optionalModDialog.getResult(); return optionalModDialog.getResult();
} }

View File

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