[Scummvm-git-logs] scummvm master -> 1af0e814e19aff84766d3eeddd2ee3953974f08f
lephilousophe
noreply at scummvm.org
Sat Oct 8 14:56:01 UTC 2022
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
476b82ec84 GUI: Use engine ID to match metadata
1041c69710 GUI: Unify games listing between choosers
1af0e814e1 GUI: In grid launcher group by title to match what is displayed
Commit: 476b82ec8428646ce68f7a126eb592eef2d6bfc2
https://github.com/scummvm/scummvm/commit/476b82ec8428646ce68f7a126eb592eef2d6bfc2
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2022-10-08T16:55:56+02:00
Commit Message:
GUI: Use engine ID to match metadata
This avoids classifying Cryo Atlantis as LucasArts game and Indiana Jones
series
Changed paths:
gui/MetadataParser.cpp
gui/launcher.cpp
diff --git a/gui/MetadataParser.cpp b/gui/MetadataParser.cpp
index 4e618560a31..d5389a6ac1d 100644
--- a/gui/MetadataParser.cpp
+++ b/gui/MetadataParser.cpp
@@ -69,9 +69,10 @@ bool MetadataParser::parserCallback_company(ParserNode *node) {
bool MetadataParser::closedKeyCallback(ParserNode *node) {
if (node->name == "game")
- _gameInfo[node->values["id"]] = MetadataGame(node->values["id"], node->values["name"], node->values["engine_id"],
- node->values["company_id"], node->values["moby_id"], node->values["datafiles"],
- node->values["series_id"]);
+ _gameInfo[Common::String::format("%s:%s",
+ node->values["engine_id"].c_str(), node->values["id"].c_str())] = MetadataGame(
+ node->values["id"], node->values["name"], node->values["engine_id"], node->values["company_id"],
+ node->values["moby_id"], node->values["datafiles"], node->values["series_id"]);
if (node->name == "engine")
_engineInfo[node->values["id"]] = MetadataEngine(node->values["id"], node->values["name"], node->values["alt_name"],
true);
diff --git a/gui/launcher.cpp b/gui/launcher.cpp
index ba110ae8e68..9d760937306 100644
--- a/gui/launcher.cpp
+++ b/gui/launcher.cpp
@@ -1150,8 +1150,9 @@ void LauncherSimple::groupEntries(const Common::Array<const Common::ConfigManage
}
case kGroupByCompany: {
for (uint i = 0; i < metadata.size(); ++i) {
- Common::U32String gameid = metadata[i]->getVal(Common::String("gameid"));
- attrs.push_back(_metadataParser._gameInfo[gameid].company_id);
+ Common::String gameid = metadata[i]->getVal("gameid");
+ Common::String engineid = metadata[i]->getVal("engineid");
+ attrs.push_back(_metadataParser._gameInfo[buildQualifiedGameName(engineid, gameid)].company_id);
}
_list->setGroupHeaderFormat(Common::U32String(""), Common::U32String(""));
// I18N: List grouping when no pubisher is specified
@@ -1168,8 +1169,9 @@ void LauncherSimple::groupEntries(const Common::Array<const Common::ConfigManage
}
case kGroupBySeries: {
for (uint i = 0; i < metadata.size(); ++i) {
- Common::U32String gameid = metadata[i]->getVal(Common::String("gameid"));
- attrs.push_back(_metadataParser._gameInfo[gameid].series_id);
+ Common::String gameid = metadata[i]->getVal("gameid");
+ Common::String engineid = metadata[i]->getVal("engineid");
+ attrs.push_back(_metadataParser._gameInfo[buildQualifiedGameName(engineid, gameid)].series_id);
}
_list->setGroupHeaderFormat(Common::U32String(""), Common::U32String(""));
// I18N: List group when no game series is specified
@@ -1345,8 +1347,9 @@ void LauncherGrid::groupEntries(const Common::Array<const Common::ConfigManager:
}
case kGroupBySeries: {
for (uint i = 0; i < metadata.size(); ++i) {
- Common::U32String gameid = metadata[i]->getVal(Common::String("gameid"));
- attrs.push_back(_metadataParser._gameInfo[gameid].series_id);
+ Common::String gameid = metadata[i]->getVal("gameid");
+ Common::String engineid = metadata[i]->getVal("engineid");
+ attrs.push_back(_metadataParser._gameInfo[buildQualifiedGameName(engineid, gameid)].series_id);
}
_grid->setGroupHeaderFormat(Common::U32String(""), Common::U32String(""));
// I18N: List grouping when no game series is specified
@@ -1359,8 +1362,9 @@ void LauncherGrid::groupEntries(const Common::Array<const Common::ConfigManager:
}
case kGroupByCompany: {
for (uint i = 0; i < metadata.size(); ++i) {
- Common::U32String gameid = metadata[i]->getVal(Common::String("gameid"));
- attrs.push_back(_metadataParser._gameInfo[gameid].company_id);
+ Common::String gameid = metadata[i]->getVal("gameid");
+ Common::String engineid = metadata[i]->getVal("engineid");
+ attrs.push_back(_metadataParser._gameInfo[buildQualifiedGameName(engineid, gameid)].company_id);
}
_grid->setGroupHeaderFormat(Common::U32String(""), Common::U32String(""));
// I18N: List group when no publisher is specified
Commit: 1041c69710bfc8db1b68a8e213f0d4b756122fad
https://github.com/scummvm/scummvm/commit/1041c69710bfc8db1b68a8e213f0d4b756122fad
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2022-10-08T16:55:56+02:00
Commit Message:
GUI: Unify games listing between choosers
And avoid building of useless array
Changed paths:
gui/launcher.cpp
gui/launcher.h
diff --git a/gui/launcher.cpp b/gui/launcher.cpp
index 9d760937306..7045503b744 100644
--- a/gui/launcher.cpp
+++ b/gui/launcher.cpp
@@ -338,12 +338,15 @@ void LauncherDialog::close() {
}
struct LauncherEntry {
Common::String key;
+ Common::String engineid;
+ Common::String gameid;
Common::String description;
Common::String title;
const Common::ConfigManager::Domain *domain;
- LauncherEntry(const Common::String &k, const Common::String &d, const Common::String &t, const Common::ConfigManager::Domain *v) :
- key(k), description(d), title(t), domain(v) {
+ LauncherEntry(const Common::String &k, const Common::String &e, const Common::String &g,
+ const Common::String &d, const Common::String &t, const Common::ConfigManager::Domain *v) :
+ key(k), engineid(e), gameid(g), description(d), title(t), domain(v) {
}
};
@@ -882,6 +885,56 @@ void LauncherChooser::genGameList() {
}
}
+static Common::Array<LauncherEntry> generateEntries(const Common::ConfigManager::DomainMap &domains, const Common::StringMap &games) {
+ Common::Array<LauncherEntry> domainList;
+ for (Common::ConfigManager::DomainMap::const_iterator iter = domains.begin(); iter != domains.end(); ++iter) {
+ // Do not list temporary targets added when starting a game from the command line
+ if (iter->_value.contains("id_came_from_command_line"))
+ continue;
+
+ Common::String description;
+ Common::String title;
+
+ if (!iter->_value.tryGetVal("description", description)) {
+ QualifiedGameDescriptor g = EngineMan.findTarget(iter->_key);
+ if (!g.description.empty())
+ description = g.description;
+ }
+
+ Common::String engineid = iter->_value.getValOrDefault("engineid");
+
+ Common::String gameid;
+ if (!iter->_value.tryGetVal("gameid", gameid)) {
+ gameid = iter->_key;
+ }
+
+ // Strip platform language from the title.
+ Common::String key = buildQualifiedGameName(engineid, gameid);
+
+ if (games.contains(key)) {
+ title = games.getVal(key);
+
+ // This is not reliable
+ if (gameid.contains("-demo"))
+ title += " (Demo)";
+ }
+
+ if (description.empty()) {
+ description = Common::String::format("Unknown (target %s, gameid %s)", iter->_key.c_str(), gameid.c_str());
+ }
+
+ if (title.empty())
+ title = description;
+ if (!description.empty())
+ domainList.push_back(LauncherEntry(iter->_key, engineid, gameid, description, title, &iter->_value));
+ }
+
+ // Now sort the list in dictionary order
+ Common::sort(domainList.begin(), domainList.end(), LauncherEntryComparator());
+
+ return domainList;
+}
+
#ifndef DISABLE_LAUNCHERDISPLAY_GRID
LauncherDisplayType getRequestedLauncherType() {
const Common::String &userConfig = ConfMan.get("gui_launcher_chooser", Common::ConfigManager::kApplicationDomain);
@@ -906,7 +959,7 @@ public:
protected:
void updateListing() override;
- void groupEntries(const Common::Array<const Common::ConfigManager::Domain *> &metadata);
+ void groupEntries(const Common::Array<LauncherEntry> &metadata);
void updateButtons() override;
void selectTarget(const Common::String &target) override;
int getSelected() override;
@@ -927,7 +980,7 @@ public:
protected:
void updateListing() override;
- void groupEntries(const Common::Array<const Common::ConfigManager::Domain *> &metadata);
+ void groupEntries(const Common::Array<LauncherEntry> &metadata);
void updateButtons() override;
void selectTarget(const Common::String &target) override;
int getSelected() override;
@@ -1038,7 +1091,6 @@ void LauncherSimple::build() {
void LauncherSimple::updateListing() {
Common::U32StringArray l;
- Common::Array<const Common::ConfigManager::Domain *> attrs;
ThemeEngine::FontColor color;
int numEntries = ConfMan.getInt("gui_list_max_scan_entries");
@@ -1047,39 +1099,11 @@ void LauncherSimple::updateListing() {
const Common::ConfigManager::DomainMap &domains = ConfMan.getGameDomains();
bool scanEntries = numEntries == -1 ? true : ((int)domains.size() <= numEntries);
- // Turn it into a list of pointers
- Common::List<LauncherEntry> domainList;
- for (Common::ConfigManager::DomainMap::const_iterator iter = domains.begin(); iter != domains.end(); ++iter) {
- // Do not list temporary targets added when starting a game from the command line
- if (iter->_value.contains("id_came_from_command_line"))
- continue;
-
- Common::String description;
-
- if (!iter->_value.tryGetVal("description", description)) {
- QualifiedGameDescriptor g = EngineMan.findTarget(iter->_key);
- if (!g.description.empty())
- description = g.description;
- }
-
- if (description.empty()) {
- Common::String gameid;
- if (!iter->_value.tryGetVal("gameid", gameid)) {
- gameid = iter->_key;
- }
-
- description = Common::String::format("Unknown (target %s, gameid %s)", iter->_key.c_str(), gameid.c_str());
- }
-
- if (!description.empty())
- domainList.push_back(LauncherEntry(iter->_key, description, description, &iter->_value));
- }
-
- // Now sort the list in dictionary order
- Common::sort(domainList.begin(), domainList.end(), LauncherEntryComparator());
+ // Turn it into a sorted list of entries
+ Common::Array<LauncherEntry> domainList = generateEntries(domains, _launcherChooser->getGameList());
// And fill out our structures
- for (Common::List<LauncherEntry>::const_iterator iter = domainList.begin(); iter != domainList.end(); ++iter) {
+ for (Common::Array<LauncherEntry>::const_iterator iter = domainList.begin(); iter != domainList.end(); ++iter) {
color = ThemeEngine::kFontColorNormal;
if (scanEntries) {
@@ -1096,14 +1120,13 @@ void LauncherSimple::updateListing() {
Common::U32String gameDesc = GUI::ListWidget::getThemeColor(color) + Common::U32String(iter->description);
l.push_back(gameDesc);
- attrs.push_back(iter->domain);
_domains.push_back(iter->key);
}
const int oldSel = _list->getSelected();
_list->setList(l);
- groupEntries(attrs);
+ groupEntries(domainList);
if (oldSel < (int)l.size() && oldSel >= 0)
_list->setSelected(oldSel); // Restore the old selection
@@ -1117,23 +1140,21 @@ void LauncherSimple::updateListing() {
_list->setFilter(_searchWidget->getEditString());
}
-void LauncherSimple::groupEntries(const Common::Array<const Common::ConfigManager::Domain *> &metadata) {
+void LauncherSimple::groupEntries(const Common::Array<LauncherEntry> &metadata) {
Common::U32StringArray attrs;
Common::StringMap metadataNames;
_list->setGroupsVisibility(true);
switch (_groupBy) {
case kGroupByFirstLetter: {
- for (uint i = 0; i < metadata.size(); ++i) {
- attrs.push_back(metadata[i]->getValOrDefault("description").substr(0, 1));
+ for (Common::Array<LauncherEntry>::const_iterator iter = metadata.begin(); iter != metadata.end(); ++iter) {
+ attrs.push_back(iter->description.substr(0, 1));
}
_list->setGroupHeaderFormat(Common::U32String(""), Common::U32String("..."));
break;
}
case kGroupByEngine: {
- for (uint i = 0; i < metadata.size(); ++i) {
- Common::U32String engineid = metadata[i]->contains(Common::String("engineid")) ?
- metadata[i]->getVal(Common::String("engineid")) : Common::String("");
- attrs.push_back(engineid);
+ for (Common::Array<LauncherEntry>::const_iterator iter = metadata.begin(); iter != metadata.end(); ++iter) {
+ attrs.push_back(iter->engineid);
}
_list->setGroupHeaderFormat(Common::U32String(""), Common::U32String(""));
// I18N: List grouping when no engine is specified
@@ -1149,10 +1170,8 @@ void LauncherSimple::groupEntries(const Common::Array<const Common::ConfigManage
break;
}
case kGroupByCompany: {
- for (uint i = 0; i < metadata.size(); ++i) {
- Common::String gameid = metadata[i]->getVal("gameid");
- Common::String engineid = metadata[i]->getVal("engineid");
- attrs.push_back(_metadataParser._gameInfo[buildQualifiedGameName(engineid, gameid)].company_id);
+ for (Common::Array<LauncherEntry>::const_iterator iter = metadata.begin(); iter != metadata.end(); ++iter) {
+ attrs.push_back(_metadataParser._gameInfo[buildQualifiedGameName(iter->engineid, iter->gameid)].company_id);
}
_list->setGroupHeaderFormat(Common::U32String(""), Common::U32String(""));
// I18N: List grouping when no pubisher is specified
@@ -1168,10 +1187,8 @@ void LauncherSimple::groupEntries(const Common::Array<const Common::ConfigManage
break;
}
case kGroupBySeries: {
- for (uint i = 0; i < metadata.size(); ++i) {
- Common::String gameid = metadata[i]->getVal("gameid");
- Common::String engineid = metadata[i]->getVal("engineid");
- attrs.push_back(_metadataParser._gameInfo[buildQualifiedGameName(engineid, gameid)].series_id);
+ for (Common::Array<LauncherEntry>::const_iterator iter = metadata.begin(); iter != metadata.end(); ++iter) {
+ attrs.push_back(_metadataParser._gameInfo[buildQualifiedGameName(iter->engineid, iter->gameid)].series_id);
}
_list->setGroupHeaderFormat(Common::U32String(""), Common::U32String(""));
// I18N: List group when no game series is specified
@@ -1183,9 +1200,8 @@ void LauncherSimple::groupEntries(const Common::Array<const Common::ConfigManage
break;
}
case kGroupByLanguage: {
- for (uint i = 0; i < metadata.size(); ++i) {
- Common::U32String language = metadata[i]->contains(Common::String("language")) ?
- metadata[i]->getVal(Common::String("language")) : Common::String("");
+ for (Common::Array<LauncherEntry>::const_iterator iter = metadata.begin(); iter != metadata.end(); ++iter) {
+ Common::U32String language = iter->domain->getValOrDefault(Common::String("language"));
attrs.push_back(language);
}
_list->setGroupHeaderFormat(Common::U32String(""), Common::U32String(""));
@@ -1198,9 +1214,8 @@ void LauncherSimple::groupEntries(const Common::Array<const Common::ConfigManage
break;
}
case kGroupByPlatform: {
- for (uint i = 0; i < metadata.size(); ++i) {
- Common::U32String platform = metadata[i]->contains(Common::String("Platform")) ?
- metadata[i]->getVal(Common::String("Platform")) : Common::String("");
+ for (Common::Array<LauncherEntry>::const_iterator iter = metadata.begin(); iter != metadata.end(); ++iter) {
+ Common::U32String platform = iter->domain->getValOrDefault(Common::String("Platform"));
attrs.push_back(platform);
}
_list->setGroupHeaderFormat(Common::U32String(""), Common::U32String(""));
@@ -1315,22 +1330,20 @@ LauncherGrid::LauncherGrid(const Common::String &title, LauncherChooser *chooser
build();
}
-void LauncherGrid::groupEntries(const Common::Array<const Common::ConfigManager::Domain *> &metadata) {
+void LauncherGrid::groupEntries(const Common::Array<LauncherEntry> &metadata) {
Common::U32StringArray attrs;
Common::StringMap metadataNames;
switch (_groupBy) {
case kGroupByFirstLetter: {
- for (uint i = 0; i < metadata.size(); ++i) {
- attrs.push_back(metadata[i]->getValOrDefault("description").substr(0, 1));
+ for (Common::Array<LauncherEntry>::const_iterator iter = metadata.begin(); iter != metadata.end(); ++iter) {
+ attrs.push_back(iter->description.substr(0, 1));
}
_grid->setGroupHeaderFormat(Common::U32String(""), Common::U32String("..."));
break;
}
case kGroupByEngine: {
- for (uint i = 0; i < metadata.size(); ++i) {
- Common::U32String engineid = metadata[i]->contains(Common::String("engineid")) ?
- metadata[i]->getVal(Common::String("engineid")) : Common::String("");
- attrs.push_back(engineid);
+ for (Common::Array<LauncherEntry>::const_iterator iter = metadata.begin(); iter != metadata.end(); ++iter) {
+ attrs.push_back(iter->engineid);
}
_grid->setGroupHeaderFormat(Common::U32String(""), Common::U32String(""));
// I18N: List grouping when no enginr is specified
@@ -1345,26 +1358,9 @@ void LauncherGrid::groupEntries(const Common::Array<const Common::ConfigManager:
}
break;
}
- case kGroupBySeries: {
- for (uint i = 0; i < metadata.size(); ++i) {
- Common::String gameid = metadata[i]->getVal("gameid");
- Common::String engineid = metadata[i]->getVal("engineid");
- attrs.push_back(_metadataParser._gameInfo[buildQualifiedGameName(engineid, gameid)].series_id);
- }
- _grid->setGroupHeaderFormat(Common::U32String(""), Common::U32String(""));
- // I18N: List grouping when no game series is specified
- metadataNames[""] = _("No Series");
- Common::HashMap<Common::String, MetadataSeries, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo>::iterator i = _metadataParser._seriesInfo.begin();
- for (; i != _metadataParser._seriesInfo.end(); ++i) {
- metadataNames[i->_key] = i->_value.name;
- }
- break;
- }
case kGroupByCompany: {
- for (uint i = 0; i < metadata.size(); ++i) {
- Common::String gameid = metadata[i]->getVal("gameid");
- Common::String engineid = metadata[i]->getVal("engineid");
- attrs.push_back(_metadataParser._gameInfo[buildQualifiedGameName(engineid, gameid)].company_id);
+ for (Common::Array<LauncherEntry>::const_iterator iter = metadata.begin(); iter != metadata.end(); ++iter) {
+ attrs.push_back(_metadataParser._gameInfo[buildQualifiedGameName(iter->engineid, iter->gameid)].company_id);
}
_grid->setGroupHeaderFormat(Common::U32String(""), Common::U32String(""));
// I18N: List group when no publisher is specified
@@ -1379,10 +1375,22 @@ void LauncherGrid::groupEntries(const Common::Array<const Common::ConfigManager:
}
break;
}
+ case kGroupBySeries: {
+ for (Common::Array<LauncherEntry>::const_iterator iter = metadata.begin(); iter != metadata.end(); ++iter) {
+ attrs.push_back(_metadataParser._gameInfo[buildQualifiedGameName(iter->engineid, iter->gameid)].series_id);
+ }
+ _grid->setGroupHeaderFormat(Common::U32String(""), Common::U32String(""));
+ // I18N: List grouping when no game series is specified
+ metadataNames[""] = _("No Series");
+ Common::HashMap<Common::String, MetadataSeries, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo>::iterator i = _metadataParser._seriesInfo.begin();
+ for (; i != _metadataParser._seriesInfo.end(); ++i) {
+ metadataNames[i->_key] = i->_value.name;
+ }
+ break;
+ }
case kGroupByLanguage: {
- for (uint i = 0; i < metadata.size(); ++i) {
- Common::U32String language = metadata[i]->contains(Common::String("language")) ?
- metadata[i]->getVal(Common::String("language")) : Common::String("");
+ for (Common::Array<LauncherEntry>::const_iterator iter = metadata.begin(); iter != metadata.end(); ++iter) {
+ Common::U32String language = iter->domain->getValOrDefault(Common::String("language"));
attrs.push_back(language);
}
_grid->setGroupHeaderFormat(Common::U32String(""), Common::U32String(""));
@@ -1395,9 +1403,8 @@ void LauncherGrid::groupEntries(const Common::Array<const Common::ConfigManager:
break;
}
case kGroupByPlatform: {
- for (uint i = 0; i < metadata.size(); ++i) {
- Common::U32String platform = metadata[i]->contains(Common::String("Platform")) ?
- metadata[i]->getVal(Common::String("Platform")) : Common::String("");
+ for (Common::Array<LauncherEntry>::const_iterator iter = metadata.begin(); iter != metadata.end(); ++iter) {
+ Common::U32String platform = iter->domain->getValOrDefault(Common::String("Platform"));
attrs.push_back(platform);
}
_grid->setGroupHeaderFormat(Common::U32String(""), Common::U32String(""));
@@ -1494,56 +1501,12 @@ void LauncherGrid::handleCommand(CommandSender *sender, uint32 cmd, uint32 data)
}
void LauncherGrid::updateListing() {
- Common::Array<const Common::ConfigManager::Domain *> attrs;
-
// Retrieve a list of all games defined in the config file
_domains.clear();
const Common::ConfigManager::DomainMap &domains = ConfMan.getGameDomains();
- // Turn it into a list of pointers
- Common::Array<LauncherEntry> domainList;
- for (Common::ConfigManager::DomainMap::const_iterator iter = domains.begin(); iter != domains.end(); ++iter) {
- // Do not list temporary targets added when starting a game from the command line
- if (iter->_value.contains("id_came_from_command_line"))
- continue;
-
- Common::String description;
- Common::String title;
-
- if (!iter->_value.tryGetVal("description", description)) {
- QualifiedGameDescriptor g = EngineMan.findTarget(iter->_key);
- if (!g.description.empty())
- description = g.description;
- }
-
- Common::String gameid;
- if (!iter->_value.tryGetVal("gameid", gameid))
- gameid = iter->_key;
-
- Common::String engineid;
- engineid = iter->_value.getValOrDefault("engineid");
-
- // Strip platform language from the title.
- Common::String key = buildQualifiedGameName(engineid, gameid);
-
- if (_launcherChooser->getGameList()->contains(key)) {
- title = _launcherChooser->getGameList()->getVal(key);
-
- // This is not reliable
- if (gameid.contains("-demo"))
- title += " (Demo)";
- }
-
- if (description.empty())
- description = Common::String::format("Unknown (target %s, gameid %s)", iter->_key.c_str(), gameid.c_str());
-
- if (title.empty())
- title = description;
- if (!description.empty())
- domainList.push_back(LauncherEntry(iter->_key, description, title, &iter->_value));
- }
- // Now sort the list in dictionary order
- Common::sort(domainList.begin(), domainList.end(), LauncherEntryComparator());
+ // Turn it into a sorted list of entries
+ Common::Array<LauncherEntry> domainList = generateEntries(domains, _launcherChooser->getGameList());
Common::Array<GridItemInfo> gridList;
@@ -1558,14 +1521,14 @@ void LauncherGrid::updateListing() {
iter->domain->tryGetVal("language", language);
iter->domain->tryGetVal("platform", platform);
iter->domain->tryGetVal("extra", extra);
- attrs.push_back(iter->domain);
gridList.push_back(GridItemInfo(k++, engineid, gameid, iter->title, iter->description, extra, Common::parseLanguage(language), Common::parsePlatform(platform)));
+ _domains.push_back(iter->key);
}
const int oldSel = _grid->getSelected();
_grid->setEntryList(&gridList);
- groupEntries(attrs);
+ groupEntries(domainList);
if (oldSel < (int)gridList.size() && oldSel >= 0)
_grid->setSelected(oldSel); // Restore the old selection
@@ -1573,11 +1536,6 @@ void LauncherGrid::updateListing() {
// Select the last entry if the list has been reduced
_grid->setSelected(gridList.size() - 1);
updateButtons();
-
- // And fill out our structures
- for (Common::Array<LauncherEntry>::const_iterator iter = domainList.begin(); iter != domainList.end(); ++iter) {
- _domains.push_back(iter->key);
- }
}
void LauncherGrid::updateButtons() {
diff --git a/gui/launcher.h b/gui/launcher.h
index 55f12b37af3..df08cf33890 100644
--- a/gui/launcher.h
+++ b/gui/launcher.h
@@ -204,7 +204,7 @@ public:
int runModal();
void selectLauncher();
- Common::StringMap *getGameList() { return &_games; }
+ const Common::StringMap &getGameList() { return _games; }
private:
void genGameList();
Commit: 1af0e814e19aff84766d3eeddd2ee3953974f08f
https://github.com/scummvm/scummvm/commit/1af0e814e19aff84766d3eeddd2ee3953974f08f
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2022-10-08T16:55:56+02:00
Commit Message:
GUI: In grid launcher group by title to match what is displayed
Changed paths:
gui/launcher.cpp
diff --git a/gui/launcher.cpp b/gui/launcher.cpp
index 7045503b744..c7a6b951398 100644
--- a/gui/launcher.cpp
+++ b/gui/launcher.cpp
@@ -1336,7 +1336,7 @@ void LauncherGrid::groupEntries(const Common::Array<LauncherEntry> &metadata) {
switch (_groupBy) {
case kGroupByFirstLetter: {
for (Common::Array<LauncherEntry>::const_iterator iter = metadata.begin(); iter != metadata.end(); ++iter) {
- attrs.push_back(iter->description.substr(0, 1));
+ attrs.push_back(iter->title.substr(0, 1));
}
_grid->setGroupHeaderFormat(Common::U32String(""), Common::U32String("..."));
break;
More information about the Scummvm-git-logs
mailing list