Fixed an issue where flagging a game not to be counted could lead to a crash.

This commit is contained in:
Leon Styhre 2020-12-31 19:44:24 +01:00
parent 7992e39b0f
commit 1a4c2fc4ae
2 changed files with 10 additions and 6 deletions

View file

@ -304,7 +304,6 @@ void CollectionSystemsManager::refreshCollectionSystems(FileData* file)
realSys.isEnabled = true;
realSys.isPopulated = true;
realSys.decl.isCustom = false;
updateCollectionSystem(file, realSys);
}
@ -343,7 +342,7 @@ void CollectionSystemsManager::updateCollectionSystem(FileData* file, Collection
else
mFavoritesSorting = Settings::getInstance()->getBool("FavoritesFirst");
const std::unordered_map<std::string, FileData*>&children =
const std::unordered_map<std::string, FileData*>& children =
curSys->getRootFolder()->getChildrenByFilename();
bool found = children.find(key) != children.cend();
@ -365,8 +364,12 @@ void CollectionSystemsManager::updateCollectionSystem(FileData* file, Collection
}
else if (curSys->isCollection() && !file->getCountAsGame()) {
// If the countasgame flag has been set to false, then remove the game.
ViewController::get()->
getGameListView(curSys).get()->remove(collectionEntry, false);
if (curSys->isGroupedCustomCollection())
ViewController::get()->getGameListView(curSys->getRootFolder()->getParent()->
getSystem()).get()->remove(collectionEntry, false);
else
ViewController::get()->
getGameListView(curSys).get()->remove(collectionEntry, false);
}
else {

View file

@ -385,8 +385,9 @@ void GuiMetaDataEd::save()
if (mSavedCallback)
mSavedCallback();
// Update respective Collection Entries.
CollectionSystemsManager::get()->refreshCollectionSystems(mScraperParams.game);
// Update all collections where the game is present.
if (mScraperParams.game->getType() == GAME)
CollectionSystemsManager::get()->refreshCollectionSystems(mScraperParams.game);
mScraperParams.system->onMetaDataSavePoint();