WIP: fix insert tracks from query at selected row
This commit is contained in:
parent
0478e25109
commit
9a6bb038e1
@ -1396,7 +1396,7 @@ class Window(QMainWindow):
|
||||
new_row_number, existing_prd, note=""
|
||||
)
|
||||
else:
|
||||
base_model.insert_row(new_row_number, track_id)
|
||||
base_model.insert_row(track_id)
|
||||
|
||||
new_row_number += 1
|
||||
|
||||
@ -1896,10 +1896,7 @@ class Window(QMainWindow):
|
||||
dlg.resize(500, 100)
|
||||
ok = dlg.exec()
|
||||
if ok:
|
||||
self.current.base_model.insert_row(
|
||||
proposed_row_number=self.current_row_or_end(),
|
||||
note=dlg.textValue(),
|
||||
)
|
||||
self.current.base_model.insert_row(note=dlg.textValue())
|
||||
|
||||
def insert_track(self, checked: bool = False) -> None:
|
||||
"""Show dialog box to select and add track from database"""
|
||||
|
||||
@ -566,24 +566,18 @@ class PlaylistModel(QAbstractTableModel):
|
||||
return result
|
||||
|
||||
@log_call
|
||||
def _get_new_row_number(self, proposed_row_number: Optional[int]) -> int:
|
||||
def _get_new_row_number(self) -> int:
|
||||
"""
|
||||
Sanitises proposed new row number.
|
||||
Get row number for new row.
|
||||
|
||||
If proposed_row_number given, ensure it is valid.
|
||||
If not given, return row number to add to end of model.
|
||||
If any rows are selected, return the first such row number, else
|
||||
return row number to add to end of model.
|
||||
"""
|
||||
|
||||
if proposed_row_number is None or proposed_row_number > len(self.playlist_rows):
|
||||
# We are adding to the end of the list
|
||||
new_row_number = len(self.playlist_rows)
|
||||
elif proposed_row_number < 0:
|
||||
# Add to start of list
|
||||
new_row_number = 0
|
||||
else:
|
||||
new_row_number = proposed_row_number
|
||||
if not self.selected_rows:
|
||||
return len(self.playlist_rows)
|
||||
|
||||
return new_row_number
|
||||
return self.selected_rows[0].row_number
|
||||
|
||||
def get_row_info(self, row_number: int) -> PlaylistRow:
|
||||
"""
|
||||
@ -710,17 +704,12 @@ class PlaylistModel(QAbstractTableModel):
|
||||
self.invalidate_row(row_number, roles)
|
||||
|
||||
@log_call
|
||||
def insert_row(
|
||||
self,
|
||||
proposed_row_number: Optional[int],
|
||||
track_id: Optional[int] = None,
|
||||
note: str = "",
|
||||
) -> None:
|
||||
def insert_row(self, track_id: Optional[int] = None, note: str = "",) -> None:
|
||||
"""
|
||||
Insert a row.
|
||||
"""
|
||||
|
||||
new_row_number = self._get_new_row_number(proposed_row_number)
|
||||
new_row_number = self._get_new_row_number()
|
||||
|
||||
super().beginInsertRows(QModelIndex(), new_row_number, new_row_number)
|
||||
|
||||
@ -1485,7 +1474,7 @@ class PlaylistModel(QAbstractTableModel):
|
||||
]
|
||||
self.invalidate_rows(track_rows, roles)
|
||||
else:
|
||||
self.insert_row(proposed_row_number=row_number, track_id=track_id)
|
||||
self.insert_row(track_id=track_id)
|
||||
|
||||
@log_call
|
||||
def update_track_times(self) -> None:
|
||||
|
||||
@ -799,10 +799,10 @@ def insert_row(
|
||||
shift_by=1,
|
||||
)
|
||||
|
||||
playlist_row = PlaylistRows.insert_row(
|
||||
playlist_row = PlaylistRows(
|
||||
session=session,
|
||||
playlist_id=playlist_id,
|
||||
new_row_number=row_number,
|
||||
row_number=row_number,
|
||||
note=note,
|
||||
track_id=track_id,
|
||||
)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user