Loosen applist XML validation to accept empty app names

This matches the behavior of the Android and iOS clients.

Fixes #1921
This commit is contained in:
Cameron Gutman
2026-06-28 12:18:42 -05:00
parent 5034a324b4
commit cdacb3d28d
2 changed files with 13 additions and 2 deletions
+3 -1
View File
@@ -25,7 +25,9 @@ public:
bool isInitialized()
{
return id != 0 && !name.isEmpty();
// We use isNull() instead of isEmpty() here because we want
// to detect cases where the name is unassigned, not empty.
return id != 0 && !name.isNull();
}
void
+10 -1
View File
@@ -322,7 +322,16 @@ NvHTTP::getAppList()
}
else if (!apps.isEmpty()) {
if (XML_NAME_EQUALS(name, "AppTitle")) {
apps.last().name = xmlReader.readElementText();
// If an app has no name, Sunshine may send us <AppTitle/>,
// which readElementText() returns as a null QString.
// We want to treat this as an empty QString instead, so we
// will explicitly convert it. An empty string will satisfy
// NvApp's isInitialized() check.
QString name = xmlReader.readElementText();
if (name.isNull()) {
name = "";
}
apps.last().name = name;
}
else if (XML_NAME_EQUALS(name, "ID")) {
apps.last().id = xmlReader.readElementText().toInt();