From 61b00d85317d93575fc6d859873c4024d0c9cfa7 Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Thu, 6 Mar 2025 14:26:47 +0000 Subject: [PATCH 1/3] Put preview track details in status bar --- app/musicmuster.py | 45 +++++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/app/musicmuster.py b/app/musicmuster.py index 61fe8bd..cd0c312 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -693,7 +693,6 @@ class PreviewManager: mixer.init() self.intro: Optional[int] = None self.path: str = "" - self.row_number: Optional[int] = None self.start_time: Optional[dt.datetime] = None self.track_id: int = 0 @@ -767,22 +766,14 @@ class PreviewManager: self.intro = ms - def set_track_info(self, info: TrackInfo) -> None: - self.track_id = info.track_id - self.row_number = info.row_number - - with db.Session() as session: - track = session.get(Tracks, self.track_id) - if not track: - raise ValueError( - f"PreviewManager: unable to retreive track {self.track_id=}" - ) - self.intro = track.intro - self.path = track.path + def set_track_info(self, track_id: int, track_intro: int, track_path: str) -> None: + self.track_id = track_id + self.intro = track_intro + self.path = track_path # Check file readable if file_is_unreadable(self.path): - raise ValueError(f"PreviewManager.__init__: {track.path=} unreadable") + raise ValueError(f"PreviewManager.__init__: {track_path=} unreadable") mixer.music.load(self.path) @@ -790,7 +781,6 @@ class PreviewManager: mixer.music.stop() mixer.music.unload() self.path = "" - self.row_number = None self.track_id = 0 self.start_time = None @@ -2263,10 +2253,25 @@ class Window(QMainWindow): return if not track_info: return - self.preview_manager.set_track_info(track_info) - self.preview_manager.play() + with db.Session() as session: + track = session.get(Tracks, track_info.track_id) + if not track: + raise ApplicationError( + f"musicmuster.preview: unable to retreive track {track_info.track_id=}" + ) + self.preview_manager.set_track_info( + track_id=track.id, + track_path=track.path, + track_intro=track.intro + ) + self.preview_manager.play() + self.show_status_message( + f"Preview: {track.title} / {track.artist} (row {track_info.row_number})", + 0 + ) else: self.preview_manager.stop() + self.show_status_message("", 0) def preview_arm(self): """Manager arm button for setting intro length""" @@ -2528,10 +2533,14 @@ class Window(QMainWindow): def show_status_message(self, message: str, timing: int) -> None: """ Show status message in status bar for timing milliseconds + Clear message if message is null string """ if self.statusbar: - self.statusbar.showMessage(message, timing) + if message: + self.statusbar.showMessage(message, timing) + else: + self.statusbar.clearMessage() def show_track(self, playlist_track: RowAndTrack) -> None: """Scroll to show track in plt""" From 93839c69e2daca3aa1bde0696454745aeb5815ac Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Thu, 6 Mar 2025 14:27:42 +0000 Subject: [PATCH 2/3] Remove main_window_ui.py --- app/ui/main_window_ui.py | 850 --------------------------------------- 1 file changed, 850 deletions(-) delete mode 100644 app/ui/main_window_ui.py diff --git a/app/ui/main_window_ui.py b/app/ui/main_window_ui.py deleted file mode 100644 index 064376f..0000000 --- a/app/ui/main_window_ui.py +++ /dev/null @@ -1,850 +0,0 @@ -# Form implementation generated from reading ui file 'app/ui/main_window.ui' -# -# Created by: PyQt6 UI code generator 6.8.1 -# -# WARNING: Any manual changes made to this file will be lost when pyuic6 is -# run again. Do not edit this file unless you know what you are doing. - - -from PyQt6 import QtCore, QtGui, QtWidgets - - -class Ui_MainWindow(object): - def setupUi(self, MainWindow): - MainWindow.setObjectName("MainWindow") - MainWindow.resize(1280, 857) - MainWindow.setMinimumSize(QtCore.QSize(1280, 0)) - icon = QtGui.QIcon() - icon.addPixmap( - QtGui.QPixmap(":/icons/musicmuster"), - QtGui.QIcon.Mode.Normal, - QtGui.QIcon.State.Off, - ) - MainWindow.setWindowIcon(icon) - MainWindow.setStyleSheet("") - self.centralwidget = QtWidgets.QWidget(parent=MainWindow) - self.centralwidget.setObjectName("centralwidget") - self.gridLayout_4 = QtWidgets.QGridLayout(self.centralwidget) - self.gridLayout_4.setObjectName("gridLayout_4") - self.horizontalLayout_3 = QtWidgets.QHBoxLayout() - self.horizontalLayout_3.setObjectName("horizontalLayout_3") - self.verticalLayout_3 = QtWidgets.QVBoxLayout() - self.verticalLayout_3.setObjectName("verticalLayout_3") - self.previous_track_2 = QtWidgets.QLabel(parent=self.centralwidget) - sizePolicy = QtWidgets.QSizePolicy( - QtWidgets.QSizePolicy.Policy.Preferred, - QtWidgets.QSizePolicy.Policy.Preferred, - ) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.previous_track_2.sizePolicy().hasHeightForWidth() - ) - self.previous_track_2.setSizePolicy(sizePolicy) - self.previous_track_2.setMaximumSize(QtCore.QSize(230, 16777215)) - font = QtGui.QFont() - font.setFamily("Sans") - font.setPointSize(20) - self.previous_track_2.setFont(font) - self.previous_track_2.setStyleSheet( - "background-color: #f8d7da;\n" "border: 1px solid rgb(85, 87, 83);" - ) - self.previous_track_2.setAlignment( - QtCore.Qt.AlignmentFlag.AlignRight - | QtCore.Qt.AlignmentFlag.AlignTrailing - | QtCore.Qt.AlignmentFlag.AlignVCenter - ) - self.previous_track_2.setObjectName("previous_track_2") - self.verticalLayout_3.addWidget(self.previous_track_2) - self.current_track_2 = QtWidgets.QLabel(parent=self.centralwidget) - sizePolicy = QtWidgets.QSizePolicy( - QtWidgets.QSizePolicy.Policy.Preferred, - QtWidgets.QSizePolicy.Policy.Preferred, - ) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.current_track_2.sizePolicy().hasHeightForWidth() - ) - self.current_track_2.setSizePolicy(sizePolicy) - self.current_track_2.setMaximumSize(QtCore.QSize(230, 16777215)) - font = QtGui.QFont() - font.setFamily("Sans") - font.setPointSize(20) - self.current_track_2.setFont(font) - self.current_track_2.setStyleSheet( - "background-color: #d4edda;\n" "border: 1px solid rgb(85, 87, 83);" - ) - self.current_track_2.setAlignment( - QtCore.Qt.AlignmentFlag.AlignRight - | QtCore.Qt.AlignmentFlag.AlignTrailing - | QtCore.Qt.AlignmentFlag.AlignVCenter - ) - self.current_track_2.setObjectName("current_track_2") - self.verticalLayout_3.addWidget(self.current_track_2) - self.next_track_2 = QtWidgets.QLabel(parent=self.centralwidget) - sizePolicy = QtWidgets.QSizePolicy( - QtWidgets.QSizePolicy.Policy.Preferred, - QtWidgets.QSizePolicy.Policy.Preferred, - ) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.next_track_2.sizePolicy().hasHeightForWidth()) - self.next_track_2.setSizePolicy(sizePolicy) - self.next_track_2.setMaximumSize(QtCore.QSize(230, 16777215)) - font = QtGui.QFont() - font.setFamily("Sans") - font.setPointSize(20) - self.next_track_2.setFont(font) - self.next_track_2.setStyleSheet( - "background-color: #fff3cd;\n" "border: 1px solid rgb(85, 87, 83);" - ) - self.next_track_2.setAlignment( - QtCore.Qt.AlignmentFlag.AlignRight - | QtCore.Qt.AlignmentFlag.AlignTrailing - | QtCore.Qt.AlignmentFlag.AlignVCenter - ) - self.next_track_2.setObjectName("next_track_2") - self.verticalLayout_3.addWidget(self.next_track_2) - self.horizontalLayout_3.addLayout(self.verticalLayout_3) - self.verticalLayout = QtWidgets.QVBoxLayout() - self.verticalLayout.setObjectName("verticalLayout") - self.hdrPreviousTrack = QtWidgets.QLabel(parent=self.centralwidget) - sizePolicy = QtWidgets.QSizePolicy( - QtWidgets.QSizePolicy.Policy.Preferred, - QtWidgets.QSizePolicy.Policy.Preferred, - ) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.hdrPreviousTrack.sizePolicy().hasHeightForWidth() - ) - self.hdrPreviousTrack.setSizePolicy(sizePolicy) - self.hdrPreviousTrack.setMinimumSize(QtCore.QSize(0, 0)) - self.hdrPreviousTrack.setMaximumSize(QtCore.QSize(16777215, 16777215)) - font = QtGui.QFont() - font.setFamily("Sans") - font.setPointSize(20) - self.hdrPreviousTrack.setFont(font) - self.hdrPreviousTrack.setStyleSheet( - "background-color: #f8d7da;\n" "border: 1px solid rgb(85, 87, 83);" - ) - self.hdrPreviousTrack.setText("") - self.hdrPreviousTrack.setWordWrap(False) - self.hdrPreviousTrack.setObjectName("hdrPreviousTrack") - self.verticalLayout.addWidget(self.hdrPreviousTrack) - self.hdrCurrentTrack = QtWidgets.QPushButton(parent=self.centralwidget) - sizePolicy = QtWidgets.QSizePolicy( - QtWidgets.QSizePolicy.Policy.Preferred, - QtWidgets.QSizePolicy.Policy.Preferred, - ) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.hdrCurrentTrack.sizePolicy().hasHeightForWidth() - ) - self.hdrCurrentTrack.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(20) - self.hdrCurrentTrack.setFont(font) - self.hdrCurrentTrack.setStyleSheet( - "background-color: #d4edda;\n" - "border: 1px solid rgb(85, 87, 83);\n" - "text-align: left;\n" - "padding-left: 8px;\n" - "" - ) - self.hdrCurrentTrack.setText("") - self.hdrCurrentTrack.setFlat(True) - self.hdrCurrentTrack.setObjectName("hdrCurrentTrack") - self.verticalLayout.addWidget(self.hdrCurrentTrack) - self.hdrNextTrack = QtWidgets.QPushButton(parent=self.centralwidget) - sizePolicy = QtWidgets.QSizePolicy( - QtWidgets.QSizePolicy.Policy.Preferred, - QtWidgets.QSizePolicy.Policy.Preferred, - ) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.hdrNextTrack.sizePolicy().hasHeightForWidth()) - self.hdrNextTrack.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(20) - self.hdrNextTrack.setFont(font) - self.hdrNextTrack.setStyleSheet( - "background-color: #fff3cd;\n" - "border: 1px solid rgb(85, 87, 83);\n" - "text-align: left;\n" - "padding-left: 8px;" - ) - self.hdrNextTrack.setText("") - self.hdrNextTrack.setFlat(True) - self.hdrNextTrack.setObjectName("hdrNextTrack") - self.verticalLayout.addWidget(self.hdrNextTrack) - self.horizontalLayout_3.addLayout(self.verticalLayout) - self.frame_2 = QtWidgets.QFrame(parent=self.centralwidget) - self.frame_2.setMinimumSize(QtCore.QSize(0, 131)) - self.frame_2.setMaximumSize(QtCore.QSize(230, 131)) - self.frame_2.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.frame_2.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) - self.frame_2.setObjectName("frame_2") - self.verticalLayout_10 = QtWidgets.QVBoxLayout(self.frame_2) - self.verticalLayout_10.setObjectName("verticalLayout_10") - self.lblTOD = QtWidgets.QLabel(parent=self.frame_2) - self.lblTOD.setMinimumSize(QtCore.QSize(208, 0)) - font = QtGui.QFont() - font.setPointSize(35) - self.lblTOD.setFont(font) - self.lblTOD.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.lblTOD.setObjectName("lblTOD") - self.verticalLayout_10.addWidget(self.lblTOD) - self.label_elapsed_timer = QtWidgets.QLabel(parent=self.frame_2) - font = QtGui.QFont() - font.setFamily("FreeSans") - font.setPointSize(18) - font.setBold(False) - font.setWeight(50) - self.label_elapsed_timer.setFont(font) - self.label_elapsed_timer.setStyleSheet("color: black;") - self.label_elapsed_timer.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.label_elapsed_timer.setObjectName("label_elapsed_timer") - self.verticalLayout_10.addWidget(self.label_elapsed_timer) - self.horizontalLayout_3.addWidget(self.frame_2) - self.gridLayout_4.addLayout(self.horizontalLayout_3, 0, 0, 1, 1) - self.frame_4 = QtWidgets.QFrame(parent=self.centralwidget) - self.frame_4.setMinimumSize(QtCore.QSize(0, 16)) - self.frame_4.setAutoFillBackground(False) - self.frame_4.setStyleSheet("background-color: rgb(154, 153, 150)") - self.frame_4.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.frame_4.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) - self.frame_4.setObjectName("frame_4") - self.gridLayout_4.addWidget(self.frame_4, 1, 0, 1, 1) - self.cartsWidget = QtWidgets.QWidget(parent=self.centralwidget) - self.cartsWidget.setObjectName("cartsWidget") - self.horizontalLayout_Carts = QtWidgets.QHBoxLayout(self.cartsWidget) - self.horizontalLayout_Carts.setObjectName("horizontalLayout_Carts") - spacerItem = QtWidgets.QSpacerItem( - 40, - 20, - QtWidgets.QSizePolicy.Policy.Expanding, - QtWidgets.QSizePolicy.Policy.Minimum, - ) - self.horizontalLayout_Carts.addItem(spacerItem) - self.gridLayout_4.addWidget(self.cartsWidget, 2, 0, 1, 1) - self.frame_6 = QtWidgets.QFrame(parent=self.centralwidget) - self.frame_6.setMinimumSize(QtCore.QSize(0, 16)) - self.frame_6.setAutoFillBackground(False) - self.frame_6.setStyleSheet("background-color: rgb(154, 153, 150)") - self.frame_6.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.frame_6.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) - self.frame_6.setObjectName("frame_6") - self.gridLayout_4.addWidget(self.frame_6, 3, 0, 1, 1) - self.splitter = QtWidgets.QSplitter(parent=self.centralwidget) - self.splitter.setOrientation(QtCore.Qt.Orientation.Vertical) - self.splitter.setObjectName("splitter") - self.tabPlaylist = QtWidgets.QTabWidget(parent=self.splitter) - self.tabPlaylist.setDocumentMode(False) - self.tabPlaylist.setTabsClosable(True) - self.tabPlaylist.setMovable(True) - self.tabPlaylist.setObjectName("tabPlaylist") - self.tabInfolist = InfoTabs(parent=self.splitter) - self.tabInfolist.setDocumentMode(False) - self.tabInfolist.setTabsClosable(True) - self.tabInfolist.setMovable(True) - self.tabInfolist.setTabBarAutoHide(False) - self.tabInfolist.setObjectName("tabInfolist") - self.gridLayout_4.addWidget(self.splitter, 4, 0, 1, 1) - self.InfoFooterFrame = QtWidgets.QFrame(parent=self.centralwidget) - self.InfoFooterFrame.setMaximumSize(QtCore.QSize(16777215, 16777215)) - self.InfoFooterFrame.setStyleSheet("background-color: rgb(192, 191, 188)") - self.InfoFooterFrame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.InfoFooterFrame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) - self.InfoFooterFrame.setObjectName("InfoFooterFrame") - self.horizontalLayout = QtWidgets.QHBoxLayout(self.InfoFooterFrame) - self.horizontalLayout.setObjectName("horizontalLayout") - self.FadeStopInfoFrame = QtWidgets.QFrame(parent=self.InfoFooterFrame) - self.FadeStopInfoFrame.setMinimumSize(QtCore.QSize(152, 112)) - self.FadeStopInfoFrame.setMaximumSize(QtCore.QSize(184, 16777215)) - self.FadeStopInfoFrame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.FadeStopInfoFrame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) - self.FadeStopInfoFrame.setObjectName("FadeStopInfoFrame") - self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.FadeStopInfoFrame) - self.verticalLayout_4.setObjectName("verticalLayout_4") - self.btnPreview = QtWidgets.QPushButton(parent=self.FadeStopInfoFrame) - self.btnPreview.setMinimumSize(QtCore.QSize(132, 41)) - icon1 = QtGui.QIcon() - icon1.addPixmap( - QtGui.QPixmap(":/icons/headphones"), - QtGui.QIcon.Mode.Normal, - QtGui.QIcon.State.Off, - ) - self.btnPreview.setIcon(icon1) - self.btnPreview.setIconSize(QtCore.QSize(30, 30)) - self.btnPreview.setCheckable(True) - self.btnPreview.setObjectName("btnPreview") - self.verticalLayout_4.addWidget(self.btnPreview) - self.groupBoxIntroControls = QtWidgets.QGroupBox(parent=self.FadeStopInfoFrame) - self.groupBoxIntroControls.setMinimumSize(QtCore.QSize(132, 46)) - self.groupBoxIntroControls.setMaximumSize(QtCore.QSize(132, 46)) - self.groupBoxIntroControls.setTitle("") - self.groupBoxIntroControls.setObjectName("groupBoxIntroControls") - self.btnPreviewStart = QtWidgets.QPushButton(parent=self.groupBoxIntroControls) - self.btnPreviewStart.setGeometry(QtCore.QRect(0, 0, 44, 23)) - self.btnPreviewStart.setMinimumSize(QtCore.QSize(44, 23)) - self.btnPreviewStart.setMaximumSize(QtCore.QSize(44, 23)) - self.btnPreviewStart.setObjectName("btnPreviewStart") - self.btnPreviewArm = QtWidgets.QPushButton(parent=self.groupBoxIntroControls) - self.btnPreviewArm.setGeometry(QtCore.QRect(44, 0, 44, 23)) - self.btnPreviewArm.setMinimumSize(QtCore.QSize(44, 23)) - self.btnPreviewArm.setMaximumSize(QtCore.QSize(44, 23)) - self.btnPreviewArm.setText("") - icon2 = QtGui.QIcon() - icon2.addPixmap( - QtGui.QPixmap(":/icons/record-button.png"), - QtGui.QIcon.Mode.Normal, - QtGui.QIcon.State.Off, - ) - icon2.addPixmap( - QtGui.QPixmap(":/icons/record-red-button.png"), - QtGui.QIcon.Mode.Normal, - QtGui.QIcon.State.On, - ) - self.btnPreviewArm.setIcon(icon2) - self.btnPreviewArm.setCheckable(True) - self.btnPreviewArm.setObjectName("btnPreviewArm") - self.btnPreviewEnd = QtWidgets.QPushButton(parent=self.groupBoxIntroControls) - self.btnPreviewEnd.setGeometry(QtCore.QRect(88, 0, 44, 23)) - self.btnPreviewEnd.setMinimumSize(QtCore.QSize(44, 23)) - self.btnPreviewEnd.setMaximumSize(QtCore.QSize(44, 23)) - self.btnPreviewEnd.setObjectName("btnPreviewEnd") - self.btnPreviewBack = QtWidgets.QPushButton(parent=self.groupBoxIntroControls) - self.btnPreviewBack.setGeometry(QtCore.QRect(0, 23, 44, 23)) - self.btnPreviewBack.setMinimumSize(QtCore.QSize(44, 23)) - self.btnPreviewBack.setMaximumSize(QtCore.QSize(44, 23)) - self.btnPreviewBack.setObjectName("btnPreviewBack") - self.btnPreviewMark = QtWidgets.QPushButton(parent=self.groupBoxIntroControls) - self.btnPreviewMark.setEnabled(False) - self.btnPreviewMark.setGeometry(QtCore.QRect(44, 23, 44, 23)) - self.btnPreviewMark.setMinimumSize(QtCore.QSize(44, 23)) - self.btnPreviewMark.setMaximumSize(QtCore.QSize(44, 23)) - self.btnPreviewMark.setText("") - icon3 = QtGui.QIcon() - icon3.addPixmap( - QtGui.QPixmap(":/icons/star.png"), - QtGui.QIcon.Mode.Normal, - QtGui.QIcon.State.On, - ) - icon3.addPixmap( - QtGui.QPixmap(":/icons/star_empty.png"), - QtGui.QIcon.Mode.Disabled, - QtGui.QIcon.State.Off, - ) - self.btnPreviewMark.setIcon(icon3) - self.btnPreviewMark.setObjectName("btnPreviewMark") - self.btnPreviewFwd = QtWidgets.QPushButton(parent=self.groupBoxIntroControls) - self.btnPreviewFwd.setGeometry(QtCore.QRect(88, 23, 44, 23)) - self.btnPreviewFwd.setMinimumSize(QtCore.QSize(44, 23)) - self.btnPreviewFwd.setMaximumSize(QtCore.QSize(44, 23)) - self.btnPreviewFwd.setObjectName("btnPreviewFwd") - self.verticalLayout_4.addWidget(self.groupBoxIntroControls) - self.horizontalLayout.addWidget(self.FadeStopInfoFrame) - self.frame_intro = QtWidgets.QFrame(parent=self.InfoFooterFrame) - self.frame_intro.setMinimumSize(QtCore.QSize(152, 112)) - self.frame_intro.setStyleSheet("") - self.frame_intro.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.frame_intro.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) - self.frame_intro.setObjectName("frame_intro") - self.verticalLayout_9 = QtWidgets.QVBoxLayout(self.frame_intro) - self.verticalLayout_9.setObjectName("verticalLayout_9") - self.label_7 = QtWidgets.QLabel(parent=self.frame_intro) - self.label_7.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.label_7.setObjectName("label_7") - self.verticalLayout_9.addWidget(self.label_7) - self.label_intro_timer = QtWidgets.QLabel(parent=self.frame_intro) - font = QtGui.QFont() - font.setFamily("FreeSans") - font.setPointSize(40) - font.setBold(False) - font.setWeight(50) - self.label_intro_timer.setFont(font) - self.label_intro_timer.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.label_intro_timer.setObjectName("label_intro_timer") - self.verticalLayout_9.addWidget(self.label_intro_timer) - self.horizontalLayout.addWidget(self.frame_intro) - self.frame_toggleplayed_3db = QtWidgets.QFrame(parent=self.InfoFooterFrame) - self.frame_toggleplayed_3db.setMinimumSize(QtCore.QSize(152, 112)) - self.frame_toggleplayed_3db.setMaximumSize(QtCore.QSize(184, 16777215)) - self.frame_toggleplayed_3db.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.frame_toggleplayed_3db.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) - self.frame_toggleplayed_3db.setObjectName("frame_toggleplayed_3db") - self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.frame_toggleplayed_3db) - self.verticalLayout_6.setObjectName("verticalLayout_6") - self.btnDrop3db = QtWidgets.QPushButton(parent=self.frame_toggleplayed_3db) - self.btnDrop3db.setMinimumSize(QtCore.QSize(132, 41)) - self.btnDrop3db.setMaximumSize(QtCore.QSize(164, 16777215)) - self.btnDrop3db.setCheckable(True) - self.btnDrop3db.setObjectName("btnDrop3db") - self.verticalLayout_6.addWidget(self.btnDrop3db) - self.btnHidePlayed = QtWidgets.QPushButton(parent=self.frame_toggleplayed_3db) - self.btnHidePlayed.setMinimumSize(QtCore.QSize(132, 41)) - self.btnHidePlayed.setMaximumSize(QtCore.QSize(164, 16777215)) - self.btnHidePlayed.setCheckable(True) - self.btnHidePlayed.setObjectName("btnHidePlayed") - self.verticalLayout_6.addWidget(self.btnHidePlayed) - self.horizontalLayout.addWidget(self.frame_toggleplayed_3db) - self.frame_fade = QtWidgets.QFrame(parent=self.InfoFooterFrame) - self.frame_fade.setMinimumSize(QtCore.QSize(152, 112)) - self.frame_fade.setStyleSheet("") - self.frame_fade.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.frame_fade.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) - self.frame_fade.setObjectName("frame_fade") - self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.frame_fade) - self.verticalLayout_2.setObjectName("verticalLayout_2") - self.label_4 = QtWidgets.QLabel(parent=self.frame_fade) - self.label_4.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.label_4.setObjectName("label_4") - self.verticalLayout_2.addWidget(self.label_4) - self.label_fade_timer = QtWidgets.QLabel(parent=self.frame_fade) - font = QtGui.QFont() - font.setFamily("FreeSans") - font.setPointSize(40) - font.setBold(False) - font.setWeight(50) - self.label_fade_timer.setFont(font) - self.label_fade_timer.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.label_fade_timer.setObjectName("label_fade_timer") - self.verticalLayout_2.addWidget(self.label_fade_timer) - self.horizontalLayout.addWidget(self.frame_fade) - self.frame_silent = QtWidgets.QFrame(parent=self.InfoFooterFrame) - self.frame_silent.setMinimumSize(QtCore.QSize(152, 112)) - self.frame_silent.setStyleSheet("") - self.frame_silent.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.frame_silent.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) - self.frame_silent.setObjectName("frame_silent") - self.verticalLayout_7 = QtWidgets.QVBoxLayout(self.frame_silent) - self.verticalLayout_7.setObjectName("verticalLayout_7") - self.label_5 = QtWidgets.QLabel(parent=self.frame_silent) - self.label_5.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.label_5.setObjectName("label_5") - self.verticalLayout_7.addWidget(self.label_5) - self.label_silent_timer = QtWidgets.QLabel(parent=self.frame_silent) - font = QtGui.QFont() - font.setFamily("FreeSans") - font.setPointSize(40) - font.setBold(False) - font.setWeight(50) - self.label_silent_timer.setFont(font) - self.label_silent_timer.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.label_silent_timer.setObjectName("label_silent_timer") - self.verticalLayout_7.addWidget(self.label_silent_timer) - self.horizontalLayout.addWidget(self.frame_silent) - self.widgetFadeVolume = PlotWidget(parent=self.InfoFooterFrame) - sizePolicy = QtWidgets.QSizePolicy( - QtWidgets.QSizePolicy.Policy.Preferred, - QtWidgets.QSizePolicy.Policy.Preferred, - ) - sizePolicy.setHorizontalStretch(1) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.widgetFadeVolume.sizePolicy().hasHeightForWidth() - ) - self.widgetFadeVolume.setSizePolicy(sizePolicy) - self.widgetFadeVolume.setMinimumSize(QtCore.QSize(0, 0)) - self.widgetFadeVolume.setObjectName("widgetFadeVolume") - self.horizontalLayout.addWidget(self.widgetFadeVolume) - self.frame = QtWidgets.QFrame(parent=self.InfoFooterFrame) - self.frame.setMinimumSize(QtCore.QSize(151, 0)) - self.frame.setMaximumSize(QtCore.QSize(151, 112)) - self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) - self.frame.setObjectName("frame") - self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.frame) - self.verticalLayout_5.setObjectName("verticalLayout_5") - self.btnFade = QtWidgets.QPushButton(parent=self.frame) - self.btnFade.setMinimumSize(QtCore.QSize(132, 32)) - self.btnFade.setMaximumSize(QtCore.QSize(164, 16777215)) - icon4 = QtGui.QIcon() - icon4.addPixmap( - QtGui.QPixmap(":/icons/fade"), - QtGui.QIcon.Mode.Normal, - QtGui.QIcon.State.Off, - ) - self.btnFade.setIcon(icon4) - self.btnFade.setIconSize(QtCore.QSize(30, 30)) - self.btnFade.setObjectName("btnFade") - self.verticalLayout_5.addWidget(self.btnFade) - self.btnStop = QtWidgets.QPushButton(parent=self.frame) - self.btnStop.setMinimumSize(QtCore.QSize(0, 36)) - icon5 = QtGui.QIcon() - icon5.addPixmap( - QtGui.QPixmap(":/icons/stopsign"), - QtGui.QIcon.Mode.Normal, - QtGui.QIcon.State.Off, - ) - self.btnStop.setIcon(icon5) - self.btnStop.setObjectName("btnStop") - self.verticalLayout_5.addWidget(self.btnStop) - self.horizontalLayout.addWidget(self.frame) - self.gridLayout_4.addWidget(self.InfoFooterFrame, 5, 0, 1, 1) - MainWindow.setCentralWidget(self.centralwidget) - self.menubar = QtWidgets.QMenuBar(parent=MainWindow) - self.menubar.setGeometry(QtCore.QRect(0, 0, 1280, 29)) - self.menubar.setObjectName("menubar") - self.menuFile = QtWidgets.QMenu(parent=self.menubar) - self.menuFile.setObjectName("menuFile") - self.menuPlaylist = QtWidgets.QMenu(parent=self.menubar) - self.menuPlaylist.setObjectName("menuPlaylist") - self.menuSearc_h = QtWidgets.QMenu(parent=self.menubar) - self.menuSearc_h.setObjectName("menuSearc_h") - self.menuHelp = QtWidgets.QMenu(parent=self.menubar) - self.menuHelp.setObjectName("menuHelp") - MainWindow.setMenuBar(self.menubar) - self.statusbar = QtWidgets.QStatusBar(parent=MainWindow) - self.statusbar.setEnabled(True) - self.statusbar.setStyleSheet("background-color: rgb(211, 215, 207);") - self.statusbar.setObjectName("statusbar") - MainWindow.setStatusBar(self.statusbar) - self.actionPlay_next = QtGui.QAction(parent=MainWindow) - icon6 = QtGui.QIcon() - icon6.addPixmap( - QtGui.QPixmap("app/ui/../../../../../../.designer/backup/icon-play.png"), - QtGui.QIcon.Mode.Normal, - QtGui.QIcon.State.Off, - ) - self.actionPlay_next.setIcon(icon6) - self.actionPlay_next.setObjectName("actionPlay_next") - self.actionSkipToNext = QtGui.QAction(parent=MainWindow) - icon7 = QtGui.QIcon() - icon7.addPixmap( - QtGui.QPixmap(":/icons/next"), - QtGui.QIcon.Mode.Normal, - QtGui.QIcon.State.Off, - ) - self.actionSkipToNext.setIcon(icon7) - self.actionSkipToNext.setObjectName("actionSkipToNext") - self.actionInsertTrack = QtGui.QAction(parent=MainWindow) - icon8 = QtGui.QIcon() - icon8.addPixmap( - QtGui.QPixmap( - "app/ui/../../../../../../.designer/backup/icon_search_database.png" - ), - QtGui.QIcon.Mode.Normal, - QtGui.QIcon.State.Off, - ) - self.actionInsertTrack.setIcon(icon8) - self.actionInsertTrack.setObjectName("actionInsertTrack") - self.actionAdd_file = QtGui.QAction(parent=MainWindow) - icon9 = QtGui.QIcon() - icon9.addPixmap( - QtGui.QPixmap( - "app/ui/../../../../../../.designer/backup/icon_open_file.png" - ), - QtGui.QIcon.Mode.Normal, - QtGui.QIcon.State.Off, - ) - self.actionAdd_file.setIcon(icon9) - self.actionAdd_file.setObjectName("actionAdd_file") - self.actionFade = QtGui.QAction(parent=MainWindow) - icon10 = QtGui.QIcon() - icon10.addPixmap( - QtGui.QPixmap("app/ui/../../../../../../.designer/backup/icon-fade.png"), - QtGui.QIcon.Mode.Normal, - QtGui.QIcon.State.Off, - ) - self.actionFade.setIcon(icon10) - self.actionFade.setObjectName("actionFade") - self.actionStop = QtGui.QAction(parent=MainWindow) - icon11 = QtGui.QIcon() - icon11.addPixmap( - QtGui.QPixmap(":/icons/stop"), - QtGui.QIcon.Mode.Normal, - QtGui.QIcon.State.Off, - ) - self.actionStop.setIcon(icon11) - self.actionStop.setObjectName("actionStop") - self.action_Clear_selection = QtGui.QAction(parent=MainWindow) - self.action_Clear_selection.setObjectName("action_Clear_selection") - self.action_Resume_previous = QtGui.QAction(parent=MainWindow) - icon12 = QtGui.QIcon() - icon12.addPixmap( - QtGui.QPixmap(":/icons/previous"), - QtGui.QIcon.Mode.Normal, - QtGui.QIcon.State.Off, - ) - self.action_Resume_previous.setIcon(icon12) - self.action_Resume_previous.setObjectName("action_Resume_previous") - self.actionE_xit = QtGui.QAction(parent=MainWindow) - self.actionE_xit.setObjectName("actionE_xit") - self.actionTest = QtGui.QAction(parent=MainWindow) - self.actionTest.setObjectName("actionTest") - self.actionOpenPlaylist = QtGui.QAction(parent=MainWindow) - self.actionOpenPlaylist.setObjectName("actionOpenPlaylist") - self.actionNewPlaylist = QtGui.QAction(parent=MainWindow) - self.actionNewPlaylist.setObjectName("actionNewPlaylist") - self.actionTestFunction = QtGui.QAction(parent=MainWindow) - self.actionTestFunction.setObjectName("actionTestFunction") - self.actionSkipToFade = QtGui.QAction(parent=MainWindow) - self.actionSkipToFade.setObjectName("actionSkipToFade") - self.actionSkipToEnd = QtGui.QAction(parent=MainWindow) - self.actionSkipToEnd.setObjectName("actionSkipToEnd") - self.actionClosePlaylist = QtGui.QAction(parent=MainWindow) - self.actionClosePlaylist.setEnabled(True) - self.actionClosePlaylist.setObjectName("actionClosePlaylist") - self.actionRenamePlaylist = QtGui.QAction(parent=MainWindow) - self.actionRenamePlaylist.setEnabled(True) - self.actionRenamePlaylist.setObjectName("actionRenamePlaylist") - self.actionDeletePlaylist = QtGui.QAction(parent=MainWindow) - self.actionDeletePlaylist.setEnabled(True) - self.actionDeletePlaylist.setObjectName("actionDeletePlaylist") - self.actionMoveSelected = QtGui.QAction(parent=MainWindow) - self.actionMoveSelected.setObjectName("actionMoveSelected") - self.actionExport_playlist = QtGui.QAction(parent=MainWindow) - self.actionExport_playlist.setObjectName("actionExport_playlist") - self.actionSetNext = QtGui.QAction(parent=MainWindow) - self.actionSetNext.setObjectName("actionSetNext") - self.actionSelect_next_track = QtGui.QAction(parent=MainWindow) - self.actionSelect_next_track.setObjectName("actionSelect_next_track") - self.actionSelect_previous_track = QtGui.QAction(parent=MainWindow) - self.actionSelect_previous_track.setObjectName("actionSelect_previous_track") - self.actionSelect_played_tracks = QtGui.QAction(parent=MainWindow) - self.actionSelect_played_tracks.setObjectName("actionSelect_played_tracks") - self.actionMoveUnplayed = QtGui.QAction(parent=MainWindow) - self.actionMoveUnplayed.setObjectName("actionMoveUnplayed") - self.actionAdd_note = QtGui.QAction(parent=MainWindow) - self.actionAdd_note.setObjectName("actionAdd_note") - self.actionEnable_controls = QtGui.QAction(parent=MainWindow) - self.actionEnable_controls.setObjectName("actionEnable_controls") - self.actionImport = QtGui.QAction(parent=MainWindow) - self.actionImport.setObjectName("actionImport") - self.actionDownload_CSV_of_played_tracks = QtGui.QAction(parent=MainWindow) - self.actionDownload_CSV_of_played_tracks.setObjectName( - "actionDownload_CSV_of_played_tracks" - ) - self.actionSearch = QtGui.QAction(parent=MainWindow) - self.actionSearch.setObjectName("actionSearch") - self.actionInsertSectionHeader = QtGui.QAction(parent=MainWindow) - self.actionInsertSectionHeader.setObjectName("actionInsertSectionHeader") - self.actionRemove = QtGui.QAction(parent=MainWindow) - self.actionRemove.setObjectName("actionRemove") - self.actionFind_next = QtGui.QAction(parent=MainWindow) - self.actionFind_next.setObjectName("actionFind_next") - self.actionFind_previous = QtGui.QAction(parent=MainWindow) - self.actionFind_previous.setObjectName("actionFind_previous") - self.action_About = QtGui.QAction(parent=MainWindow) - self.action_About.setObjectName("action_About") - self.actionSave_as_template = QtGui.QAction(parent=MainWindow) - self.actionSave_as_template.setObjectName("actionSave_as_template") - self.actionManage_templates = QtGui.QAction(parent=MainWindow) - self.actionManage_templates.setObjectName("actionManage_templates") - self.actionDebug = QtGui.QAction(parent=MainWindow) - self.actionDebug.setObjectName("actionDebug") - self.actionAdd_cart = QtGui.QAction(parent=MainWindow) - self.actionAdd_cart.setObjectName("actionAdd_cart") - self.actionMark_for_moving = QtGui.QAction(parent=MainWindow) - self.actionMark_for_moving.setObjectName("actionMark_for_moving") - self.actionPaste = QtGui.QAction(parent=MainWindow) - self.actionPaste.setObjectName("actionPaste") - self.actionResume = QtGui.QAction(parent=MainWindow) - self.actionResume.setObjectName("actionResume") - self.actionSearch_title_in_Wikipedia = QtGui.QAction(parent=MainWindow) - self.actionSearch_title_in_Wikipedia.setObjectName( - "actionSearch_title_in_Wikipedia" - ) - self.actionSearch_title_in_Songfacts = QtGui.QAction(parent=MainWindow) - self.actionSearch_title_in_Songfacts.setObjectName( - "actionSearch_title_in_Songfacts" - ) - self.actionSelect_duplicate_rows = QtGui.QAction(parent=MainWindow) - self.actionSelect_duplicate_rows.setObjectName("actionSelect_duplicate_rows") - self.actionImport_files = QtGui.QAction(parent=MainWindow) - self.actionImport_files.setObjectName("actionImport_files") - self.actionOpenQuerylist = QtGui.QAction(parent=MainWindow) - self.actionOpenQuerylist.setObjectName("actionOpenQuerylist") - self.actionManage_querylists = QtGui.QAction(parent=MainWindow) - self.actionManage_querylists.setObjectName("actionManage_querylists") - self.menuFile.addSeparator() - self.menuFile.addAction(self.actionInsertTrack) - self.menuFile.addAction(self.actionRemove) - self.menuFile.addAction(self.actionInsertSectionHeader) - self.menuFile.addSeparator() - self.menuFile.addAction(self.actionMark_for_moving) - self.menuFile.addAction(self.actionPaste) - self.menuFile.addSeparator() - self.menuFile.addAction(self.actionExport_playlist) - self.menuFile.addAction(self.actionDownload_CSV_of_played_tracks) - self.menuFile.addSeparator() - self.menuFile.addAction(self.actionSelect_duplicate_rows) - self.menuFile.addAction(self.actionMoveSelected) - self.menuFile.addAction(self.actionMoveUnplayed) - self.menuFile.addAction(self.action_Clear_selection) - self.menuPlaylist.addSeparator() - self.menuPlaylist.addSeparator() - self.menuPlaylist.addAction(self.actionOpenPlaylist) - self.menuPlaylist.addAction(self.actionNewPlaylist) - self.menuPlaylist.addAction(self.actionClosePlaylist) - self.menuPlaylist.addAction(self.actionRenamePlaylist) - self.menuPlaylist.addAction(self.actionDeletePlaylist) - self.menuPlaylist.addSeparator() - self.menuPlaylist.addAction(self.actionOpenQuerylist) - self.menuPlaylist.addAction(self.actionManage_querylists) - self.menuPlaylist.addSeparator() - self.menuPlaylist.addAction(self.actionSave_as_template) - self.menuPlaylist.addAction(self.actionManage_templates) - self.menuPlaylist.addSeparator() - self.menuPlaylist.addAction(self.actionImport_files) - self.menuPlaylist.addSeparator() - self.menuPlaylist.addAction(self.actionE_xit) - self.menuSearc_h.addAction(self.actionSetNext) - self.menuSearc_h.addAction(self.actionPlay_next) - self.menuSearc_h.addAction(self.actionFade) - self.menuSearc_h.addAction(self.actionStop) - self.menuSearc_h.addAction(self.actionResume) - self.menuSearc_h.addAction(self.actionSkipToNext) - self.menuSearc_h.addSeparator() - self.menuSearc_h.addAction(self.actionSearch) - self.menuSearc_h.addAction(self.actionSearch_title_in_Wikipedia) - self.menuSearc_h.addAction(self.actionSearch_title_in_Songfacts) - self.menuHelp.addAction(self.action_About) - self.menuHelp.addAction(self.actionDebug) - self.menubar.addAction(self.menuPlaylist.menuAction()) - self.menubar.addAction(self.menuFile.menuAction()) - self.menubar.addAction(self.menuSearc_h.menuAction()) - self.menubar.addAction(self.menuHelp.menuAction()) - - self.retranslateUi(MainWindow) - self.tabPlaylist.setCurrentIndex(-1) - self.tabInfolist.setCurrentIndex(-1) - self.actionE_xit.triggered.connect(MainWindow.close) # type: ignore - QtCore.QMetaObject.connectSlotsByName(MainWindow) - - def retranslateUi(self, MainWindow): - _translate = QtCore.QCoreApplication.translate - MainWindow.setWindowTitle(_translate("MainWindow", "Music Muster")) - self.previous_track_2.setText(_translate("MainWindow", "Last track:")) - self.current_track_2.setText(_translate("MainWindow", "Current track:")) - self.next_track_2.setText(_translate("MainWindow", "Next track:")) - self.lblTOD.setText(_translate("MainWindow", "00:00:00")) - self.label_elapsed_timer.setText(_translate("MainWindow", "00:00 / 00:00")) - self.btnPreview.setText(_translate("MainWindow", " Preview")) - self.btnPreviewStart.setText(_translate("MainWindow", "<<")) - self.btnPreviewEnd.setText(_translate("MainWindow", ">>")) - self.btnPreviewBack.setText(_translate("MainWindow", "<")) - self.btnPreviewFwd.setText(_translate("MainWindow", ">")) - self.label_7.setText(_translate("MainWindow", "Intro")) - self.label_intro_timer.setText(_translate("MainWindow", "0:0")) - self.btnDrop3db.setText(_translate("MainWindow", "-3dB to talk")) - self.btnHidePlayed.setText(_translate("MainWindow", "Hide played")) - self.label_4.setText(_translate("MainWindow", "Fade")) - self.label_fade_timer.setText(_translate("MainWindow", "00:00")) - self.label_5.setText(_translate("MainWindow", "Silent")) - self.label_silent_timer.setText(_translate("MainWindow", "00:00")) - self.btnFade.setText(_translate("MainWindow", " Fade")) - self.btnStop.setText(_translate("MainWindow", " Stop")) - self.menuFile.setTitle(_translate("MainWindow", "&Playlist")) - self.menuPlaylist.setTitle(_translate("MainWindow", "&File")) - self.menuSearc_h.setTitle(_translate("MainWindow", "&Music")) - self.menuHelp.setTitle(_translate("MainWindow", "Help")) - self.actionPlay_next.setText(_translate("MainWindow", "&Play next")) - self.actionPlay_next.setShortcut(_translate("MainWindow", "Return")) - self.actionSkipToNext.setText(_translate("MainWindow", "Skip to &next")) - self.actionSkipToNext.setShortcut(_translate("MainWindow", "Ctrl+Alt+Return")) - self.actionInsertTrack.setText(_translate("MainWindow", "Insert &track...")) - self.actionInsertTrack.setShortcut(_translate("MainWindow", "Ctrl+T")) - self.actionAdd_file.setText(_translate("MainWindow", "Add &file")) - self.actionAdd_file.setShortcut(_translate("MainWindow", "Ctrl+F")) - self.actionFade.setText(_translate("MainWindow", "F&ade")) - self.actionFade.setShortcut(_translate("MainWindow", "Ctrl+Z")) - self.actionStop.setText(_translate("MainWindow", "S&top")) - self.actionStop.setShortcut(_translate("MainWindow", "Ctrl+Alt+S")) - self.action_Clear_selection.setText( - _translate("MainWindow", "Clear &selection") - ) - self.action_Clear_selection.setShortcut(_translate("MainWindow", "Esc")) - self.action_Resume_previous.setText( - _translate("MainWindow", "&Resume previous") - ) - self.actionE_xit.setText(_translate("MainWindow", "E&xit")) - self.actionTest.setText(_translate("MainWindow", "&Test")) - self.actionOpenPlaylist.setText(_translate("MainWindow", "O&pen...")) - self.actionNewPlaylist.setText(_translate("MainWindow", "&New...")) - self.actionTestFunction.setText(_translate("MainWindow", "&Test function")) - self.actionSkipToFade.setText( - _translate("MainWindow", "&Skip to start of fade") - ) - self.actionSkipToEnd.setText(_translate("MainWindow", "Skip to &end of track")) - self.actionClosePlaylist.setText(_translate("MainWindow", "&Close")) - self.actionRenamePlaylist.setText(_translate("MainWindow", "&Rename...")) - self.actionDeletePlaylist.setText(_translate("MainWindow", "Dele&te...")) - self.actionMoveSelected.setText( - _translate("MainWindow", "Mo&ve selected tracks to...") - ) - self.actionExport_playlist.setText(_translate("MainWindow", "E&xport...")) - self.actionSetNext.setText(_translate("MainWindow", "Set &next")) - self.actionSetNext.setShortcut(_translate("MainWindow", "Ctrl+N")) - self.actionSelect_next_track.setText( - _translate("MainWindow", "Select next track") - ) - self.actionSelect_next_track.setShortcut(_translate("MainWindow", "J")) - self.actionSelect_previous_track.setText( - _translate("MainWindow", "Select previous track") - ) - self.actionSelect_previous_track.setShortcut(_translate("MainWindow", "K")) - self.actionSelect_played_tracks.setText( - _translate("MainWindow", "Select played tracks") - ) - self.actionMoveUnplayed.setText( - _translate("MainWindow", "Move &unplayed tracks to...") - ) - self.actionAdd_note.setText(_translate("MainWindow", "Add note...")) - self.actionAdd_note.setShortcut(_translate("MainWindow", "Ctrl+T")) - self.actionEnable_controls.setText(_translate("MainWindow", "Enable controls")) - self.actionImport.setText(_translate("MainWindow", "Import track...")) - self.actionImport.setShortcut(_translate("MainWindow", "Ctrl+Shift+I")) - self.actionDownload_CSV_of_played_tracks.setText( - _translate("MainWindow", "Download CSV of played tracks...") - ) - self.actionSearch.setText(_translate("MainWindow", "Search...")) - self.actionSearch.setShortcut(_translate("MainWindow", "/")) - self.actionInsertSectionHeader.setText( - _translate("MainWindow", "Insert §ion header...") - ) - self.actionInsertSectionHeader.setShortcut(_translate("MainWindow", "Ctrl+H")) - self.actionRemove.setText(_translate("MainWindow", "&Remove track")) - self.actionFind_next.setText(_translate("MainWindow", "Find next")) - self.actionFind_next.setShortcut(_translate("MainWindow", "N")) - self.actionFind_previous.setText(_translate("MainWindow", "Find previous")) - self.actionFind_previous.setShortcut(_translate("MainWindow", "P")) - self.action_About.setText(_translate("MainWindow", "&About")) - self.actionSave_as_template.setText( - _translate("MainWindow", "Save as template...") - ) - self.actionManage_templates.setText( - _translate("MainWindow", "Manage templates...") - ) - self.actionDebug.setText(_translate("MainWindow", "Debug")) - self.actionAdd_cart.setText(_translate("MainWindow", "Edit cart &1...")) - self.actionMark_for_moving.setText(_translate("MainWindow", "Mark for moving")) - self.actionMark_for_moving.setShortcut(_translate("MainWindow", "Ctrl+C")) - self.actionPaste.setText(_translate("MainWindow", "Paste")) - self.actionPaste.setShortcut(_translate("MainWindow", "Ctrl+V")) - self.actionResume.setText(_translate("MainWindow", "Resume")) - self.actionResume.setShortcut(_translate("MainWindow", "Ctrl+R")) - self.actionSearch_title_in_Wikipedia.setText( - _translate("MainWindow", "Search title in Wikipedia") - ) - self.actionSearch_title_in_Wikipedia.setShortcut( - _translate("MainWindow", "Ctrl+W") - ) - self.actionSearch_title_in_Songfacts.setText( - _translate("MainWindow", "Search title in Songfacts") - ) - self.actionSearch_title_in_Songfacts.setShortcut( - _translate("MainWindow", "Ctrl+S") - ) - self.actionSelect_duplicate_rows.setText( - _translate("MainWindow", "Select duplicate rows...") - ) - self.actionImport_files.setText(_translate("MainWindow", "Import files...")) - - -from infotabs import InfoTabs -from pyqtgraph import PlotWidget # type: ignore From 58e244af21d4c3233e1aa65c62a5e5a2f2cca00b Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Thu, 6 Mar 2025 14:30:03 +0000 Subject: [PATCH 3/3] Add profiling information for moving rows --- app/musicmuster.py | 4 +++- app/playlists.py | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/musicmuster.py b/app/musicmuster.py index cd0c312..a238059 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -57,6 +57,7 @@ from PyQt6.QtWidgets import ( ) # Third party imports +import line_profiler from pygame import mixer from sqlalchemy.orm.session import Session import stackprinter # type: ignore @@ -2113,7 +2114,8 @@ class Window(QMainWindow): webbrowser.get("browser").open_new_tab(url) - def paste_rows(self) -> None: + @line_profiler.profile + def paste_rows(self, dummy_for_profiling: int | None = None) -> None: """ Paste earlier cut rows. """ diff --git a/app/playlists.py b/app/playlists.py index 1de3892..3dc9413 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -31,6 +31,7 @@ from PyQt6.QtWidgets import ( ) # Third party imports +import line_profiler # App imports from audacity_controller import AudacityController @@ -357,7 +358,8 @@ class PlaylistTab(QTableView): # Deselect edited line self.clear_selection() - def dropEvent(self, event: Optional[QDropEvent]) -> None: + @line_profiler.profile + def dropEvent(self, event: Optional[QDropEvent], dummy: int | None = None) -> None: """ Move dropped rows """