Minor code standardization for CollectionSystemManager.

This commit is contained in:
Leon Styhre 2020-11-10 18:45:57 +01:00
parent 7b30e0172b
commit 6bc30a68cb
2 changed files with 40 additions and 46 deletions

View file

@ -204,9 +204,6 @@ void CollectionSystemManager::saveCustomCollection(SystemData* sys)
} }
} }
// Functions below to load all collections into memory, and to enable the active ones.
// Load all collection systems.
void CollectionSystemManager::loadCollectionSystems() void CollectionSystemManager::loadCollectionSystems()
{ {
initAutoCollectionSystems(); initAutoCollectionSystems();
@ -225,7 +222,6 @@ void CollectionSystemManager::loadCollectionSystems()
} }
} }
// Load settings.
void CollectionSystemManager::loadEnabledListFromSettings() void CollectionSystemManager::loadEnabledListFromSettings()
{ {
// We parse the auto collection settings list. // We parse the auto collection settings list.
@ -259,7 +255,6 @@ void CollectionSystemManager::loadEnabledListFromSettings()
} }
} }
// Update enabled system list in System View.
void CollectionSystemManager::updateSystemsList() void CollectionSystemManager::updateSystemsList()
{ {
// Remove all collection systems. // Remove all collection systems.
@ -294,9 +289,6 @@ void CollectionSystemManager::updateSystemsList()
} }
} }
// Functions below to manage collection files related to a source FileData.
// Update all collection files related to the source file.
void CollectionSystemManager::refreshCollectionSystems(FileData* file) void CollectionSystemManager::refreshCollectionSystems(FileData* file)
{ {
if (!file->getSystem()->isGameSystem() || file->getType() != GAME) if (!file->getSystem()->isGameSystem() || file->getType() != GAME)
@ -463,7 +455,6 @@ void CollectionSystemManager::updateCollectionSystem(FileData* file, CollectionS
} }
} }
// Delete all collection files from collection systems related to the source file.
void CollectionSystemManager::deleteCollectionFiles(FileData* file) void CollectionSystemManager::deleteCollectionFiles(FileData* file)
{ {
// Collection files use the full path as key, to avoid clashes. // Collection files use the full path as key, to avoid clashes.
@ -494,7 +485,6 @@ void CollectionSystemManager::deleteCollectionFiles(FileData* file)
} }
} }
// Return whether the current theme is compatible with Automatic or Custom Collections.
bool CollectionSystemManager::isThemeGenericCollectionCompatible(bool genericCustomCollections) bool CollectionSystemManager::isThemeGenericCollectionCompatible(bool genericCustomCollections)
{ {
std::vector<std::string> cfgSys = getCollectionThemeFolders(genericCustomCollections); std::vector<std::string> cfgSys = getCollectionThemeFolders(genericCustomCollections);
@ -629,7 +619,6 @@ bool CollectionSystemManager::inCustomCollection(
return false; return false;
} }
// Add or remove a game from a specific collection.
bool CollectionSystemManager::toggleGameInCollection(FileData* file) bool CollectionSystemManager::toggleGameInCollection(FileData* file)
{ {
if (file->getType() == GAME) { if (file->getType() == GAME) {
@ -732,7 +721,6 @@ SystemData* CollectionSystemManager::getSystemToView(SystemData* sys)
return systemToView; return systemToView;
} }
// Used to generate a description of the collection, all other metadata fields are hidden.
FileData* CollectionSystemManager::updateCollectionFolderMetadata(SystemData* sys) FileData* CollectionSystemManager::updateCollectionFolderMetadata(SystemData* sys)
{ {
FileData* rootFolder = sys->getRootFolder(); FileData* rootFolder = sys->getRootFolder();
@ -820,7 +808,6 @@ FileData* CollectionSystemManager::updateCollectionFolderMetadata(SystemData* sy
return nullptr; return nullptr;
} }
// Return the unused folders from current theme path.
std::vector<std::string> CollectionSystemManager::getUnusedSystemsFromTheme() std::vector<std::string> CollectionSystemManager::getUnusedSystemsFromTheme()
{ {
// Get used systems in es_systems.cfg. // Get used systems in es_systems.cfg.
@ -893,10 +880,6 @@ void CollectionSystemManager::deleteCustomCollection(std::string collectionName)
} }
} }
// Functions below to Handle loading of collection systems, creating empty ones,
// and populating on demand.
// Loads Automatic Collection systems (All, Favorites, Last Played).
void CollectionSystemManager::initAutoCollectionSystems() void CollectionSystemManager::initAutoCollectionSystems()
{ {
for (std::map<std::string, CollectionSystemDecl, stringComparator>::const_iterator for (std::map<std::string, CollectionSystemDecl, stringComparator>::const_iterator
@ -926,7 +909,6 @@ SystemData* CollectionSystemManager::getAllGamesCollection()
return allSysData->system; return allSysData->system;
} }
// Create a new empty collection system based on the name and declaration.
SystemData* CollectionSystemManager::createNewCollectionEntry( SystemData* CollectionSystemManager::createNewCollectionEntry(
std::string name, CollectionSystemDecl sysDecl, bool index, bool custom) std::string name, CollectionSystemDecl sysDecl, bool index, bool custom)
{ {
@ -949,7 +931,6 @@ SystemData* CollectionSystemManager::createNewCollectionEntry(
return newSys; return newSys;
} }
// Populate an automatic collection system.
void CollectionSystemManager::populateAutoCollection(CollectionSystemData* sysData) void CollectionSystemManager::populateAutoCollection(CollectionSystemData* sysData)
{ {
SystemData* newSys = sysData->system; SystemData* newSys = sysData->system;
@ -1009,7 +990,6 @@ void CollectionSystemManager::populateAutoCollection(CollectionSystemData* sysDa
sysData->isPopulated = true; sysData->isPopulated = true;
} }
// Populate a custom collection system.
void CollectionSystemManager::populateCustomCollection(CollectionSystemData* sysData) void CollectionSystemManager::populateCustomCollection(CollectionSystemData* sysData)
{ {
SystemData* newSys = sysData->system; SystemData* newSys = sysData->system;
@ -1064,8 +1044,6 @@ void CollectionSystemManager::populateCustomCollection(CollectionSystemData* sys
} }
} }
// Functions below to handle System View removal and insertion of collections.
void CollectionSystemManager::removeCollectionsFromDisplayedSystems() void CollectionSystemManager::removeCollectionsFromDisplayedSystems()
{ {
// Remove all collection Systems. // Remove all collection Systems.
@ -1135,8 +1113,6 @@ void CollectionSystemManager::addEnabledCollectionsToDisplayedSystems(
} }
} }
// Auxiliary functions below to get available custom collection possibilities.
std::vector<std::string> CollectionSystemManager::getSystemsFromConfig() std::vector<std::string> CollectionSystemManager::getSystemsFromConfig()
{ {
std::vector<std::string> systems; std::vector<std::string> systems;
@ -1209,7 +1185,6 @@ std::vector<std::string> CollectionSystemManager::getSystemsFromTheme()
return systems; return systems;
} }
// Return which collection config files exist in the user folder.
std::vector<std::string> CollectionSystemManager::getCollectionsFromConfigFolder() std::vector<std::string> CollectionSystemManager::getCollectionsFromConfigFolder()
{ {
std::vector<std::string> systems; std::vector<std::string> systems;
@ -1240,8 +1215,6 @@ std::vector<std::string> CollectionSystemManager::getCollectionsFromConfigFolder
return systems; return systems;
} }
// Return the theme folders for automatic collections (All, Favorites, Last Played)
// or a generic custom collections folder.
std::vector<std::string> CollectionSystemManager::getCollectionThemeFolders(bool custom) std::vector<std::string> CollectionSystemManager::getCollectionThemeFolders(bool custom)
{ {
std::vector<std::string> systems; std::vector<std::string> systems;
@ -1255,7 +1228,6 @@ std::vector<std::string> CollectionSystemManager::getCollectionThemeFolders(bool
return systems; return systems;
} }
// Return the theme folders in use for the user-defined custom collections.
std::vector<std::string> CollectionSystemManager::getUserCollectionThemeFolders() std::vector<std::string> CollectionSystemManager::getUserCollectionThemeFolders()
{ {
std::vector<std::string> systems; std::vector<std::string> systems;
@ -1276,7 +1248,6 @@ void CollectionSystemManager::trimCollectionCount(FileData* rootFolder, int limi
} }
} }
// Return whether a specific folder exists in the theme.
bool CollectionSystemManager::themeFolderExists(std::string folder) bool CollectionSystemManager::themeFolderExists(std::string folder)
{ {
std::vector<std::string> themeSys = getSystemsFromTheme(); std::vector<std::string> themeSys = getSystemsFromTheme();

View file

@ -73,14 +73,42 @@ public:
static void deinit(); static void deinit();
void saveCustomCollection(SystemData* sys); void saveCustomCollection(SystemData* sys);
// Functions to load all collections into memory, and enable the active ones:
// Load all collection systems.
void loadCollectionSystems(); void loadCollectionSystems();
// Load settings.
void loadEnabledListFromSettings(); void loadEnabledListFromSettings();
// Update enabled system list in System View.
void updateSystemsList(); void updateSystemsList();
// Functions to manage collection files related to a source FileData:
// Update all collection files related to the source file.
void refreshCollectionSystems(FileData* file); void refreshCollectionSystems(FileData* file);
// Update the collections, such as when marking or unmarking a game as favorite.
void updateCollectionSystem(FileData* file, CollectionSystemData sysData); void updateCollectionSystem(FileData* file, CollectionSystemData sysData);
// Delete all collection files from all collection systems related to the source file.
void deleteCollectionFiles(FileData* file); void deleteCollectionFiles(FileData* file);
// Return whether the current theme is compatible with Automatic or Custom Collections.
bool isThemeGenericCollectionCompatible(bool genericCustomCollections);
bool isThemeCustomCollectionCompatible(std::vector<std::string> stringVector);
std::string getValidNewCollectionName(std::string name, int index = 0);
void setEditMode(std::string collectionName);
void exitEditMode();
bool inCustomCollection(const std::string& collectionName, FileData* gameFile);
// Add or remove a game from a specific collection.
bool toggleGameInCollection(FileData* file);
SystemData* getSystemToView(SystemData* sys);
// Used to generate a description of the collection (all other metadata fields are hidden).
FileData* updateCollectionFolderMetadata(SystemData* sys);
// Return the unused folders from current theme path.
std::vector<std::string> getUnusedSystemsFromTheme();
SystemData* addNewCustomCollection(std::string name);
void deleteCustomCollection(std::string collectionName);
inline std::map<std::string, CollectionSystemData, stringComparator> inline std::map<std::string, CollectionSystemData, stringComparator>
getAutoCollectionSystems() { return mAutoCollectionSystemsData; }; getAutoCollectionSystems() { return mAutoCollectionSystemsData; };
inline std::map<std::string, CollectionSystemData, stringComparator> inline std::map<std::string, CollectionSystemData, stringComparator>
@ -89,22 +117,6 @@ public:
inline bool isEditing() { return mIsEditingCustom; }; inline bool isEditing() { return mIsEditingCustom; };
inline std::string getEditingCollection() { return mEditingCollection; }; inline std::string getEditingCollection() { return mEditingCollection; };
bool isThemeGenericCollectionCompatible(bool genericCustomCollections);
bool isThemeCustomCollectionCompatible(std::vector<std::string> stringVector);
std::string getValidNewCollectionName(std::string name, int index = 0);
void setEditMode(std::string collectionName);
void exitEditMode();
bool inCustomCollection(const std::string& collectionName, FileData* gameFile);
bool toggleGameInCollection(FileData* file);
SystemData* getSystemToView(SystemData* sys);
FileData* updateCollectionFolderMetadata(SystemData* sys);
std::vector<std::string> getUnusedSystemsFromTheme();
SystemData* addNewCustomCollection(std::string name);
void deleteCustomCollection(std::string collectionName);
private: private:
static CollectionSystemManager* sInstance; static CollectionSystemManager* sInstance;
SystemEnvironmentData* mCollectionEnvData; SystemEnvironmentData* mCollectionEnvData;
@ -118,25 +130,36 @@ private:
CollectionSystemData* mEditingCollectionSystemData; CollectionSystemData* mEditingCollectionSystemData;
SystemData* mCustomCollectionsBundle; SystemData* mCustomCollectionsBundle;
// Functions to handle the initialization and loading of collection systems:
// Loads Automatic Collection systems (All, Favorites, Last Played).
void initAutoCollectionSystems(); void initAutoCollectionSystems();
void initCustomCollectionSystems(); void initCustomCollectionSystems();
SystemData* getAllGamesCollection(); SystemData* getAllGamesCollection();
// Create a new empty collection system based on the name and declaration.
SystemData* createNewCollectionEntry(std::string name, SystemData* createNewCollectionEntry(std::string name,
CollectionSystemDecl sysDecl, bool index = true, bool custom = false); CollectionSystemDecl sysDecl, bool index = true, bool custom = false);
// Populate an automatic collection system.
void populateAutoCollection(CollectionSystemData* sysData); void populateAutoCollection(CollectionSystemData* sysData);
// Populate a custom collection system.
void populateCustomCollection(CollectionSystemData* sysData); void populateCustomCollection(CollectionSystemData* sysData);
// Functions to handle System View removal and insertion of collections:
void removeCollectionsFromDisplayedSystems(); void removeCollectionsFromDisplayedSystems();
void addEnabledCollectionsToDisplayedSystems(std::map<std::string, void addEnabledCollectionsToDisplayedSystems(std::map<std::string,
CollectionSystemData, stringComparator>* colSystemData); CollectionSystemData, stringComparator>* colSystemData);
// Auxiliary functions:
std::vector<std::string> getSystemsFromConfig(); std::vector<std::string> getSystemsFromConfig();
std::vector<std::string> getSystemsFromTheme(); std::vector<std::string> getSystemsFromTheme();
// Return which collection config files exist in the user folder.
std::vector<std::string> getCollectionsFromConfigFolder(); std::vector<std::string> getCollectionsFromConfigFolder();
// Return the theme folders for automatic collections (All, Favorites and Last Played)
// or a generic custom collections folder.
std::vector<std::string> getCollectionThemeFolders(bool custom); std::vector<std::string> getCollectionThemeFolders(bool custom);
// Return the theme folders in use for the user-defined custom collections.
std::vector<std::string> getUserCollectionThemeFolders(); std::vector<std::string> getUserCollectionThemeFolders();
void trimCollectionCount(FileData* rootFolder, int limit); void trimCollectionCount(FileData* rootFolder, int limit);
// Return whether a specific folder exists in the theme.
bool themeFolderExists(std::string folder); bool themeFolderExists(std::string folder);
bool includeFileInAutoCollections(FileData* file); bool includeFileInAutoCollections(FileData* file);