This makes it so that the later call to parse the old manifest doesn't change the class data, so that the new data con continue there and be reflected on the component list later. Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net> Signed-off-by: flow <flowlnlnln@gmail.com>
53 lines
1.4 KiB
C++
53 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include "InstanceCreationTask.h"
|
|
|
|
#include <optional>
|
|
|
|
#include "minecraft/MinecraftInstance.h"
|
|
|
|
#include "modplatform/modrinth/ModrinthPackManifest.h"
|
|
|
|
#include "net/NetJob.h"
|
|
|
|
class ModrinthCreationTask final : public InstanceCreationTask {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
ModrinthCreationTask(QString staging_path,
|
|
SettingsObjectPtr global_settings,
|
|
QWidget* parent,
|
|
QString id,
|
|
QString version_id = {},
|
|
QString original_instance_id = {})
|
|
: InstanceCreationTask()
|
|
, m_parent(parent)
|
|
, m_managed_id(std::move(id))
|
|
, m_managed_version_id(std::move(version_id))
|
|
{
|
|
setStagingPath(staging_path);
|
|
setParentSettings(global_settings);
|
|
|
|
m_original_instance_id = std::move(original_instance_id);
|
|
}
|
|
|
|
bool abort() override;
|
|
|
|
bool updateInstance() override;
|
|
bool createInstance() override;
|
|
|
|
private:
|
|
bool parseManifest(const QString&, std::vector<Modrinth::File>&, bool set_internal_data = true, bool show_optional_dialog = true);
|
|
|
|
private:
|
|
QWidget* m_parent = nullptr;
|
|
|
|
QString minecraftVersion, fabricVersion, quiltVersion, forgeVersion;
|
|
QString m_managed_id, m_managed_version_id, m_managed_name;
|
|
|
|
std::vector<Modrinth::File> m_files;
|
|
NetJob::Ptr m_files_job;
|
|
|
|
std::optional<InstancePtr> m_instance;
|
|
};
|