Fix add note only from track dialog

Fixes #208
This commit is contained in:
Keith Edmunds 2023-12-08 18:10:38 +00:00
parent 7ed54f2bab
commit c1dd111453

View File

@ -54,6 +54,10 @@ class TrackSelectDialog(QDialog):
height = record.f_int or 600
self.resize(width, height)
if add_to_header:
self.ui.lblNote.setVisible(False)
self.ui.txtNote.setVisible(False)
def add_selected(self) -> None:
"""Handle Add button"""
@ -65,18 +69,22 @@ class TrackSelectDialog(QDialog):
track = item.data(Qt.ItemDataRole.UserRole)
note = self.ui.txtNote.text()
track_id = None
if track:
track_id = track.id
if not note and not track:
return
if not track_id:
if note:
self.model.insert_row(self.new_row_number, track_id, note)
self.ui.txtNote.clear()
return
else:
# No note, no track
return
self.ui.txtNote.clear()
self.select_searchtext()
track_id = None
if track:
track_id = track.id
else:
return
# Check whether track is already in playlist
move_existing = False
existing_prd = self.model.is_track_in_playlist(track_id)
@ -87,14 +95,16 @@ class TrackSelectDialog(QDialog):
default_yes=True,
):
move_existing = True
if self.add_to_header and existing_prd: # "and existing_prd" for mypy's benefit
if move_existing:
if self.add_to_header:
if move_existing and existing_prd: # "and existing_prd" for mypy's benefit
self.model.move_track_to_header(self.new_row_number, existing_prd, note)
else:
self.model.add_track_to_header(self.new_row_number, track_id)
# Close dialog - we can only add one track to a header
self.accept()
else:
# Adding a new track row
if move_existing and existing_prd: # "and existing_prd" for mypy's benefit
self.model.move_track_add_note(self.new_row_number, existing_prd, note)
else: