mirror of
https://github.com/libretro/scummvm.git
synced 2025-03-06 10:17:14 +00:00
GUI: Fix resolution of theme filename to id
getThemeId() returned "builtin" for valid filenames because FSNode only searches for the theme filename, like "scummmodern.zip" in the current directory. listUsableThemes() searches SearchMan default directories for theme files.
This commit is contained in:
parent
65ef0c8ff8
commit
66c2ae244f
@ -2420,19 +2420,32 @@ Common::String ThemeEngine::getThemeId(const Common::String &filename) {
|
||||
return "builtin";
|
||||
|
||||
Common::FSNode node(filename);
|
||||
if (!node.exists())
|
||||
return "builtin";
|
||||
if (node.exists()) {
|
||||
if (node.getName().matchString("*.zip", true)) {
|
||||
Common::String id = node.getName();
|
||||
|
||||
if (node.getName().matchString("*.zip", true)) {
|
||||
Common::String id = node.getName();
|
||||
for (int i = 0; i < 4; ++i)
|
||||
id.deleteLastChar();
|
||||
|
||||
for (int i = 0; i < 4; ++i)
|
||||
id.deleteLastChar();
|
||||
|
||||
return id;
|
||||
} else {
|
||||
return node.getName();
|
||||
return id;
|
||||
} else {
|
||||
return node.getName();
|
||||
}
|
||||
}
|
||||
|
||||
// FIXME:
|
||||
// A very ugly hack to map a id to a filename, this will generate
|
||||
// a complete theme list, thus it is slower than it could be.
|
||||
// But it is the easiest solution for now.
|
||||
Common::List<ThemeDescriptor> list;
|
||||
listUsableThemes(list);
|
||||
|
||||
for (Common::List<ThemeDescriptor>::const_iterator i = list.begin(); i != list.end(); ++i) {
|
||||
if (filename.equalsIgnoreCase(i->filename))
|
||||
return i->id;
|
||||
}
|
||||
|
||||
return "builtin";
|
||||
}
|
||||
|
||||
void ThemeEngine::showCursor() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user