aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui/pages/instance/ManagedPackPage.cpp
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-11-18 15:48:16 -0300
committerflow <flowlnlnln@gmail.com>2022-12-06 17:00:34 -0300
commit089018015a441a35dc1780c9b61b29740bbf8a28 (patch)
treee268e9dbce3068254e2cb1950755b4f50d86aa24 /launcher/ui/pages/instance/ManagedPackPage.cpp
parentfeb6f285ce427ef218c925e5416ad7dc7ad67602 (diff)
downloadPrismLauncher-089018015a441a35dc1780c9b61b29740bbf8a28.tar.gz
PrismLauncher-089018015a441a35dc1780c9b61b29740bbf8a28.tar.bz2
PrismLauncher-089018015a441a35dc1780c9b61b29740bbf8a28.zip
refactor(ManagedPackPage): use smart pointers instead of raw ones
Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher/ui/pages/instance/ManagedPackPage.cpp')
-rw-r--r--launcher/ui/pages/instance/ManagedPackPage.cpp42
1 files changed, 20 insertions, 22 deletions
diff --git a/launcher/ui/pages/instance/ManagedPackPage.cpp b/launcher/ui/pages/instance/ManagedPackPage.cpp
index 10182b8b..b3816ce9 100644
--- a/launcher/ui/pages/instance/ManagedPackPage.cpp
+++ b/launcher/ui/pages/instance/ManagedPackPage.cpp
@@ -179,14 +179,17 @@ void ModrinthManagedPackPage::parseManagedPack()
{
qDebug() << "Parsing Modrinth pack";
- auto netJob = new NetJob(QString("Modrinth::PackVersions(%1)").arg(m_inst->getManagedPackName()), APPLICATION->network());
- auto response = new QByteArray();
+ if (m_fetch_job && m_fetch_job->isRunning())
+ m_fetch_job->abort();
+
+ m_fetch_job.reset(new NetJob(QString("Modrinth::PackVersions(%1)").arg(m_inst->getManagedPackName()), APPLICATION->network()));
+ auto response = std::make_shared<QByteArray>();
QString id = m_inst->getManagedPackID();
- netJob->addNetAction(Net::Download::makeByteArray(QString("%1/project/%2/version").arg(BuildConfig.MODRINTH_PROD_URL, id), response));
+ m_fetch_job->addNetAction(Net::Download::makeByteArray(QString("%1/project/%2/version").arg(BuildConfig.MODRINTH_PROD_URL, id), response.get()));
- QObject::connect(netJob, &NetJob::succeeded, this, [this, response, id] {
+ QObject::connect(m_fetch_job.get(), &NetJob::succeeded, this, [this, response, id] {
QJsonParseError parse_error{};
QJsonDocument doc = QJsonDocument::fromJson(*response, &parse_error);
if (parse_error.error != QJsonParseError::NoError) {
@@ -234,16 +237,12 @@ void ModrinthManagedPackPage::parseManagedPack()
m_loaded = true;
});
- QObject::connect(netJob, &NetJob::failed, this, &ModrinthManagedPackPage::setFailState);
- QObject::connect(netJob, &NetJob::aborted, this, &ModrinthManagedPackPage::setFailState);
- QObject::connect(netJob, &NetJob::finished, this, [response, netJob] {
- netJob->deleteLater();
- delete response;
- });
+ QObject::connect(m_fetch_job.get(), &NetJob::failed, this, &ModrinthManagedPackPage::setFailState);
+ QObject::connect(m_fetch_job.get(), &NetJob::aborted, this, &ModrinthManagedPackPage::setFailState);
ui->changelogTextBrowser->setText(tr("Fetching changelogs..."));
- netJob->start();
+ m_fetch_job->start();
}
QString ModrinthManagedPackPage::url() const
@@ -319,14 +318,17 @@ void FlameManagedPackPage::parseManagedPack()
return;
}
- auto netJob = new NetJob(QString("Flame::PackVersions(%1)").arg(m_inst->getManagedPackName()), APPLICATION->network());
- auto response = new QByteArray();
+ if (m_fetch_job && m_fetch_job->isRunning())
+ m_fetch_job->abort();
+
+ m_fetch_job.reset(new NetJob(QString("Flame::PackVersions(%1)").arg(m_inst->getManagedPackName()), APPLICATION->network()));
+ auto response = std::make_shared<QByteArray>();
QString id = m_inst->getManagedPackID();
- netJob->addNetAction(Net::Download::makeByteArray(QString("%1/mods/%2/files").arg(BuildConfig.FLAME_BASE_URL, id), response));
+ m_fetch_job->addNetAction(Net::Download::makeByteArray(QString("%1/mods/%2/files").arg(BuildConfig.FLAME_BASE_URL, id), response.get()));
- QObject::connect(netJob, &NetJob::succeeded, this, [this, response, id] {
+ QObject::connect(m_fetch_job.get(), &NetJob::succeeded, this, [this, response, id] {
QJsonParseError parse_error{};
QJsonDocument doc = QJsonDocument::fromJson(*response, &parse_error);
if (parse_error.error != QJsonParseError::NoError) {
@@ -371,14 +373,10 @@ void FlameManagedPackPage::parseManagedPack()
m_loaded = true;
});
- QObject::connect(netJob, &NetJob::failed, this, &FlameManagedPackPage::setFailState);
- QObject::connect(netJob, &NetJob::aborted, this, &FlameManagedPackPage::setFailState);
- QObject::connect(netJob, &NetJob::finished, this, [response, netJob] {
- netJob->deleteLater();
- delete response;
- });
+ QObject::connect(m_fetch_job.get(), &NetJob::failed, this, &FlameManagedPackPage::setFailState);
+ QObject::connect(m_fetch_job.get(), &NetJob::aborted, this, &FlameManagedPackPage::setFailState);
- netJob->start();
+ m_fetch_job->start();
}
QString FlameManagedPackPage::url() const