WIP (working on marking next track)

This commit is contained in:
Keith Edmunds 2022-08-11 14:43:19 +01:00
parent c8194fad80
commit 70c2c18fb3
2 changed files with 58 additions and 66 deletions

View File

@ -14,7 +14,7 @@ import sys
#
# from PyQt5.QtCore import QDate, QEvent, QProcess, Qt, QTime, QTimer, QUrl
from PyQt5.QtCore import Qt
# from PyQt5.QtGui import QColor
from PyQt5.QtGui import QColor
# from PyQt5.QtWebEngineWidgets import QWebEngineView as QWebView
from PyQt5.QtWidgets import (
QApplication,
@ -42,7 +42,7 @@ from models import (
Tracks
)
from playlists import PlaylistTab
# from sqlalchemy.orm.exc import DetachedInstanceError
from sqlalchemy.orm.exc import DetachedInstanceError
# from ui.dlg_search_database_ui import Ui_Dialog
from ui.dlg_SelectPlaylist_ui import Ui_dlgSelectPlaylist
# from ui.downloadcsv_ui import Ui_DateSelect
@ -52,18 +52,17 @@ from ui.main_window_ui import Ui_MainWindow
#
#
# log = logging.getLogger(Config.LOG_NAME)
# class TrackData:
# def __init__(self, track):
# self.id = track.id
# self.title = track.title
# self.artist = track.artist
# self.duration = track.duration
# self.start_gap = track.start_gap
# self.fade_at = track.fade_at
# self.silence_at = track.silence_at
# self.path = track.path
# self.mtime = track.mtime
# self.lastplayed = track.lastplayed
class TrackData:
def __init__(self, track):
self.id = track.id
self.title = track.title
self.artist = track.artist
self.duration = track.duration
self.start_gap = track.start_gap
self.fade_at = track.fade_at
self.silence_at = track.silence_at
self.path = track.path
self.mtime = track.mtime
class Window(QMainWindow, Ui_MainWindow):
@ -77,14 +76,14 @@ class Window(QMainWindow, Ui_MainWindow):
# self.disable_play_next_controls()
#
# self.music: music.Music = music.Music()
# self.current_track: Optional[Tracks] = None
# self.current_track_playlist_tab: Optional[PlaylistTab] = None
# self.info_tabs: Optional[Dict[str, QWebView]] = {}
# self.next_track: Optional[Tracks] = None
# self.next_track_playlist_tab: Optional[PlaylistTab] = None
# self.previous_track: Optional[Tracks] = None
# self.previous_track_position: Optional[int] = None
#
self.current_track: Optional[TrackData] = None
self.current_track_playlist_tab: Optional[PlaylistTab] = None
self.info_tabs: Optional[Dict[str, QWebView]] = {}
self.next_track: Optional[TrackData] = None
self.next_track_playlist_tab: Optional[PlaylistTab] = None
self.previous_track: Optional[TrackData] = None
self.previous_track_position: Optional[int] = None
# self.set_main_window_size()
self.lblSumPlaytime = QLabel("")
self.statusbar.addPermanentWidget(self.lblSumPlaytime)
@ -118,10 +117,10 @@ class Window(QMainWindow, Ui_MainWindow):
# return
#
# @staticmethod
# def kae():
# def print_current_database():
# with Session() as session:
# db = session.bind.engine.url.database
# print(f"kae(): {db=}")
# print(f"{db=}")
#
# @staticmethod
# def check_audacity() -> None:
@ -757,14 +756,14 @@ class Window(QMainWindow, Ui_MainWindow):
# """Select all unplayed tracks in playlist"""
#
# self.visible_playlist_tab().select_unplayed_tracks()
#
# def set_tab_colour(self, widget, colour) -> None:
# """
# Find the tab containing the widget and set the text colour
# """
#
# idx: int = self.tabPlaylist.indexOf(widget)
# self.tabPlaylist.tabBar().setTabTextColor(idx, colour)
def set_tab_colour(self, widget: PlaylistTab, colour: QColor) -> None:
"""
Find the tab containing the widget and set the text colour
"""
idx = self.tabPlaylist.indexOf(widget)
self.tabPlaylist.tabBar().setTabTextColor(idx, colour)
#
# def song_info_search(self) -> None:
# """
@ -849,9 +848,6 @@ class Window(QMainWindow, Ui_MainWindow):
"""
# ***kae
return
# Clear next track if on another tab
if self.next_track_playlist_tab != playlist_tab:
# We need to reset the ex-next-track playlist
@ -964,36 +960,32 @@ class Window(QMainWindow, Ui_MainWindow):
# else:
# if self.playing:
# self.stop_playing()
#
# def update_headers(self) -> None:
# """
# Update last / current / next track headers
#
# If multiple tracks are played quickly in succession, it's possible
# for the self.{previous,current,next} track to not be in the session.
# Unlikely to happen in normal use so handle by blanking title.
# """
#
# try:
# self.hdrPreviousTrack.setText(
# f"{self.previous_track.title} - {self.previous_track.artist}"
# )
# except (AttributeError, DetachedInstanceError):
# self.hdrPreviousTrack.setText("")
#
# try:
# self.hdrCurrentTrack.setText(
# f"{self.current_track.title} - {self.current_track.artist}"
# )
# except (AttributeError, DetachedInstanceError):
# self.hdrCurrentTrack.setText("")
#
# try:
# self.hdrNextTrack.setText(
# f"{self.next_track.title} - {self.next_track.artist}"
# )
# except (AttributeError, DetachedInstanceError):
# self.hdrNextTrack.setText("")
def update_headers(self) -> None:
"""
Update last / current / next track headers
"""
try:
self.hdrPreviousTrack.setText(
f"{self.previous_track.title} - {self.previous_track.artist}"
)
except (AttributeError, DetachedInstanceError):
self.hdrPreviousTrack.setText("")
try:
self.hdrCurrentTrack.setText(
f"{self.current_track.title} - {self.current_track.artist}"
)
except (AttributeError, DetachedInstanceError):
self.hdrCurrentTrack.setText("")
try:
self.hdrNextTrack.setText(
f"{self.next_track.title} - {self.next_track.artist}"
)
except (AttributeError, DetachedInstanceError):
self.hdrNextTrack.setText("")
#
#
# class DbDialog(QDialog):

View File

@ -701,7 +701,7 @@ class PlaylistTab(QTableWidget):
# We possibly don't need to save the playlist here, but row
# numbers may have changed during population, and it's cheap to do
# KAE self.save_playlist(session)
# self.save_playlist(session)
self.update_display(session)
def remove_selected_rows(self) -> None: