mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +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:
		| @@ -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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user