diff --git a/app/playlistmodel.py b/app/playlistmodel.py index 482e8a2..33b4d6a 100644 --- a/app/playlistmodel.py +++ b/app/playlistmodel.py @@ -686,20 +686,25 @@ class PlaylistModel(QAbstractTableModel): ) return False - if column == Col.TITLE.value or column == Col.ARTIST.value: - track = session.get(Tracks, plr.track_id) - if not track: - print(f"Error retreiving track: {plr=}") - return False - if column == Col.TITLE.value: - track.title = str(value) - elif column == Col.ARTIST.value: - track.artist = str(value) - else: - print(f"Error updating track: {column=}, {value=}") - return False - elif column == Col.NOTE.value: - plr.note = str(value) + if plr.track_id: + if column == Col.TITLE.value or column == Col.ARTIST.value: + track = session.get(Tracks, plr.track_id) + if not track: + print(f"Error retreiving track: {plr=}") + return False + if column == Col.TITLE.value: + track.title = str(value) + elif column == Col.ARTIST.value: + track.artist = str(value) + else: + print(f"Error updating track: {column=}, {value=}") + return False + 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 session.flush() diff --git a/app/playlists.py b/app/playlists.py index c70571a..f30da15 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -113,7 +113,7 @@ class EscapeDelegate(QStyledItemDelegate): return True elif key_event.key() == Qt.Key.Key_Escape: 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: self.closeEditor.emit(editor) @@ -1064,7 +1064,6 @@ class PlaylistTab(QTableView): header_row = False model = cast(PlaylistModel, self.model()) if model: - header_row = model.is_header_row(row_number) # current = row_number == self._get_current_track_row_number() # next_row = row_number == self._get_next_track_row_number()