Better fix for setting track/header row spans correctly
This commit is contained in:
parent
c6befd219c
commit
184318078f
@ -1029,7 +1029,10 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
else:
|
else:
|
||||||
destination_row = self.active_model().rowCount()
|
destination_row = self.active_model().rowCount()
|
||||||
|
|
||||||
if to_playlist_model.playlist_id == self.move_source_model.data_model.playlist_id:
|
if (
|
||||||
|
to_playlist_model.playlist_id
|
||||||
|
== self.move_source_model.data_model.playlist_id
|
||||||
|
):
|
||||||
self.move_source_model.move_rows(self.move_source_rows, destination_row)
|
self.move_source_model.move_rows(self.move_source_rows, destination_row)
|
||||||
else:
|
else:
|
||||||
self.move_source_model.move_rows_between_playlists(
|
self.move_source_model.move_rows_between_playlists(
|
||||||
|
|||||||
@ -175,10 +175,6 @@ class PlaylistModel(QAbstractTableModel):
|
|||||||
# Add any further note (header will already have a note)
|
# Add any further note (header will already have a note)
|
||||||
if note:
|
if note:
|
||||||
plr.note += "\n" + note
|
plr.note += "\n" + note
|
||||||
# Reset header row spanning
|
|
||||||
self.signals.span_cells_signal.emit(
|
|
||||||
self.playlist_id, row_number, HEADER_NOTES_COLUMN, 1, 1
|
|
||||||
)
|
|
||||||
# Update local copy
|
# Update local copy
|
||||||
self.refresh_row(session, row_number)
|
self.refresh_row(session, row_number)
|
||||||
# Repaint row
|
# Repaint row
|
||||||
@ -382,15 +378,14 @@ class PlaylistModel(QAbstractTableModel):
|
|||||||
Return text for display
|
Return text for display
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# Set / reset column span
|
||||||
|
column_span = 1
|
||||||
|
if self.is_header_row(row) and column == HEADER_NOTES_COLUMN:
|
||||||
|
column_span = self.columnCount() - 1
|
||||||
|
self.signals.span_cells_signal.emit(self.playlist_id, row, HEADER_NOTES_COLUMN, 1,
|
||||||
|
column_span)
|
||||||
if self.is_header_row(row):
|
if self.is_header_row(row):
|
||||||
if column == HEADER_NOTES_COLUMN:
|
if column == HEADER_NOTES_COLUMN:
|
||||||
self.signals.span_cells_signal.emit(
|
|
||||||
self.playlist_id,
|
|
||||||
row,
|
|
||||||
HEADER_NOTES_COLUMN,
|
|
||||||
1,
|
|
||||||
self.columnCount() - 1,
|
|
||||||
)
|
|
||||||
header_text = self.header_text(prd)
|
header_text = self.header_text(prd)
|
||||||
if not header_text:
|
if not header_text:
|
||||||
return QVariant(Config.TEXT_NO_TRACK_NO_NOTE)
|
return QVariant(Config.TEXT_NO_TRACK_NO_NOTE)
|
||||||
@ -720,14 +715,6 @@ class PlaylistModel(QAbstractTableModel):
|
|||||||
|
|
||||||
new_row_number = self._get_new_row_number(proposed_row_number)
|
new_row_number = self._get_new_row_number(proposed_row_number)
|
||||||
|
|
||||||
# We need to check for header rows at and below where we are
|
|
||||||
# inserting a row and reset column spanning.
|
|
||||||
for row_number in range(new_row_number, len(self.playlist_rows)):
|
|
||||||
if self.is_header_row(row_number):
|
|
||||||
self.signals.span_cells_signal.emit(
|
|
||||||
self.playlist_id, row_number, HEADER_NOTES_COLUMN, 1, 1
|
|
||||||
)
|
|
||||||
|
|
||||||
with Session() as session:
|
with Session() as session:
|
||||||
super().beginInsertRows(QModelIndex(), new_row_number, new_row_number)
|
super().beginInsertRows(QModelIndex(), new_row_number, new_row_number)
|
||||||
plr = PlaylistRows.insert_row(session, self.playlist_id, new_row_number)
|
plr = PlaylistRows.insert_row(session, self.playlist_id, new_row_number)
|
||||||
@ -838,13 +825,6 @@ class PlaylistModel(QAbstractTableModel):
|
|||||||
if old_row != new_row:
|
if old_row != new_row:
|
||||||
row_map[old_row] = new_row
|
row_map[old_row] = new_row
|
||||||
|
|
||||||
# Reset any header rows that we're moving
|
|
||||||
for moving_row in row_map:
|
|
||||||
if self.is_header_row(moving_row):
|
|
||||||
# Reset column span
|
|
||||||
self.signals.span_cells_signal.emit(
|
|
||||||
self.playlist_id, moving_row, HEADER_NOTES_COLUMN, 1, 1
|
|
||||||
)
|
|
||||||
# Check to see whether any rows in track_sequence have moved
|
# Check to see whether any rows in track_sequence have moved
|
||||||
if track_sequence.previous.plr_rownum in row_map:
|
if track_sequence.previous.plr_rownum in row_map:
|
||||||
track_sequence.previous.plr_rownum = row_map[
|
track_sequence.previous.plr_rownum = row_map[
|
||||||
@ -899,13 +879,6 @@ class PlaylistModel(QAbstractTableModel):
|
|||||||
and to_row_number <= max_destination_row_number
|
and to_row_number <= max_destination_row_number
|
||||||
):
|
):
|
||||||
# Move the destination playlist rows down to make room.
|
# Move the destination playlist rows down to make room.
|
||||||
# If any of the rows moving are header rows, reset the
|
|
||||||
# column spanning.
|
|
||||||
for row_number in range(to_row_number, to_row_number + len(from_rows)):
|
|
||||||
if to_playlist_model.is_header_row(row_number):
|
|
||||||
self.signals.span_cells_signal.emit(
|
|
||||||
to_playlist_id, row_number, HEADER_NOTES_COLUMN, 1, 1
|
|
||||||
)
|
|
||||||
PlaylistRows.move_rows_down(
|
PlaylistRows.move_rows_down(
|
||||||
session, to_playlist_id, to_row_number, len(from_rows)
|
session, to_playlist_id, to_row_number, len(from_rows)
|
||||||
)
|
)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user