switching "set watching" and "set completed" to "set unwatched" if the status is watching or completed

This commit is contained in:
Bernd 2025-07-20 14:57:45 +05:00
parent de63ffc509
commit 307cd2fd43

View File

@ -98,8 +98,8 @@ Global Shortcuts:
Table-specific Shortcuts (apply to selected entry): Table-specific Shortcuts (apply to selected entry):
- Delete: Delete an anime - Delete: Delete an anime
- E: Edit - E: Edit
- W: Set to watching - W: Set to watching / Set to unwatched (toggle if watching)
- C: Set to completed - C: Set to completed / Set to unwatched (toggle if completed)
""") """)
layout.addWidget(shortcuts_text) layout.addWidget(shortcuts_text)
buttons = QDialogButtonBox(QDialogButtonBox.Ok) buttons = QDialogButtonBox(QDialogButtonBox.Ok)
@ -119,6 +119,8 @@ class CustomTableWidget(QTableWidget):
if selected_rows: if selected_rows:
row = selected_rows[0].row() row = selected_rows[0].row()
anime_id = int(self.item(row, 0).text()) anime_id = int(self.item(row, 0).text())
status_col = 4 if self.is_pre else 3
status = self.item(row, status_col).text()
if key == Qt.Key_Delete: if key == Qt.Key_Delete:
self.parent_window.delete_anime(anime_id) self.parent_window.delete_anime(anime_id)
return return
@ -126,10 +128,12 @@ class CustomTableWidget(QTableWidget):
self.parent_window.edit_anime(anime_id) self.parent_window.edit_anime(anime_id)
return return
elif key == Qt.Key_W: elif key == Qt.Key_W:
self.parent_window.change_status(anime_id, 'watching') new_status = 'watching' if status == 'unwatched' else 'unwatched'
self.parent_window.change_status(anime_id, new_status)
return return
elif key == Qt.Key_C: elif key == Qt.Key_C:
self.parent_window.change_status(anime_id, 'completed') new_status = 'completed' if status == 'unwatched' else 'unwatched'
self.parent_window.change_status(anime_id, new_status)
return return
super().keyPressEvent(event) super().keyPressEvent(event)
@ -447,14 +451,25 @@ class AnimeTracker(QMainWindow):
del_btn.clicked.connect(lambda: self.delete_anime(anime_id)) del_btn.clicked.connect(lambda: self.delete_anime(anime_id))
layout.addWidget(del_btn) layout.addWidget(del_btn)
# Status buttons # Status buttons
for st in ['unwatched', 'watching', 'completed']: if status == 'unwatched':
btn = QToolButton() # Add W and C
btn.setText(st[0].upper()) btn_w = QToolButton()
btn.setToolTip(f"Set to {st}") btn_w.setText("W")
if st == status: btn_w.setToolTip("Set to watching")
btn.setEnabled(False) btn_w.clicked.connect(lambda: self.change_status(anime_id, 'watching'))
btn.clicked.connect(lambda _, s=st: self.change_status(anime_id, s)) layout.addWidget(btn_w)
layout.addWidget(btn) btn_c = QToolButton()
btn_c.setText("C")
btn_c.setToolTip("Set to completed")
btn_c.clicked.connect(lambda: self.change_status(anime_id, 'completed'))
layout.addWidget(btn_c)
else:
# Add U
btn_u = QToolButton()
btn_u.setText("U")
btn_u.setToolTip("Set to unwatched")
btn_u.clicked.connect(lambda: self.change_status(anime_id, 'unwatched'))
layout.addWidget(btn_u)
return widget return widget
def add_anime(self): def add_anime(self):