1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-28 23:06:24 +02:00

Fix issues with first launch tab in offline

- Do not attempt to install mod if it is not available in (known) repo
- Go immediately to start game tab if there are no mods to install
instead of showing empty tab
This commit is contained in:
Ivan Savenko 2024-12-25 15:08:07 +00:00
parent 4e4135cd6d
commit 9ee327c723
5 changed files with 13 additions and 9 deletions

View File

@ -189,10 +189,10 @@ void FirstLaunchView::activateTabModPreset()
modPresetUpdate();
}
void FirstLaunchView::exitSetup()
void FirstLaunchView::exitSetup(bool goToMods)
{
if(auto * mainWindow = dynamic_cast<MainWindow *>(QApplication::activeWindow()))
mainWindow->exitSetup();
mainWindow->exitSetup(goToMods);
}
// Tab Language
@ -548,7 +548,7 @@ void FirstLaunchView::modPresetUpdate()
// we can't install anything - either repository checkout is off or all recommended mods are already installed
if (!checkCanInstallTranslation() && !checkCanInstallExtras() && !checkCanInstallHota() && !checkCanInstallWog())
exitSetup();
exitSetup(false);
}
QString FirstLaunchView::findTranslationModName()
@ -625,7 +625,8 @@ void FirstLaunchView::on_pushButtonPresetNext_clicked()
if (ui->buttonPresetHota->isChecked() && checkCanInstallHota())
modsToInstall.push_back("hota");
exitSetup();
bool goToMods = !modsToInstall.empty();
exitSetup(goToMods);
for (auto const & modName : modsToInstall)
getModView()->doInstallMod(modName);

View File

@ -29,7 +29,7 @@ class FirstLaunchView : public QWidget
void activateTabLanguage();
void activateTabHeroesData();
void activateTabModPreset();
void exitSetup();
void exitSetup(bool goToMods);
// Tab Language
void languageSelected(const QString & languageCode);

View File

@ -157,7 +157,7 @@ void MainWindow::enterSetup()
ui->tabListWidget->setCurrentIndex(TabRows::SETUP);
}
void MainWindow::exitSetup()
void MainWindow::exitSetup(bool goToMods)
{
Settings writer = settings.write["launcher"]["setupCompleted"];
writer->Bool() = true;
@ -166,7 +166,10 @@ void MainWindow::exitSetup()
ui->settingsButton->setEnabled(true);
ui->aboutButton->setEnabled(true);
ui->modslistButton->setEnabled(true);
ui->tabListWidget->setCurrentIndex(TabRows::MODS);
if (goToMods)
ui->tabListWidget->setCurrentIndex(TabRows::MODS);
else
ui->tabListWidget->setCurrentIndex(TabRows::START);
}
void MainWindow::switchToStartTab()

View File

@ -62,7 +62,7 @@ public:
void detectPreferredLanguage();
void enterSetup();
void exitSetup();
void exitSetup(bool goToMods);
void switchToModsTab();
void switchToStartTab();

View File

@ -1013,7 +1013,7 @@ void CModListView::doInstallMod(const QString & modName)
bool CModListView::isModAvailable(const QString & modName)
{
return !modStateModel->isModInstalled(modName);
return modStateModel->isModExists(modName) && !modStateModel->isModInstalled(modName);
}
bool CModListView::isModEnabled(const QString & modName)