mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2025-04-10 19:15:13 +00:00
Fixed a memory leak related to the gamelist placeholders.
This commit is contained in:
parent
924b3ac033
commit
90e3fe0fac
|
@ -47,7 +47,8 @@ SystemData::SystemData(
|
||||||
mIsCustomCollectionSystem(CustomCollectionSystem),
|
mIsCustomCollectionSystem(CustomCollectionSystem),
|
||||||
mIsGroupedCustomCollectionSystem(false),
|
mIsGroupedCustomCollectionSystem(false),
|
||||||
mIsGameSystem(true),
|
mIsGameSystem(true),
|
||||||
mScrapeFlag(false)
|
mScrapeFlag(false),
|
||||||
|
mPlaceholder(nullptr)
|
||||||
{
|
{
|
||||||
mFilterIndex = new FileFilterIndex();
|
mFilterIndex = new FileFilterIndex();
|
||||||
|
|
||||||
|
@ -79,6 +80,10 @@ SystemData::SystemData(
|
||||||
mRootFolder = new FileData(FOLDER, "" + name, mEnvData, this);
|
mRootFolder = new FileData(FOLDER, "" + name, mEnvData, this);
|
||||||
setupSystemSortType(mRootFolder);
|
setupSystemSortType(mRootFolder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This placeholder can be used later in the gamelist view.
|
||||||
|
mPlaceholder = new FileData(PLACEHOLDER, "<No Entries Found>", getSystemEnvData(), this);
|
||||||
|
|
||||||
setIsGameSystemStatus();
|
setIsGameSystemStatus();
|
||||||
loadTheme();
|
loadTheme();
|
||||||
}
|
}
|
||||||
|
@ -93,6 +98,7 @@ SystemData::~SystemData()
|
||||||
if (!mEnvData->mStartPath.empty())
|
if (!mEnvData->mStartPath.empty())
|
||||||
delete mEnvData;
|
delete mEnvData;
|
||||||
delete mRootFolder;
|
delete mRootFolder;
|
||||||
|
delete mPlaceholder;
|
||||||
delete mFilterIndex;
|
delete mFilterIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -96,6 +96,7 @@ public:
|
||||||
SystemData* getPrev() const;
|
SystemData* getPrev() const;
|
||||||
static SystemData* getRandomSystem(const SystemData* currentSystem);
|
static SystemData* getRandomSystem(const SystemData* currentSystem);
|
||||||
FileData* getRandomGame(const FileData* currentGame = nullptr);
|
FileData* getRandomGame(const FileData* currentGame = nullptr);
|
||||||
|
FileData* getPlaceholder() { return mPlaceholder; };
|
||||||
|
|
||||||
void sortSystem(bool reloadGamelist = true, bool jumpToFirstRow = false);
|
void sortSystem(bool reloadGamelist = true, bool jumpToFirstRow = false);
|
||||||
|
|
||||||
|
@ -127,6 +128,7 @@ private:
|
||||||
FileFilterIndex* mFilterIndex;
|
FileFilterIndex* mFilterIndex;
|
||||||
|
|
||||||
FileData* mRootFolder;
|
FileData* mRootFolder;
|
||||||
|
FileData* mPlaceholder;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // ES_APP_SYSTEM_DATA_H
|
#endif // ES_APP_SYSTEM_DATA_H
|
||||||
|
|
|
@ -162,15 +162,14 @@ FileData* BasicGameListView::getFirstGameEntry()
|
||||||
|
|
||||||
void BasicGameListView::addPlaceholder(FileData* firstEntry)
|
void BasicGameListView::addPlaceholder(FileData* firstEntry)
|
||||||
{
|
{
|
||||||
// Empty list - add a placeholder.
|
// Empty list, add a placeholder.
|
||||||
SystemData* system;
|
FileData* placeholder;
|
||||||
if (firstEntry && firstEntry->getSystem()->isGroupedCustomCollection())
|
|
||||||
system = firstEntry->getSystem();
|
if (firstEntry && firstEntry->getSystem()->isGroupedCustomCollection())
|
||||||
else
|
placeholder = firstEntry->getSystem()->getPlaceholder();
|
||||||
system = this->mRoot->getSystem();
|
else
|
||||||
|
placeholder = this->mRoot->getSystem()->getPlaceholder();
|
||||||
|
|
||||||
FileData* placeholder = new FileData(PLACEHOLDER, "<No Entries Found>",
|
|
||||||
this->mRoot->getSystem()->getSystemEnvData(), system);
|
|
||||||
mList.add(placeholder->getName(), placeholder, (placeholder->getType() == PLACEHOLDER));
|
mList.add(placeholder->getName(), placeholder, (placeholder->getType() == PLACEHOLDER));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -535,15 +535,14 @@ void GridGameListView::updateInfoPanel()
|
||||||
|
|
||||||
void GridGameListView::addPlaceholder(FileData* firstEntry)
|
void GridGameListView::addPlaceholder(FileData* firstEntry)
|
||||||
{
|
{
|
||||||
// Empty list - add a placeholder.
|
// Empty list, add a placeholder.
|
||||||
SystemData* system;
|
FileData* placeholder;
|
||||||
if (firstEntry && firstEntry->getSystem()->isGroupedCustomCollection())
|
|
||||||
system = firstEntry->getSystem();
|
if (firstEntry && firstEntry->getSystem()->isGroupedCustomCollection())
|
||||||
else
|
placeholder = firstEntry->getSystem()->getPlaceholder();
|
||||||
system = this->mRoot->getSystem();
|
else
|
||||||
|
placeholder = this->mRoot->getSystem()->getPlaceholder();
|
||||||
|
|
||||||
FileData* placeholder = new FileData(PLACEHOLDER, "<No Entries Found>",
|
|
||||||
this->mRoot->getSystem()->getSystemEnvData(), system);
|
|
||||||
mGrid.add(placeholder->getName(), "", placeholder);
|
mGrid.add(placeholder->getName(), "", placeholder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue