Handle signal_insert_track better.
This commit is contained in:
parent
6496ea2ac4
commit
a0ded4b73d
@ -96,7 +96,7 @@ class PlaylistModel(QAbstractTableModel):
|
||||
self.signals.signal_add_track_to_header.connect(self.add_track_to_header)
|
||||
self.signals.signal_begin_insert_rows.connect(self.begin_insert_rows)
|
||||
self.signals.signal_end_insert_rows.connect(self.end_insert_rows)
|
||||
self.signals.signal_insert_track.connect(self.insert_row)
|
||||
self.signals.signal_insert_track.connect(self.insert_row_signal_handler)
|
||||
self.signals.signal_playlist_selected_rows.connect(self.set_selected_rows)
|
||||
self.signals.signal_set_next_row.connect(self.set_next_row)
|
||||
self.signals.signal_track_started.connect(self.track_started)
|
||||
@ -682,11 +682,14 @@ class PlaylistModel(QAbstractTableModel):
|
||||
self.invalidate_row(row_number, roles)
|
||||
|
||||
# @log_call
|
||||
def insert_row(self, row_data: InsertTrack) -> None:
|
||||
def insert_row_signal_handler(self, row_data: InsertTrack) -> None:
|
||||
"""
|
||||
Insert a row.
|
||||
Handle the signal_insert_track signal
|
||||
"""
|
||||
|
||||
if row_data.playlist_id != self.playlist_id:
|
||||
return
|
||||
|
||||
new_row_number = self._get_new_row_number()
|
||||
|
||||
super().beginInsertRows(QModelIndex(), new_row_number, new_row_number)
|
||||
@ -1464,7 +1467,7 @@ class PlaylistModel(QAbstractTableModel):
|
||||
]
|
||||
self.invalidate_rows(track_rows, roles)
|
||||
else:
|
||||
self.insert_row(
|
||||
self.insert_row_signal_handler(
|
||||
InsertTrack(playlist_id=self.playlist_id, track_id=track_id, note="")
|
||||
)
|
||||
|
||||
|
||||
@ -11,6 +11,7 @@ from app.helpers import get_all_track_metadata
|
||||
from app import ds, playlistmodel
|
||||
from app.models import db
|
||||
from classes import (
|
||||
InsertTrack,
|
||||
TrackAndPlaylist,
|
||||
)
|
||||
|
||||
@ -39,7 +40,13 @@ class TestMMMiscTracks(unittest.TestCase):
|
||||
track_path = self.test_tracks[row % len(self.test_tracks)]
|
||||
metadata = get_all_track_metadata(track_path)
|
||||
track = ds.track_create(metadata)
|
||||
self.model.insert_row(track_id=track.track_id, note=f"{row=}")
|
||||
self.model.insert_row_signal_handler(
|
||||
InsertTrack(
|
||||
playlist_id=self.playlist.playlist_id,
|
||||
track_id=track.track_id,
|
||||
note=f"{row=}",
|
||||
)
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
db.drop_all()
|
||||
@ -59,9 +66,21 @@ class TestMMMiscTracks(unittest.TestCase):
|
||||
|
||||
# Fake selected row in model
|
||||
self.model.selected_rows = [self.model.playlist_rows[START_ROW]]
|
||||
self.model.insert_row(note="start+")
|
||||
self.model.insert_row_signal_handler(
|
||||
InsertTrack(
|
||||
playlist_id=self.playlist.playlist_id,
|
||||
track_id=None,
|
||||
note="start+"
|
||||
)
|
||||
)
|
||||
self.model.selected_rows = [self.model.playlist_rows[END_ROW]]
|
||||
self.model.insert_row(note="-")
|
||||
self.model.insert_row_signal_handler(
|
||||
InsertTrack(
|
||||
playlist_id=self.playlist.playlist_id,
|
||||
track_id=None,
|
||||
note="-+"
|
||||
)
|
||||
)
|
||||
|
||||
prd = self.model.playlist_rows[START_ROW]
|
||||
qv_value = self.model._display_role(
|
||||
@ -99,7 +118,13 @@ class TestMMMiscNoPlaylist(unittest.TestCase):
|
||||
track_path = self.test_tracks[0]
|
||||
metadata = get_all_track_metadata(track_path)
|
||||
track = ds.track_create(metadata)
|
||||
model.insert_row(track_id=track.track_id)
|
||||
model.insert_row_signal_handler(
|
||||
InsertTrack(
|
||||
playlist_id=playlist.playlist_id,
|
||||
track_id=track.track_id,
|
||||
note="",
|
||||
)
|
||||
)
|
||||
|
||||
prd = model.playlist_rows[model.rowCount() - 1]
|
||||
# test repr
|
||||
@ -121,7 +146,13 @@ class TestMMMiscRowMove(unittest.TestCase):
|
||||
self.playlist = ds.playlist_create(self.PLAYLIST_NAME, template_id=0)
|
||||
self.model = playlistmodel.PlaylistModel(self.playlist.playlist_id, is_template=False)
|
||||
for row in range(self.ROWS_TO_CREATE):
|
||||
self.model.insert_row(note=str(row))
|
||||
self.model.insert_row_signal_handler(
|
||||
InsertTrack(
|
||||
playlist_id=self.playlist.playlist_id,
|
||||
track_id=None,
|
||||
note=str(row),
|
||||
)
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
db.drop_all()
|
||||
@ -132,7 +163,13 @@ class TestMMMiscRowMove(unittest.TestCase):
|
||||
note_text = "test text"
|
||||
|
||||
assert self.model.rowCount() == self.ROWS_TO_CREATE
|
||||
self.model.insert_row(note=note_text)
|
||||
self.model.insert_row_signal_handler(
|
||||
InsertTrack(
|
||||
playlist_id=self.playlist.playlist_id,
|
||||
track_id=None,
|
||||
note=note_text
|
||||
)
|
||||
)
|
||||
assert self.model.rowCount() == self.ROWS_TO_CREATE + 1
|
||||
prd = self.model.playlist_rows[self.model.rowCount() - 1]
|
||||
# Test against edit_role because display_role for headers is
|
||||
@ -153,7 +190,13 @@ class TestMMMiscRowMove(unittest.TestCase):
|
||||
# Fake selected row in model
|
||||
self.model.selected_rows = [self.model.playlist_rows[insert_row]]
|
||||
|
||||
self.model.insert_row(note=note_text)
|
||||
self.model.insert_row_signal_handler(
|
||||
InsertTrack(
|
||||
playlist_id=self.playlist.playlist_id,
|
||||
track_id=None,
|
||||
note=note_text
|
||||
)
|
||||
)
|
||||
assert self.model.rowCount() == self.ROWS_TO_CREATE + 1
|
||||
prd = self.model.playlist_rows[insert_row]
|
||||
# Test against edit_role because display_role for headers is
|
||||
@ -169,7 +212,13 @@ class TestMMMiscRowMove(unittest.TestCase):
|
||||
note_text = "test text"
|
||||
insert_row = 6
|
||||
|
||||
self.model.insert_row(note=note_text)
|
||||
self.model.insert_row_signal_handler(
|
||||
InsertTrack(
|
||||
playlist_id=self.playlist.playlist_id,
|
||||
track_id=None,
|
||||
note=note_text
|
||||
)
|
||||
)
|
||||
assert self.model.rowCount() == self.ROWS_TO_CREATE + 1
|
||||
|
||||
# Fake selected row in model
|
||||
@ -206,7 +255,13 @@ class TestMMMiscRowMove(unittest.TestCase):
|
||||
playlist_dst.playlist_id, is_template=False
|
||||
)
|
||||
for row in range(self.ROWS_TO_CREATE):
|
||||
model_dst.insert_row(note=str(row))
|
||||
model_dst.insert_row_signal_handler(
|
||||
InsertTrack(
|
||||
playlist_id=playlist_dst.playlist_id,
|
||||
track_id=None,
|
||||
note=str(row)
|
||||
)
|
||||
)
|
||||
|
||||
model_src.move_rows_between_playlists(from_rows, to_row, playlist_dst.playlist_id)
|
||||
|
||||
@ -227,7 +282,13 @@ class TestMMMiscRowMove(unittest.TestCase):
|
||||
playlist_dst.playlist_id, is_template=False
|
||||
)
|
||||
for row in range(self.ROWS_TO_CREATE):
|
||||
model_dst.insert_row(note=str(row))
|
||||
model_dst.insert_row_signal_handler(
|
||||
InsertTrack(
|
||||
playlist_id=playlist_dst.playlist_id,
|
||||
track_id=None,
|
||||
note=str(row)
|
||||
)
|
||||
)
|
||||
|
||||
model_src.move_rows_between_playlists(from_rows, to_row, playlist_dst.playlist_id)
|
||||
|
||||
@ -255,7 +316,13 @@ class TestMMMiscRowMove(unittest.TestCase):
|
||||
playlist_dst.playlist_id, is_template=False
|
||||
)
|
||||
for row in range(self.ROWS_TO_CREATE):
|
||||
model_dst.insert_row(note=str(row))
|
||||
model_dst.insert_row_signal_handler(
|
||||
InsertTrack(
|
||||
playlist_id=playlist_dst.playlist_id,
|
||||
track_id=None,
|
||||
note=str(row)
|
||||
)
|
||||
)
|
||||
|
||||
model_src.move_rows_between_playlists(from_rows, to_row, playlist_dst.playlist_id)
|
||||
|
||||
|
||||
@ -99,7 +99,7 @@ class MyTestCase(unittest.TestCase):
|
||||
model = playlistmodel.PlaylistModel(playlist.playlist_id, is_template=False)
|
||||
|
||||
# Add a track with a note
|
||||
model.insert_row(track_id=self.track1.track_id, note=note_text)
|
||||
model.insert_row_signal_handler(track_id=self.track1.track_id, note=note_text)
|
||||
|
||||
# Retrieve playlist
|
||||
all_playlists = ds.playlists_all()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user