Mode esborrar des del menú: tria un joc descarregat i s'elimina
This commit is contained in:
@@ -40,6 +40,7 @@ class GameRow(QFrame):
|
||||
self.root = root
|
||||
self._update_available = False
|
||||
self._busy = False
|
||||
self._delete_mode = False
|
||||
self.setObjectName("gameRow")
|
||||
self.setFrameShape(QFrame.StyledPanel)
|
||||
# La fila és un botó: cursor de mà i ressaltat en passar el ratolí.
|
||||
@@ -118,6 +119,11 @@ class GameRow(QFrame):
|
||||
self._update_available = available
|
||||
self.refresh()
|
||||
|
||||
def set_delete_mode(self, on: bool) -> None:
|
||||
"""Activa/desactiva el mode esborrar (canvia el text d'acció a 'Esborra')."""
|
||||
self._delete_mode = on
|
||||
self.refresh()
|
||||
|
||||
def refresh(self) -> None:
|
||||
"""Recarrega icona, descripció i estat des de la cache local."""
|
||||
meta = load_meta(self.root, self.game.id)
|
||||
@@ -143,20 +149,31 @@ class GameRow(QFrame):
|
||||
)
|
||||
|
||||
def _set_status(self, meta: GameMeta) -> None:
|
||||
if not self.is_installed():
|
||||
installed = self.is_installed()
|
||||
|
||||
# Text d'estat (independent del mode esborrar).
|
||||
if not installed:
|
||||
self.status_label.setText("No descarregat")
|
||||
self.status_label.setStyleSheet("color: #cc8855; font-size: 11px;")
|
||||
self._set_action("Descarrega", "#4a90d9")
|
||||
elif self._update_available:
|
||||
self.status_label.setText("⬆ Actualització disponible")
|
||||
self.status_label.setStyleSheet(
|
||||
"color: #e0a030; font-weight: bold; font-size: 11px;"
|
||||
)
|
||||
self._set_action("Actualitza", "#e0a030")
|
||||
else:
|
||||
ver = f" {meta.version}" if meta.version else ""
|
||||
self.status_label.setText(f"Descarregat{ver}")
|
||||
self.status_label.setStyleSheet("color: #6fae6f; font-size: 11px;")
|
||||
|
||||
# Text d'acció (què fa el clic).
|
||||
if self._delete_mode:
|
||||
# Només es pot esborrar el que està descarregat.
|
||||
self._set_action("Esborra", "#d9534f") if installed else self.action_label.clear()
|
||||
elif not installed:
|
||||
self._set_action("Descarrega", "#4a90d9")
|
||||
elif self._update_available:
|
||||
self._set_action("Actualitza", "#e0a030")
|
||||
else:
|
||||
self._set_action("Juga", "#6fae6f")
|
||||
|
||||
def _set_action(self, text: str, color: str) -> None:
|
||||
|
||||
Reference in New Issue
Block a user