[Scummvm-git-logs] scummvm master -> 22711c9d0d9386844b73bd5aae9a7bb10a86439f
SupSuper
noreply at scummvm.org
Sat Apr 2 04:52:17 UTC 2022
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
22711c9d0d GUI: Show full game description in grid view tooltip
Commit: 22711c9d0d9386844b73bd5aae9a7bb10a86439f
https://github.com/scummvm/scummvm/commit/22711c9d0d9386844b73bd5aae9a7bb10a86439f
Author: SupSuper (supsuper at gmail.com)
Date: 2022-04-02T05:52:06+01:00
Commit Message:
GUI: Show full game description in grid view tooltip
Changed paths:
gui/launcher.cpp
gui/widgets/grid.cpp
gui/widgets/grid.h
diff --git a/gui/launcher.cpp b/gui/launcher.cpp
index 20c23b6cfa9..beff3992116 100644
--- a/gui/launcher.cpp
+++ b/gui/launcher.cpp
@@ -343,10 +343,11 @@ void LauncherDialog::close() {
struct LauncherEntry {
Common::String key;
Common::String description;
+ Common::String title;
const Common::ConfigManager::Domain *domain;
- LauncherEntry(Common::String k, Common::String d, const Common::ConfigManager::Domain *v) {
- key = k; description = d, domain = v;
+ 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) {
}
};
@@ -1056,7 +1057,7 @@ void LauncherSimple::updateListing() {
}
if (!description.empty())
- domainList.push_back(LauncherEntry(iter->_key, description, &iter->_value));
+ domainList.push_back(LauncherEntry(iter->_key, description, description, &iter->_value));
}
// Now sort the list in dictionary order
@@ -1476,6 +1477,7 @@ void LauncherGrid::updateListing() {
continue;
Common::String description;
+ Common::String title;
if (!iter->_value.tryGetVal("description", description)) {
QualifiedGameDescriptor g = EngineMan.findTarget(iter->_key);
@@ -1483,6 +1485,11 @@ void LauncherGrid::updateListing() {
description = g.description;
}
+ // Strip platform language from the title.
+ size_t extraPos = description.findLastOf("(");
+ if (extraPos != Common::String::npos)
+ title = Common::String(description.c_str(), extraPos);
+
if (description.empty()) {
Common::String gameid;
if (!iter->_value.tryGetVal("gameid", gameid)) {
@@ -1492,13 +1499,10 @@ void LauncherGrid::updateListing() {
description = Common::String::format("Unknown (target %s, gameid %s)", iter->_key.c_str(), gameid.c_str());
}
- // Strip platform language from the title.
- size_t extraPos = description.findFirstOf("(");
- if (extraPos != Common::String::npos)
- description = Common::String(description.c_str(), extraPos);
-
+ if (title.empty())
+ title = description;
if (!description.empty())
- domainList.push_back(LauncherEntry(iter->_key, description, &iter->_value));
+ domainList.push_back(LauncherEntry(iter->_key, description, title, &iter->_value));
}
// Now sort the list in dictionary order
@@ -1509,7 +1513,6 @@ void LauncherGrid::updateListing() {
int k = 0;
for (Common::Array<LauncherEntry>::const_iterator iter = domainList.begin(); iter != domainList.end(); ++iter) {
Common::String gameid = iter->domain->getVal("gameid");
- Common::String title = iter->description;
Common::String engineid = "UNK";
Common::String language = "XX";
Common::String platform;
@@ -1517,7 +1520,7 @@ void LauncherGrid::updateListing() {
iter->domain->tryGetVal("language", language);
iter->domain->tryGetVal("platform", platform);
attrs.push_back(iter->domain);
- gridList.push_back(GridItemInfo(k++, engineid, gameid, title, Common::parseLanguage(language), Common::parsePlatform(platform)));
+ gridList.push_back(GridItemInfo(k++, engineid, gameid, iter->title, iter->description, Common::parseLanguage(language), Common::parsePlatform(platform)));
}
_grid->setEntryList(&gridList);
diff --git a/gui/widgets/grid.cpp b/gui/widgets/grid.cpp
index bb26d878045..bea7a69c07a 100644
--- a/gui/widgets/grid.cpp
+++ b/gui/widgets/grid.cpp
@@ -56,7 +56,7 @@ void GridItemWidget::updateThumb() {
void GridItemWidget::update() {
if (_activeEntry) {
updateThumb();
- setTooltip(_activeEntry->title);
+ setTooltip(_activeEntry->description);
markAsDirty();
}
}
diff --git a/gui/widgets/grid.h b/gui/widgets/grid.h
index ba9da46a212..427474de99a 100644
--- a/gui/widgets/grid.h
+++ b/gui/widgets/grid.h
@@ -52,6 +52,7 @@ struct GridItemInfo {
Common::String engineid;
Common::String gameid;
Common::String title;
+ Common::String description;
Common::String thumbPath;
// Generic attribute value, may be any piece of metadata
Common::String attribute;
@@ -60,14 +61,14 @@ struct GridItemInfo {
Common::Rect rect;
- GridItemInfo(int id, const Common::String &eid, const Common::String &gid
- ,const Common::String &t, Common::Language l, Common::Platform p)
- : entryID(id), gameid(gid), engineid(eid), title(t), language(l), platform(p), isHeader(false) {
+ GridItemInfo(int id, const Common::String &eid, const Common::String &gid, const Common::String &t,
+ const Common::String &d, Common::Language l, Common::Platform p)
+ : entryID(id), gameid(gid), engineid(eid), title(t), description(d), language(l), platform(p), isHeader(false) {
thumbPath = Common::String::format("icons/%s-%s.png", engineid.c_str(), gameid.c_str());
}
- GridItemInfo(const Common::String &groupHeader, int groupID) : title(groupHeader), isHeader(true),
- entryID(groupID), language(Common::UNK_LANG), platform(Common::kPlatformUnknown) {
+ GridItemInfo(const Common::String &groupHeader, int groupID) : title(groupHeader), description(groupHeader),
+ isHeader(true), entryID(groupID), language(Common::UNK_LANG), platform(Common::kPlatformUnknown) {
thumbPath = Common::String("");
}
};
More information about the Scummvm-git-logs
mailing list