Add end times column. Fixes #24
This commit is contained in:
parent
5b6db24692
commit
8838c23c59
@ -124,6 +124,8 @@ class Window(QMainWindow, Ui_MainWindow):
|
||||
if record.f_int != self.y():
|
||||
record.update(session, {'f_int': self.y()})
|
||||
|
||||
self.visible_playlist_tab().close(session)
|
||||
|
||||
event.accept()
|
||||
|
||||
def connect_signals_slots(self):
|
||||
|
||||
@ -29,9 +29,10 @@ class PlaylistTab(QTableWidget):
|
||||
COL_ARTIST = 3
|
||||
COL_DURATION = 4
|
||||
COL_START_TIME = 5
|
||||
COL_PATH = 6
|
||||
COL_END_TIME = 6
|
||||
COL_PATH = 7
|
||||
|
||||
NOTE_COL_SPAN = 3
|
||||
NOTE_COL_SPAN = 4
|
||||
NOTE_ROW_SPAN = 1
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
@ -44,7 +45,7 @@ class PlaylistTab(QTableWidget):
|
||||
self.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
|
||||
self.setVerticalScrollMode(QtWidgets.QAbstractItemView.ScrollPerPixel)
|
||||
self.setRowCount(0)
|
||||
self.setColumnCount(7)
|
||||
self.setColumnCount(8)
|
||||
item = QtWidgets.QTableWidgetItem()
|
||||
self.setHorizontalHeaderItem(0, item)
|
||||
item = QtWidgets.QTableWidgetItem()
|
||||
@ -59,11 +60,13 @@ class PlaylistTab(QTableWidget):
|
||||
self.setHorizontalHeaderItem(5, item)
|
||||
item = QtWidgets.QTableWidgetItem()
|
||||
self.setHorizontalHeaderItem(6, item)
|
||||
item = QtWidgets.QTableWidgetItem()
|
||||
self.setHorizontalHeaderItem(7, item)
|
||||
self.horizontalHeader().setMinimumSectionSize(0)
|
||||
|
||||
self._set_column_widths()
|
||||
self.setHorizontalHeaderLabels(["ID", "Lead", "Title", "Artist",
|
||||
"Len", "Start", "Path"])
|
||||
"Len", "Start", "End", "Path"])
|
||||
|
||||
self.setDragEnabled(True)
|
||||
self.setAcceptDrops(True)
|
||||
@ -203,9 +206,11 @@ class PlaylistTab(QTableWidget):
|
||||
self.setSpan(row, self.COL_NOTE, self.NOTE_ROW_SPAN,
|
||||
self.NOTE_COL_SPAN)
|
||||
|
||||
# Add start times or empty items as background
|
||||
# Add start/end times or empty items as background
|
||||
# colour won't be set for columns without items
|
||||
self._set_row_time(row, start_time)
|
||||
self._set_row_start_time(row, start_time)
|
||||
item = QTableWidgetItem()
|
||||
self.setItem(row, self.COL_END_TIME, item)
|
||||
item = QTableWidgetItem()
|
||||
self.setItem(row, self.COL_PATH, item)
|
||||
|
||||
@ -804,10 +809,13 @@ class PlaylistTab(QTableWidget):
|
||||
|
||||
elif row == current:
|
||||
# Set start time
|
||||
self._set_row_time(row, self.current_track_start_time)
|
||||
self._set_row_start_time(
|
||||
row, self.current_track_start_time)
|
||||
# Calculate next_start_time
|
||||
next_start_time = self._calculate_next_start_time(
|
||||
session, row, self.current_track_start_time)
|
||||
# Set end time
|
||||
self._set_row_end_time(row, next_start_time)
|
||||
# Set colour
|
||||
self._set_row_colour(row, QColor(
|
||||
Config.COLOUR_CURRENT_PLAYLIST))
|
||||
@ -826,7 +834,7 @@ class PlaylistTab(QTableWidget):
|
||||
if not start_time:
|
||||
start_time = next_start_time
|
||||
# Now set it
|
||||
self._set_row_time(row, start_time)
|
||||
self._set_row_start_time(row, start_time)
|
||||
next_start_time = self._calculate_next_start_time(
|
||||
session, row, start_time)
|
||||
# Set colour
|
||||
@ -846,11 +854,13 @@ class PlaylistTab(QTableWidget):
|
||||
if self._get_row_id(row) in self.played_tracks:
|
||||
self._set_row_not_bold(row)
|
||||
else:
|
||||
# Set time only if we haven't played it yet
|
||||
# Set start/end times only if we haven't played it yet
|
||||
if next_start_time:
|
||||
self._set_row_time(row, next_start_time)
|
||||
self._set_row_start_time(row, next_start_time)
|
||||
next_start_time = self._calculate_next_start_time(
|
||||
session, row, next_start_time)
|
||||
# Set end time
|
||||
self._set_row_end_time(row, next_start_time)
|
||||
# Don't dim unplayed tracks
|
||||
self._set_row_bold(row)
|
||||
|
||||
@ -955,7 +965,17 @@ class PlaylistTab(QTableWidget):
|
||||
def _set_row_not_bold(self, row):
|
||||
self._set_row_bold(row, False)
|
||||
|
||||
def _set_row_time(self, row, time):
|
||||
def _set_row_end_time(self, row, time):
|
||||
"Set passed row end time to passed time"
|
||||
try:
|
||||
time_str = time.strftime("%H:%M:%S")
|
||||
except AttributeError:
|
||||
time_str = ""
|
||||
item = QTableWidgetItem(time_str)
|
||||
self.setItem(row, self.COL_END_TIME, item)
|
||||
|
||||
def _set_row_start_time(self, row, time):
|
||||
"Set passed row start time to passed time"
|
||||
try:
|
||||
time_str = time.strftime("%H:%M:%S")
|
||||
except AttributeError:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user