mirror of
https://github.com/modernw/AppInstallerForWin8.git
synced 2026-04-21 18:40:14 +10:00
Updates for WebUI:
· [Important] Fixed the destruction issue with PriReader (caused by incorrect pointer types leading to unexecuted object destruction tasks). · [Important] Added a program execution selection interface for packages containing multiple applications (still using WebUI). Issue: Since the selection window is set to close when losing focus, checking the "Launch when ready" option after successful installation causes the pop-up window to disappear when a Toast notification appears (due to focus loss). Currently, the selection window can only be displayed by clicking a button. · [Optimization] Reduced the creation of PriReader objects to lower memory and storage consumption. (Translated by DeepSeek)
This commit is contained in:
@@ -89,9 +89,40 @@ struct PackageInfomation
|
||||
this->properties.description = reader.getPropertyDescription ();
|
||||
this->properties.publisher = reader.getPropertyPublisher ();
|
||||
}
|
||||
this->properties.logoBase64 = GetLogoBase64FromReader (reader, &this->properties.logoStream);
|
||||
this->properties.logoBase64 = GetLogoBase64FromReader (reader, &this->properties.logoStream, &pri);
|
||||
this->prerequisites.osMinVersion = reader.getPrerequisiteOSMinVersion ();
|
||||
reader.getApplications (this->applications);
|
||||
for (auto &it : this->applications)
|
||||
{
|
||||
for (auto &sit : it)
|
||||
{
|
||||
if (LabelEqual (sit.first, L"AppUserModelID")) continue;
|
||||
else if (LabelEqual (sit.first, L"Id")) continue;
|
||||
else if (LabelEqual (sit.first, L"DisplayName"))
|
||||
{
|
||||
if (isMsResourceLabel (sit.second))
|
||||
{
|
||||
std::wstring temp (L"");
|
||||
temp += pri.findStringValue (sit.second);
|
||||
it [L"DisplayName"] = temp;
|
||||
}
|
||||
}
|
||||
else if (LabelEqual (sit.first, L"ShortName"))
|
||||
{
|
||||
if (isMsResourceLabel (sit.second))
|
||||
{
|
||||
std::wstring temp (L"");
|
||||
temp += pri.findStringValue (sit.second);
|
||||
it [L"ShortName"] = temp;
|
||||
}
|
||||
}
|
||||
else if (LabelEqual (sit.first, L"Square44x44Logo"))
|
||||
{
|
||||
sit.second = pri.findFilePathValue (sit.second);
|
||||
it [strlabel (L"Square44x44LogoBase64")] = GetBase64FromPathW (reader, sit.second.c_str (), NULL, &pri);
|
||||
}
|
||||
}
|
||||
}
|
||||
reader.getCapabilities (capabilities);
|
||||
reader.getDependencies (dependencies);
|
||||
return reader.isAvailable ();
|
||||
|
||||
Reference in New Issue
Block a user