[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