Prevent game launchers in a directory used as game launcher, as FileData::addChild() is only valid on filesystem folders with no or no valid game extension for that platform.
Example:
```
scummvm/Violet.svm/ # directory acts as game launcher in ES, bc. of the extension.
├── Violet.svm # file is another valid game launcher.
└── Violet.zblorb
```
May be end up in the gamelist as:
```
...
<game>
<path>./Violet.svm</game> <!-- <game>-element bc. ES recognize only those as launchable -->
...
</game>
<game>
<path>./Violet.svm/Violet.svm</game> <!-- <game> can not be added to parent node as it is also a <game> and not a <folder> -->
...
</game>
```
1. folder elements are loaded when present in a gamelist and if they match the filesystem representation
2. missing optional folder elements are rendered empty in theme (and not "unknown")
3. As before non-existing folder elements are generated by ES, with mandatory elements <path/> and <name/>, but with this PR, whenever metadata is edited for this folder object (FileData class) it is persisted
4. Editiing metadata on existing <folder/> gets persisted too
5. UI metadata edit: layout fix that renders entered metadata not centered when returning from editing
6. UI metadata edit: format tooltip for date format in release date field
1. Menuitem text shortened to fit on 4:3 or 5:4 displays.
~~~2. <DEFAULT> renamed to "Favorites".~~~ undone
~~~3. Simplified applySettings() as I could not manage to defaultScreenSaverCollection->getSelected() to be not set.~~~ undone
4. setupScreenSaverEditingCollection() renamed to handleScreenSaverEditingCollection().
- Use constant var instead of -1 for setViewportTop()
- integrate logic to list cursor refresh into setCursor()
- Fix cornercase with cursor placement after screensaver 'A' btn press
- Fix cornercase in GuiGamelistOptions: If user stands inside Collections system which shows folders, then the option to launch a system only screensaver should not be available, only inside such folder. Additionally the Retropie Config 'System' should also not show the launch system screensaver menuentry.
- Add option to launch random video/image screensaver with games from only the current system
- Adjust screensaver controls to allow A to select the current game without launching
This reverts the changes in 5349be1dce that lower-cased the extension of the files listed and the system registered extensions.
On case-sensitive filesystems (i.e. Linux), this restores the ability to 'hide' certain files from being shown just be changing the case of the files' extension.
This ability is used by certain RetroPie users to hide unwanted files, without them showin up in the gamelist, by modifying `es_systems.cfg` and removing the uppercase extension of the files.
Updated the parsing of an existing gamelist to exclude entries without an extension present in `es_systems.cfg`.
This can happen when the list of extensions is updated and some extensions are removed, but the `gamelist.xml` entries are not removed. EmulationStation would still consider the excluded extension's entries as valid gamelist entries, without filtering them out.
- Sort order not remembered during ES session
- "Jump to ..." only correct on "name, asc." sort order
- Metadata edit with rename name leaves list cursor misplaced
- Scroll of long filename in gamelist restarts even if option dialog is closed without any changes
- Sort order description "filename" changed to "name"
- Some minor code smells