Add filename to multi pkg installation

Some packages are indistinguishable otherwise
This commit is contained in:
Megamouse 2021-01-12 13:16:01 +01:00
parent dd41ee68de
commit 270d602a26
1 changed files with 15 additions and 18 deletions

View File

@ -26,12 +26,20 @@ pkg_install_dialog::pkg_install_dialog(const QStringList& paths, game_compatibil
for (const QString& path : paths) for (const QString& path : paths)
{ {
const compat::package_info info = game_compatibility::GetPkgInfo(path, compat); const compat::package_info info = game_compatibility::GetPkgInfo(path, compat);
const QFileInfo file_info(path);
// We have to build our complicated localized string in some annoying manner // We have to build our complicated localized string in some annoying manner
QString accumulated_info; QString accumulated_info;
QString additional_info;
QString tooltip; QString tooltip;
const auto append_comma = [&accumulated_info]()
{
if (!accumulated_info.isEmpty())
{
accumulated_info += ", ";
}
};
if (!info.title_id.isEmpty()) if (!info.title_id.isEmpty())
{ {
accumulated_info = info.title_id; accumulated_info = info.title_id;
@ -39,10 +47,7 @@ pkg_install_dialog::pkg_install_dialog(const QStringList& paths, game_compatibil
if (info.type != compat::package_type::other) if (info.type != compat::package_type::other)
{ {
if (!accumulated_info.isEmpty()) append_comma();
{
accumulated_info += ", ";
}
if (info.type == compat::package_type::dlc) if (info.type == compat::package_type::dlc)
{ {
@ -55,19 +60,13 @@ pkg_install_dialog::pkg_install_dialog(const QStringList& paths, game_compatibil
} }
else if (!info.local_cat.isEmpty()) else if (!info.local_cat.isEmpty())
{ {
if (!accumulated_info.isEmpty()) append_comma();
{
accumulated_info += ", ";
}
accumulated_info += tr("%0", "Package type info").arg(info.local_cat); accumulated_info += tr("%0", "Package type info").arg(info.local_cat);
} }
if (!info.version.isEmpty()) if (!info.version.isEmpty())
{ {
if (!accumulated_info.isEmpty()) append_comma();
{
accumulated_info += ", ";
}
accumulated_info += tr("v.%0", "Version info").arg(info.version); accumulated_info += tr("v.%0", "Version info").arg(info.version);
} }
@ -80,12 +79,10 @@ pkg_install_dialog::pkg_install_dialog(const QStringList& paths, game_compatibil
tooltip = tr("Changelog:\n\n%0", "Changelog info").arg(info.changelog); tooltip = tr("Changelog:\n\n%0", "Changelog info").arg(info.changelog);
} }
if (!accumulated_info.isEmpty()) append_comma();
{ accumulated_info += file_info.fileName();
additional_info = tr(" (%0)", "Additional info").arg(accumulated_info);
}
const QString text = tr("%0%1", "Package text").arg(info.title).arg(additional_info); const QString text = tr("<b>%0</b> (%2)", "Package text").arg(info.title.simplified()).arg(accumulated_info);
QListWidgetItem* item = new numbered_widget_item(text, m_dir_list); QListWidgetItem* item = new numbered_widget_item(text, m_dir_list);
item->setData(Roles::FullPathRole, info.path); item->setData(Roles::FullPathRole, info.path);