diff --git a/es-app/src/CollectionSystemsManager.cpp b/es-app/src/CollectionSystemsManager.cpp index 9e9db245e..8245b5f75 100644 --- a/es-app/src/CollectionSystemsManager.cpp +++ b/es-app/src/CollectionSystemsManager.cpp @@ -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 { diff --git a/es-app/src/guis/GuiMetaDataEd.cpp b/es-app/src/guis/GuiMetaDataEd.cpp index cdb7a6855..2fce9966b 100644 --- a/es-app/src/guis/GuiMetaDataEd.cpp +++ b/es-app/src/guis/GuiMetaDataEd.cpp @@ -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();