gui: show the source filename in Library and Store details

Add a muted, selectable filename line under the title in both details
panels, with the full path as its tooltip (archive name in the Store,
disc/ISO filename in the Library).
This commit is contained in:
2026-09-07 20:05:31 -04:00
parent 2c6b07e286
commit 196e3ac82f
+20
View File
@@ -611,6 +611,12 @@ class GameDetailsPanel(QWidget):
self.subtitle.setStyleSheet("color: #999;") self.subtitle.setStyleSheet("color: #999;")
self.layout.addWidget(self.subtitle) self.layout.addWidget(self.subtitle)
self.filename = QLabel("")
self.filename.setStyleSheet("color: #777;")
self.filename.setWordWrap(True)
self.filename.setTextInteractionFlags(Qt.TextSelectableByMouse)
self.layout.addWidget(self.filename)
self.layout.addSpacing(8) self.layout.addSpacing(8)
self.meta_grid = QGridLayout() self.meta_grid = QGridLayout()
self.meta_grid.setHorizontalSpacing(14) self.meta_grid.setHorizontalSpacing(14)
@@ -676,6 +682,9 @@ class GameDetailsPanel(QWidget):
self.system = item.get("system") self.system = item.get("system")
self._ps1_kind = item.get("ps1_kind") self._ps1_kind = item.get("ps1_kind")
path = item.get("path") or "" path = item.get("path") or ""
self.filename.setText(Path(path).name if path else "")
self.filename.setToolTip(path)
self.filename.setVisible(bool(path))
is_ps1 = item.get("system") == "ps1" is_ps1 = item.get("system") == "ps1"
is_ps1_disc = is_ps1 and item.get("ps1_kind") == "disc" is_ps1_disc = is_ps1 and item.get("ps1_kind") == "disc"
self.play_btn.setEnabled( self.play_btn.setEnabled(
@@ -1412,6 +1421,12 @@ class StoreDetailsPanel(QWidget):
self.subtitle.setStyleSheet("color: #999;") self.subtitle.setStyleSheet("color: #999;")
self.layout.addWidget(self.subtitle) self.layout.addWidget(self.subtitle)
self.filename = QLabel("")
self.filename.setStyleSheet("color: #777;")
self.filename.setWordWrap(True)
self.filename.setTextInteractionFlags(Qt.TextSelectableByMouse)
self.layout.addWidget(self.filename)
self.layout.addSpacing(8) self.layout.addSpacing(8)
self.meta_grid = QGridLayout() self.meta_grid = QGridLayout()
self.meta_grid.setHorizontalSpacing(14) self.meta_grid.setHorizontalSpacing(14)
@@ -1445,6 +1460,11 @@ class StoreDetailsPanel(QWidget):
def set_item(self, item): def set_item(self, item):
self._item = item self._item = item
fpath = item.get("path") or ""
fname = Path(fpath).name if fpath else (item.get("name") or "")
self.filename.setText(fname)
self.filename.setToolTip(fpath or fname)
self.filename.setVisible(bool(fname))
self.title.setText(item.get("title_override") or store.display_name(item["name"])) self.title.setText(item.get("title_override") or store.display_name(item["name"]))
parts = [] parts = []
size = item.get("size") size = item.get("size")