Ensure all rows correctly resized for height
This commit is contained in:
parent
b74007119d
commit
f228a371f2
@ -232,6 +232,7 @@ class Window(QMainWindow, Ui_MainWindow):
|
||||
self.timer1000.start(1000)
|
||||
self.signals = MusicMusterSignals()
|
||||
self.connect_signals_slots()
|
||||
self.load_last_playlists()
|
||||
|
||||
def about(self) -> None:
|
||||
"""Get git tag and database name"""
|
||||
@ -540,6 +541,7 @@ class Window(QMainWindow, Ui_MainWindow):
|
||||
self.btnStop.clicked.connect(self.stop)
|
||||
self.hdrCurrentTrack.clicked.connect(self.show_current)
|
||||
self.hdrNextTrack.clicked.connect(self.show_next)
|
||||
self.tabPlaylist.currentChanged.connect(self.tab_change)
|
||||
self.tabPlaylist.tabCloseRequested.connect(self.close_tab)
|
||||
self.tabBar = self.tabPlaylist.tabBar()
|
||||
self.txtSearch.textChanged.connect(self.search_playlist_text_changed)
|
||||
@ -1419,6 +1421,13 @@ class Window(QMainWindow, Ui_MainWindow):
|
||||
# Enable controls
|
||||
self.enable_play_next_controls()
|
||||
|
||||
def tab_change(self):
|
||||
"""Called when active tab changed"""
|
||||
|
||||
tab = self.active_tab()
|
||||
if tab:
|
||||
tab.resizeRowsToContents()
|
||||
|
||||
def tick_10ms(self) -> None:
|
||||
"""
|
||||
Called every 10ms
|
||||
|
||||
@ -188,7 +188,7 @@ class PlaylistTab(QTableView):
|
||||
|
||||
# Connect signals
|
||||
self.signals = MusicMusterSignals()
|
||||
self.signals.resize_rows_signal.connect(self.resizeRowsToContents)
|
||||
self.signals.resize_rows_signal.connect(self.resize_rows)
|
||||
self.signals.span_cells_signal.connect(self._span_cells)
|
||||
|
||||
# Selection model
|
||||
@ -198,9 +198,15 @@ class PlaylistTab(QTableView):
|
||||
# Load playlist rows
|
||||
self.setModel(self.proxy_model)
|
||||
self._set_column_widths()
|
||||
self.resizeRowsToContents()
|
||||
# Stretch last column *after* setting column widths which is
|
||||
# *much* faster
|
||||
h_header = self.horizontalHeader()
|
||||
if isinstance(h_header, QHeaderView):
|
||||
h_header.sectionResized.connect(self._column_resize)
|
||||
h_header.setStretchLastSection(True)
|
||||
QTimer.singleShot(0, lambda: self.resizeRowsToContents())
|
||||
|
||||
# ########## Overrident class functions ##########
|
||||
# ########## Overridden class functions ##########
|
||||
|
||||
def closeEditor(
|
||||
self, editor: QWidget | None, hint: QAbstractItemDelegate.EndEditHint
|
||||
@ -582,9 +588,19 @@ class PlaylistTab(QTableView):
|
||||
def _rescan(self, row_number: int) -> None:
|
||||
"""Rescan track"""
|
||||
|
||||
self.data_model.rescan_track(row_number)
|
||||
self.source_model.rescan_track(row_number)
|
||||
self.clear_selection()
|
||||
|
||||
def resize_rows(self, playlist_id: int) -> None:
|
||||
"""
|
||||
If playlist_id is us, resize rows
|
||||
"""
|
||||
|
||||
if playlist_id != self.playlist_id:
|
||||
return
|
||||
|
||||
self.resizeRowsToContents()
|
||||
|
||||
def scroll_to_top(self, row_number: int) -> None:
|
||||
"""
|
||||
Scroll to put passed row_number Config.SCROLL_TOP_MARGIN from the
|
||||
@ -677,19 +693,13 @@ class PlaylistTab(QTableView):
|
||||
|
||||
# Last column is set to stretch so ignore it here
|
||||
with Session() as session:
|
||||
for column_number in range(header.count() - 2):
|
||||
for column_number in range(header.count() - 1):
|
||||
attr_name = f"playlist_col_{column_number}_width"
|
||||
record = Settings.get_int_settings(session, attr_name)
|
||||
if record.f_int is not None:
|
||||
self.setColumnWidth(column_number, record.f_int)
|
||||
else:
|
||||
self.setColumnWidth(column_number, Config.DEFAULT_COLUMN_WIDTH)
|
||||
# Stretch last column *after* setting column widths which is
|
||||
# *much* faster
|
||||
h_header = self.horizontalHeader()
|
||||
if isinstance(h_header, QHeaderView):
|
||||
h_header.sectionResized.connect(self._column_resize)
|
||||
h_header.setStretchLastSection(True)
|
||||
|
||||
def set_row_as_next_track(self) -> None:
|
||||
"""
|
||||
|
||||
Loading…
Reference in New Issue
Block a user