PSP Sync: show friendly theme/DLC names instead of raw filenames

This commit is contained in:
2026-09-08 22:51:36 -04:00
parent 46c675ce79
commit 62ce4b1913
2 changed files with 27 additions and 11 deletions
+10 -3
View File
@@ -2603,6 +2603,7 @@ class PspSyncPage(QWidget):
self._library_items = []
self._lib_raw = {}
self._lib_norm = {}
self._lib_path_name = {}
self._gen = 0
self._umd_gen = 0
self._umd_iso = None
@@ -2694,15 +2695,20 @@ class PspSyncPage(QWidget):
self._library_items = list(items or [])
self._lib_raw = {}
self._lib_norm = {}
self._lib_path_name = {}
for it in self._library_items:
label = it.get("canonical") or it.get("name") or ""
if not label:
continue
if label:
stem = Path(label).stem
self._lib_raw.setdefault(stem.lower(), it)
n = matcher.normalize_name(stem)
if n:
self._lib_norm.setdefault(n, it)
# Map the on-disk filename to the friendly name for themes/DLC
# (the PSP only stores the raw file, so resolve names by filename).
p = it.get("path") or ""
if p:
self._lib_path_name.setdefault(Path(p).name.lower(), label)
self._filter_sync()
self._populate(self._inventory)
@@ -3075,8 +3081,9 @@ class PspSyncPage(QWidget):
table.setItem(row, 3, QTableWidgetItem(added))
table.setItem(row, 4, NumericItem(f"{size / (1024 * 1024):.1f} MB" if size else "", size))
elif kind == "dlc":
friendly = self._lib_path_name.get((it.get("name") or "").lower())
table.setItem(row, 1, QTableWidgetItem(it.get("id") or ""))
table.setItem(row, 2, name)
table.setItem(row, 2, QTableWidgetItem(friendly or it.get("name") or ""))
table.setItem(row, 3, QTableWidgetItem(added))
table.setItem(row, 4, NumericItem(f"{size / (1024 * 1024):.1f} MB" if size else "", size))
else:
+12 -3
View File
@@ -222,7 +222,7 @@ def _pkg_items(root):
def _theme_items(root):
"""Installed themes (``PSP/THEME/*.ptf``)."""
"""Installed themes (``PSP/THEME/*.ptf``), named from the PTF header."""
items = []
theme_dir = root / "PSP" / "THEME"
if theme_dir.is_dir():
@@ -231,8 +231,17 @@ def _theme_items(root):
except OSError:
return items
for path in entries:
if path.is_file() and path.suffix.lower() == ".ptf":
items.append(_file_item(path, "theme"))
if not path.is_file() or path.suffix.lower() != ".ptf":
continue
item = _file_item(path, "theme")
try:
from . import theme as theme_mod
name = theme_mod.ptf_name(path)
except Exception: # noqa: BLE001
name = ""
if name:
item["name"] = name
items.append(item)
return items