Implement UI for setting recommended RAM

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
This commit is contained in:
TheKodeToad
2025-04-29 14:42:40 +01:00
parent 497e0cbfdc
commit 75d4ef1828
2 changed files with 25 additions and 1 deletions

View File

@@ -44,12 +44,16 @@ ExportPackDialog::ExportPackDialog(InstancePtr instance, QWidget* parent, ModPla
m_ui->version->setText(instance->settings()->get("ExportVersion").toString());
m_ui->optionalFiles->setChecked(instance->settings()->get("ExportOptionalFiles").toBool());
connect(m_ui->recommendedMemoryCheckBox, &QCheckBox::toggled, m_ui->recommendedMemory, &QWidget::setEnabled);
if (m_provider == ModPlatform::ResourceProvider::MODRINTH) {
setWindowTitle(tr("Export Modrinth Pack"));
m_ui->authorLabel->hide();
m_ui->author->hide();
m_ui->recommendedMemoryWidget->hide();
m_ui->summary->setPlainText(instance->settings()->get("ExportSummary").toString());
} else {
setWindowTitle(tr("Export CurseForge Pack"));
@@ -57,6 +61,19 @@ ExportPackDialog::ExportPackDialog(InstancePtr instance, QWidget* parent, ModPla
m_ui->summaryLabel->hide();
m_ui->summary->hide();
const int recommendedRAM = instance->settings()->get("ExportRecommendedRAM").toInt();
if (recommendedRAM > 0) {
m_ui->recommendedMemoryCheckBox->setChecked(true);
m_ui->recommendedMemory->setValue(recommendedRAM);
} else {
m_ui->recommendedMemoryCheckBox->setChecked(false);
// recommend based on setting - limited to 12 GiB (CurseForge warns above this amount)
const int defaultRecommendation = qMin(m_instance->settings()->get("MaxMemAlloc").toInt(), 1024 * 12);
m_ui->recommendedMemory->setValue(defaultRecommendation);
}
m_ui->author->setText(instance->settings()->get("ExportAuthor").toString());
}
@@ -120,9 +137,15 @@ void ExportPackDialog::done(int result)
if (m_provider == ModPlatform::ResourceProvider::MODRINTH)
settings->set("ExportSummary", m_ui->summary->toPlainText());
else
else {
settings->set("ExportAuthor", m_ui->author->text());
if (m_ui->recommendedMemoryCheckBox->isChecked())
settings->set("ExportRecommendedRAM", m_ui->recommendedMemory->value());
else
settings->reset("ExportRecommendedRAM");
}
if (result == Accepted) {
const QString name = m_ui->name->text().isEmpty() ? m_instance->name() : m_ui->name->text();
const QString filename = FS::RemoveInvalidFilenameChars(name);