[Oracle] Skip low-memory prompt in background mode, guard with HAS_LZMA

This commit is contained in:
Lukas Brübach 2026-10-11 17:51:52 +02:00
parent 7a4cfa5685
commit 94c5a7d43f

View file

@ -188,12 +188,19 @@ void LoadSetsPage::initializePage()
urlLineEdit->setText(wizard()->settings->value("allsetsurl", ALLSETS_URL).toString()); urlLineEdit->setText(wizard()->settings->value("allsetsurl", ALLSETS_URL).toString());
// Memory check because Oracle parsing fails on systems with less than 4GiB for MTGJsons allPrintings.json // Memory check because Oracle parsing fails on systems with less than 4GiB for MTGJsons allPrintings.json
// The fallback URL is xz-compressed, so only offer it in builds that can read it.
// During background (automatic) updates there is no user to answer, so switch silently.
#ifdef HAS_LZMA
if (!SystemMemoryQuerier::hasAtLeastGiB(4) && urlLineEdit->text() == ALLSETS_URL) { if (!SystemMemoryQuerier::hasAtLeastGiB(4) && urlLineEdit->text() == ALLSETS_URL) {
if (wizard()->backgroundMode) {
urlLineEdit->setText(MTGXML_URL);
} else {
// Ask user whether to switch URL // Ask user whether to switch URL
QMessageBox msgBox( QMessageBox msgBox(
QMessageBox::Question, tr("Low Memory Detected"), QMessageBox::Question, tr("Low Memory Detected"),
tr("Your system has less than 4 GiB of memory.\n" tr("Your system has less than 4 GiB of memory.\n"
"Using the default AllPrintings URL may cause high memory usage and is known to fail as a result.\n\n" "Using the default AllPrintings URL may cause high memory usage and is known to fail as a "
"result.\n\n"
"Would you like to switch to the direct-download pre-parsed URL instead? (Updated daily)"), "Would you like to switch to the direct-download pre-parsed URL instead? (Updated daily)"),
QMessageBox::Yes | QMessageBox::No, this); QMessageBox::Yes | QMessageBox::No, this);
@ -203,6 +210,8 @@ void LoadSetsPage::initializePage()
urlLineEdit->setText(MTGXML_URL); urlLineEdit->setText(MTGXML_URL);
} }
} }
}
#endif
progressLabel->hide(); progressLabel->hide();
progressBar->hide(); progressBar->hide();