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.timer1000.start(1000)
|
||||||
self.signals = MusicMusterSignals()
|
self.signals = MusicMusterSignals()
|
||||||
self.connect_signals_slots()
|
self.connect_signals_slots()
|
||||||
|
self.load_last_playlists()
|
||||||
|
|
||||||
def about(self) -> None:
|
def about(self) -> None:
|
||||||
"""Get git tag and database name"""
|
"""Get git tag and database name"""
|
||||||
@ -540,6 +541,7 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
self.btnStop.clicked.connect(self.stop)
|
self.btnStop.clicked.connect(self.stop)
|
||||||
self.hdrCurrentTrack.clicked.connect(self.show_current)
|
self.hdrCurrentTrack.clicked.connect(self.show_current)
|
||||||
self.hdrNextTrack.clicked.connect(self.show_next)
|
self.hdrNextTrack.clicked.connect(self.show_next)
|
||||||
|
self.tabPlaylist.currentChanged.connect(self.tab_change)
|
||||||
self.tabPlaylist.tabCloseRequested.connect(self.close_tab)
|
self.tabPlaylist.tabCloseRequested.connect(self.close_tab)
|
||||||
self.tabBar = self.tabPlaylist.tabBar()
|
self.tabBar = self.tabPlaylist.tabBar()
|
||||||
self.txtSearch.textChanged.connect(self.search_playlist_text_changed)
|
self.txtSearch.textChanged.connect(self.search_playlist_text_changed)
|
||||||
@ -1419,6 +1421,13 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
# Enable controls
|
# Enable controls
|
||||||
self.enable_play_next_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:
|
def tick_10ms(self) -> None:
|
||||||
"""
|
"""
|
||||||
Called every 10ms
|
Called every 10ms
|
||||||
|
|||||||
@ -188,7 +188,7 @@ class PlaylistTab(QTableView):
|
|||||||
|
|
||||||
# Connect signals
|
# Connect signals
|
||||||
self.signals = MusicMusterSignals()
|
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)
|
self.signals.span_cells_signal.connect(self._span_cells)
|
||||||
|
|
||||||
# Selection model
|
# Selection model
|
||||||
@ -198,9 +198,15 @@ class PlaylistTab(QTableView):
|
|||||||
# Load playlist rows
|
# Load playlist rows
|
||||||
self.setModel(self.proxy_model)
|
self.setModel(self.proxy_model)
|
||||||
self._set_column_widths()
|
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(
|
def closeEditor(
|
||||||
self, editor: QWidget | None, hint: QAbstractItemDelegate.EndEditHint
|
self, editor: QWidget | None, hint: QAbstractItemDelegate.EndEditHint
|
||||||
@ -582,9 +588,19 @@ class PlaylistTab(QTableView):
|
|||||||
def _rescan(self, row_number: int) -> None:
|
def _rescan(self, row_number: int) -> None:
|
||||||
"""Rescan track"""
|
"""Rescan track"""
|
||||||
|
|
||||||
self.data_model.rescan_track(row_number)
|
self.source_model.rescan_track(row_number)
|
||||||
self.clear_selection()
|
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:
|
def scroll_to_top(self, row_number: int) -> None:
|
||||||
"""
|
"""
|
||||||
Scroll to put passed row_number Config.SCROLL_TOP_MARGIN from the
|
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
|
# Last column is set to stretch so ignore it here
|
||||||
with Session() as session:
|
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"
|
attr_name = f"playlist_col_{column_number}_width"
|
||||||
record = Settings.get_int_settings(session, attr_name)
|
record = Settings.get_int_settings(session, attr_name)
|
||||||
if record.f_int is not None:
|
if record.f_int is not None:
|
||||||
self.setColumnWidth(column_number, record.f_int)
|
self.setColumnWidth(column_number, record.f_int)
|
||||||
else:
|
else:
|
||||||
self.setColumnWidth(column_number, Config.DEFAULT_COLUMN_WIDTH)
|
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:
|
def set_row_as_next_track(self) -> None:
|
||||||
"""
|
"""
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user