PSP Sync: show friendly theme/DLC names instead of raw filenames
This commit is contained in:
+10
-3
@@ -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
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user