WIP V3: fix editing headers rows

This commit is contained in:
Keith Edmunds 2023-11-08 18:34:10 +00:00
parent b3262b2ede
commit 6d648a56b7
2 changed files with 20 additions and 16 deletions

View File

@ -686,20 +686,25 @@ class PlaylistModel(QAbstractTableModel):
) )
return False return False
if column == Col.TITLE.value or column == Col.ARTIST.value: if plr.track_id:
track = session.get(Tracks, plr.track_id) if column == Col.TITLE.value or column == Col.ARTIST.value:
if not track: track = session.get(Tracks, plr.track_id)
print(f"Error retreiving track: {plr=}") if not track:
return False print(f"Error retreiving track: {plr=}")
if column == Col.TITLE.value: return False
track.title = str(value) if column == Col.TITLE.value:
elif column == Col.ARTIST.value: track.title = str(value)
track.artist = str(value) elif column == Col.ARTIST.value:
else: track.artist = str(value)
print(f"Error updating track: {column=}, {value=}") else:
return False print(f"Error updating track: {column=}, {value=}")
elif column == Col.NOTE.value: return False
plr.note = str(value) elif column == Col.NOTE.value:
plr.note = str(value)
else:
# This is a header row
if column == HEADER_NOTES_COLUMN:
plr.note = str(value)
# Flush changes before refreshing data # Flush changes before refreshing data
session.flush() session.flush()

View File

@ -113,7 +113,7 @@ class EscapeDelegate(QStyledItemDelegate):
return True return True
elif key_event.key() == Qt.Key.Key_Escape: elif key_event.key() == Qt.Key.Key_Escape:
discard_edits = QMessageBox.question( discard_edits = QMessageBox.question(
cast(QWidget, self), "Abandon edit", "Discard changes?" cast(QWidget, self.parent()), "Abandon edit", "Discard changes?"
) )
if discard_edits == QMessageBox.StandardButton.Yes: if discard_edits == QMessageBox.StandardButton.Yes:
self.closeEditor.emit(editor) self.closeEditor.emit(editor)
@ -1064,7 +1064,6 @@ class PlaylistTab(QTableView):
header_row = False header_row = False
model = cast(PlaylistModel, self.model()) model = cast(PlaylistModel, self.model())
if model: if model:
header_row = model.is_header_row(row_number) header_row = model.is_header_row(row_number)
# current = row_number == self._get_current_track_row_number() # current = row_number == self._get_current_track_row_number()
# next_row = row_number == self._get_next_track_row_number() # next_row = row_number == self._get_next_track_row_number()