mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2025-02-16 20:15:38 +00:00
Greatly simplified the handling of hidden games.
This commit is contained in:
parent
0173e1c52d
commit
d7372df031
|
@ -71,11 +71,11 @@ FileData::~FileData()
|
||||||
if (mType == GAME)
|
if (mType == GAME)
|
||||||
mSystem->getIndex()->removeFromIndex(this);
|
mSystem->getIndex()->removeFromIndex(this);
|
||||||
|
|
||||||
if (mParent)
|
|
||||||
mParent->removeChild(this);
|
|
||||||
|
|
||||||
while (mChildren.size() > 0)
|
while (mChildren.size() > 0)
|
||||||
delete (mChildren.front());
|
delete (mChildren.front());
|
||||||
|
|
||||||
|
if (mParent)
|
||||||
|
mParent->removeChild(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string FileData::getDisplayName() const
|
std::string FileData::getDisplayName() const
|
||||||
|
@ -447,23 +447,6 @@ void FileData::sort(ComparisonFunction& comparator, bool ascending,
|
||||||
std::vector<FileData*> mChildrenFolders;
|
std::vector<FileData*> mChildrenFolders;
|
||||||
std::vector<FileData*> mChildrenOthers;
|
std::vector<FileData*> mChildrenOthers;
|
||||||
|
|
||||||
// Only run this section of code if the setting to show hidden games has been disabled,
|
|
||||||
// in order to avoid unnecessary processing.
|
|
||||||
if (!Settings::getInstance()->getBool("ShowHiddenGames")) {
|
|
||||||
std::vector<FileData*> mChildrenShown;
|
|
||||||
for (unsigned int i = 0; i < mChildren.size(); i++) {
|
|
||||||
if (mChildren[i]->getHidden()) {
|
|
||||||
LOG(LogDebug) << "FileData::sort(): Skipping hidden game '" <<
|
|
||||||
mChildren[i]->getName() << "'" << " (" << mChildren[i]->getPath() << ").";
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
mChildrenShown.push_back(mChildren[i]);
|
|
||||||
}
|
|
||||||
mChildren.erase(mChildren.begin(), mChildren.end());
|
|
||||||
mChildren.reserve(mChildrenShown.size());
|
|
||||||
mChildren.insert(mChildren.end(), mChildrenShown.begin(), mChildrenShown.end());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (foldersOnTop) {
|
if (foldersOnTop) {
|
||||||
for (unsigned int i = 0; i < mChildren.size(); i++) {
|
for (unsigned int i = 0; i < mChildren.size(); i++) {
|
||||||
if (mChildren[i]->getType() == FOLDER) {
|
if (mChildren[i]->getType() == FOLDER) {
|
||||||
|
@ -559,18 +542,10 @@ void FileData::sortFavoritesOnTop(ComparisonFunction& comparator, bool ascending
|
||||||
std::vector<FileData*> mChildrenFavoritesFolders;
|
std::vector<FileData*> mChildrenFavoritesFolders;
|
||||||
std::vector<FileData*> mChildrenFavorites;
|
std::vector<FileData*> mChildrenFavorites;
|
||||||
std::vector<FileData*> mChildrenOthers;
|
std::vector<FileData*> mChildrenOthers;
|
||||||
bool showHiddenGames = Settings::getInstance()->getBool("ShowHiddenGames");
|
|
||||||
bool foldersOnTop = Settings::getInstance()->getBool("FoldersOnTop");
|
bool foldersOnTop = Settings::getInstance()->getBool("FoldersOnTop");
|
||||||
bool hasFolders = false;
|
bool hasFolders = false;
|
||||||
|
|
||||||
for (unsigned int i = 0; i < mChildren.size(); i++) {
|
for (unsigned int i = 0; i < mChildren.size(); i++) {
|
||||||
// Exclude game if it's marked as hidden and the hide setting has been set.
|
|
||||||
if (!showHiddenGames && mChildren[i]->getHidden()) {
|
|
||||||
LOG(LogDebug) << "FileData::sortFavoritesOnTop(): Skipping hidden game '" <<
|
|
||||||
mChildren[i]->getName() << "'" << " (" << mChildren[i]->getPath() << ").";
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Game count, which will be displayed in the system view.
|
// Game count, which will be displayed in the system view.
|
||||||
if (mChildren[i]->getType() == GAME && mChildren[i]->getCountAsGame()) {
|
if (mChildren[i]->getType() == GAME && mChildren[i]->getCountAsGame()) {
|
||||||
if (!mChildren[i]->getFavorite())
|
if (!mChildren[i]->getFavorite())
|
||||||
|
|
|
@ -158,6 +158,15 @@ void parseGamelist(SystemData* system)
|
||||||
|
|
||||||
file->metadata.resetChangedFlag();
|
file->metadata.resetChangedFlag();
|
||||||
}
|
}
|
||||||
|
// If the game is flagged as hidden and the option has not been set to show hidden
|
||||||
|
// games, then delete the entry. This leaves no trace of the entry at all in ES
|
||||||
|
// but that is fine as the option to show hidden files is defined as requiring an
|
||||||
|
// application restart.
|
||||||
|
if (!Settings::getInstance()->getBool("ShowHiddenGames") && file->getHidden()) {
|
||||||
|
LOG(LogDebug) << "Gamelist::parseGamelist(): Skipping hidden entry '" <<
|
||||||
|
file->getName() << "'" << " (" << file->getPath() << ").";
|
||||||
|
delete file;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue