WIP V3: remove references to HEADER_NOTES_COLUMN in playlists.py

This commit is contained in:
Keith Edmunds 2023-11-12 22:36:17 +00:00
parent 0f77cef37a
commit 0d2dad9f3c

View File

@ -55,7 +55,7 @@ if TYPE_CHECKING:
from musicmuster import Window from musicmuster import Window
from playlistmodel import PlaylistModel from playlistmodel import PlaylistModel
HEADER_NOTES_COLUMN = 2 # HEADER_NOTES_COLUMN = 2
class EscapeDelegate(QStyledItemDelegate): class EscapeDelegate(QStyledItemDelegate):
@ -1369,18 +1369,18 @@ class PlaylistTab(QTableView):
return self._get_row_userdata(row_number, self.ROW_LAST_PLAYED) return self._get_row_userdata(row_number, self.ROW_LAST_PLAYED)
def _get_row_note(self, row_number: int) -> str: # def _get_row_note(self, row_number: int) -> str:
"""Return note on this row_number or null string if none""" # """return note on this row_number or null string if none"""
track_id = self._get_row_track_id(row_number) # track_id = self._get_row_track_id(row_number)
if track_id: # if track_id:
item_note = self.item(row_number, ROW_NOTES) # item_note = self.item(row_number, row_notes)
else: # else:
item_note = self.item(row_number, HEADER_NOTES_COLUMN) # item_note = self.item(row_number, header_notes_column)
if not item_note: # if not item_note:
return "" # return ""
return item_note.text() # return item_note.text()
def _get_row_path(self, row_number: int) -> str: def _get_row_path(self, row_number: int) -> str:
""" """
@ -1678,47 +1678,47 @@ class PlaylistTab(QTableView):
return None return None
def _remove_track(self, row_number: int) -> None: # def _remove_track(self, row_number: int) -> None:
"""Remove track from row, making it a section header""" # """Remove track from row, making it a section header"""
# Get confirmation # # Get confirmation
if not ask_yes_no( # if not ask_yes_no(
"Remove music", "Really remove the music track from this row?" # "Remove music", "Really remove the music track from this row?"
): # ):
return # return
# Update playlist_rows record # # Update playlist_rows record
with Session() as session: # with Session() as session:
plr = self._get_row_plr(session, row_number) # plr = self._get_row_plr(session, row_number)
if not plr: # if not plr:
return # return
plr.track_id = None # plr.track_id = None
# We can't have null text # # We can't have null text
if not plr.note: # if not plr.note:
plr.note = Config.TEXT_NO_TRACK_NO_NOTE # plr.note = Config.TEXT_NO_TRACK_NO_NOTE
session.flush() # session.flush()
# Clear track text items # # Clear track text items
for i in range(2, len(columns)): # for i in range(2, len(columns)):
_ = self._set_item_text(row_number, i, "") # _ = self._set_item_text(row_number, i, "")
# Remove row duration # # Remove row duration
self._set_row_duration(row_number, 0) # self._set_row_duration(row_number, 0)
# Remove row start gap # # Remove row start gap
self._set_row_start_gap(row_number, None) # self._set_row_start_gap(row_number, None)
# Remote track_id from row # # Remote track_id from row
_ = self._set_row_userdata(row_number, self.ROW_TRACK_ID, 0) # _ = self._set_row_userdata(row_number, self.ROW_TRACK_ID, 0)
# Span the rows # # Span the rows
self.setSpan(row_number, HEADER_NOTES_COLUMN, 1, len(columns) - 1) # self.setSpan(row_number, HEADER_NOTES_COLUMN, 1, len(columns) - 1)
# Set note text in correct column for section head # # Set note text in correct column for section head
self._set_row_header_text(session, row_number, plr.note) # self._set_row_header_text(session, row_number, plr.note)
self.clear_selection() # self.clear_selection()
# Save playlist to ensure correct detection of new header # # Save playlist to ensure correct detection of new header
# row # # row
self.save_playlist(session) # self.save_playlist(session)
# Set track start/end times after track list is populated # # Set track start/end times after track list is populated
self._update_start_end_times(session) # self._update_start_end_times(session)
def _reorder_rows(self, source_row_numbers: List[int]) -> None: def _reorder_rows(self, source_row_numbers: List[int]) -> None:
""" """
@ -2107,38 +2107,38 @@ class PlaylistTab(QTableView):
return self._set_item_text(row_number, END_TIME, time_str) return self._set_item_text(row_number, END_TIME, time_str)
def _set_row_header_text( # def _set_row_header_text(
self, session: scoped_session, row_number: int, text: str # self, session: scoped_session, row_number: int, text: str
) -> None: # ) -> None:
""" # """
Set header text and row colour # Set header text and row colour
""" # """
# Sanity check: this should be a header row and thus not have a # # Sanity check: this should be a header row and thus not have a
# track associate # # track associate
if self._get_row_track_id(row_number): # if self._get_row_track_id(row_number):
if os.environ["MM_ENV"] == "PRODUCTION": # if os.environ["MM_ENV"] == "PRODUCTION":
send_mail( # send_mail(
Config.ERRORS_TO, # Config.ERRORS_TO,
Config.ERRORS_FROM, # Config.ERRORS_FROM,
"playlists:_set_row_header_text() called on track row", # "playlists:_set_row_header_text() called on track row",
stackprinter.format(), # stackprinter.format(),
) # )
print( # print(
f"playists:_set_row_header_text() called on track row ({row_number=}, {text=}" # f"playists:_set_row_header_text() called on track row ({row_number=}, {text=}"
) # )
# stackprinter.show(add_summary=True, style="darkbg") # # stackprinter.show(add_summary=True, style="darkbg")
return # return
# Set text # # Set text
_ = self._set_item_text(row_number, HEADER_NOTES_COLUMN, text) # _ = self._set_item_text(row_number, HEADER_NOTES_COLUMN, text)
# Set colour # # Set colour
note_colour = NoteColours.get_colour(session, text) # note_colour = NoteColours.get_colour(session, text)
if not note_colour: # if not note_colour:
note_colour = Config.COLOUR_NOTES_PLAYLIST # note_colour = Config.COLOUR_NOTES_PLAYLIST
self._set_row_colour(row_number, note_colour) # self._set_row_colour(row_number, note_colour)
def _set_row_last_played_time( def _set_row_last_played_time(
self, row_number: int, last_played: datetime self, row_number: int, last_played: datetime