feat: add updater dialogues

Signed-off-by: sticks <tanner@teamhydra.dev>
(cherry picked from commit 998bc660fa97f4527443dd826eede5e8eab23651)
This commit is contained in:
sticks 2025-02-28 15:05:30 -06:00 committed by github-actions[bot]
parent 416495cda7
commit 2952b1d6b6
2 changed files with 26 additions and 14 deletions

View File

@ -245,7 +245,6 @@ ModrinthManagedPackPage::ModrinthManagedPackPage(BaseInstance* inst, InstanceWin
} }
// MODRINTH // MODRINTH
void ModrinthManagedPackPage::parseManagedPack() void ModrinthManagedPackPage::parseManagedPack()
{ {
qDebug() << "Parsing Modrinth pack"; qDebug() << "Parsing Modrinth pack";
@ -338,6 +337,24 @@ void ModrinthManagedPackPage::suggestVersion()
ManagedPackPage::suggestVersion(); ManagedPackPage::suggestVersion();
} }
/// @brief Called when the update task has completed.
/// Internally handles the closing of the instance window if the update was successful and shows a message box.
/// @param did_succeed Whether the update task was successful.
void ManagedPackPage::onUpdateTaskCompleted(bool did_succeed) const
{
// Close the window if the update was successful
if (m_instance_window && did_succeed) {
m_instance_window->close();
CustomMessageBox::selectable(nullptr, tr("Update Successful"), tr("The instance updated to pack version %1 successfully.").arg(m_inst->getManagedPackVersionName()), QMessageBox::Information)
->show();
} else if (!did_succeed) {
CustomMessageBox::selectable(nullptr, tr("Update Failed"), tr("The instance failed to update to pack version %1. -- Please check launcher logs for more information.").arg(m_inst->getManagedPackVersionName()), QMessageBox::Critical)
->show();
qWarning() << "onUpdateTaskCompleted: unknown state encountered: did_succeed=" << did_succeed << " m_instance_window=" << m_instance_window;
}
}
void ModrinthManagedPackPage::update() void ModrinthManagedPackPage::update()
{ {
auto index = ui->versionsComboBox->currentIndex(); auto index = ui->versionsComboBox->currentIndex();
@ -363,10 +380,9 @@ void ModrinthManagedPackPage::update()
extracted->setIcon(m_inst->iconKey()); extracted->setIcon(m_inst->iconKey());
extracted->setConfirmUpdate(false); extracted->setConfirmUpdate(false);
// Run our task then handle the result
auto did_succeed = runUpdateTask(extracted); auto did_succeed = runUpdateTask(extracted);
onUpdateTaskCompleted(did_succeed);
if (m_instance_window && did_succeed)
m_instance_window->close();
} }
void ModrinthManagedPackPage::updateFromFile() void ModrinthManagedPackPage::updateFromFile()
@ -386,14 +402,12 @@ void ModrinthManagedPackPage::updateFromFile()
extracted->setIcon(m_inst->iconKey()); extracted->setIcon(m_inst->iconKey());
extracted->setConfirmUpdate(false); extracted->setConfirmUpdate(false);
// Run our task then handle the result
auto did_succeed = runUpdateTask(extracted); auto did_succeed = runUpdateTask(extracted);
onUpdateTaskCompleted(did_succeed);
if (m_instance_window && did_succeed)
m_instance_window->close();
} }
// FLAME // FLAME
FlameManagedPackPage::FlameManagedPackPage(BaseInstance* inst, InstanceWindow* instance_window, QWidget* parent) FlameManagedPackPage::FlameManagedPackPage(BaseInstance* inst, InstanceWindow* instance_window, QWidget* parent)
: ManagedPackPage(inst, instance_window, parent) : ManagedPackPage(inst, instance_window, parent)
{ {
@ -531,9 +545,7 @@ void FlameManagedPackPage::update()
extracted->setConfirmUpdate(false); extracted->setConfirmUpdate(false);
auto did_succeed = runUpdateTask(extracted); auto did_succeed = runUpdateTask(extracted);
onUpdateTaskCompleted(did_succeed);
if (m_instance_window && did_succeed)
m_instance_window->close();
} }
void FlameManagedPackPage::updateFromFile() void FlameManagedPackPage::updateFromFile()
@ -555,8 +567,6 @@ void FlameManagedPackPage::updateFromFile()
extracted->setConfirmUpdate(false); extracted->setConfirmUpdate(false);
auto did_succeed = runUpdateTask(extracted); auto did_succeed = runUpdateTask(extracted);
onUpdateTaskCompleted(did_succeed);
if (m_instance_window && did_succeed)
m_instance_window->close();
} }
#include "ManagedPackPage.moc" #include "ManagedPackPage.moc"

View File

@ -94,6 +94,8 @@ class ManagedPackPage : public QWidget, public BasePage {
BaseInstance* m_inst; BaseInstance* m_inst;
bool m_loaded = false; bool m_loaded = false;
void onUpdateTaskCompleted(bool did_succeed) const;
}; };
/** Simple page for when we aren't a managed pack. */ /** Simple page for when we aren't a managed pack. */