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:
parent
4e4135cd6d
commit
9ee327c723
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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()
|
||||
|
@ -62,7 +62,7 @@ public:
|
||||
|
||||
void detectPreferredLanguage();
|
||||
void enterSetup();
|
||||
void exitSetup();
|
||||
void exitSetup(bool goToMods);
|
||||
void switchToModsTab();
|
||||
void switchToStartTab();
|
||||
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user