diff --git a/app/classes.py b/app/classes.py index 41581f0..844efcb 100644 --- a/app/classes.py +++ b/app/classes.py @@ -1,36 +1,21 @@ # Standard library imports from __future__ import annotations -import ctypes from dataclasses import dataclass -import datetime as dt from enum import auto, Enum import functools -import platform -from time import sleep -from typing import Optional, NamedTuple +from typing import NamedTuple # Third party imports -import numpy as np -import pyqtgraph as pg # type: ignore -from sqlalchemy.orm.session import Session -import vlc # type: ignore # PyQt imports from PyQt6.QtCore import ( pyqtSignal, QObject, - QThread, ) -from pyqtgraph import PlotWidget -from pyqtgraph.graphicsItems.PlotDataItem import PlotDataItem # type: ignore -from pyqtgraph.graphicsItems.LinearRegionItem import LinearRegionItem # type: ignore +from PyQt6.QtGui import QAction # App imports -from config import Config -from log import log -from models import PlaylistRows -from vlcmanager import VLCManager class Col(Enum): diff --git a/app/musicmuster.py b/app/musicmuster.py index e143172..76b3f1a 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -204,8 +204,6 @@ class Window(QMainWindow, Ui_MainWindow): self.widgetFadeVolume.setDefaultPadding(0) self.widgetFadeVolume.setBackground(Config.FADE_CURVE_BACKGROUND) - self.active_tab = lambda: self.tabPlaylist.currentWidget() - self.active_proxy_model = lambda: self.tabPlaylist.currentWidget().model() self.move_source_rows: Optional[List[int]] = None self.move_source_model: Optional[PlaylistProxyModel] = None @@ -255,6 +253,12 @@ class Window(QMainWindow, Ui_MainWindow): QMessageBox.StandardButton.Ok, ) + def active_tab(self) -> PlaylistTab: + return self.tabPlaylist.currentWidget() + + def active_proxy_model(self) -> PlaylistModel: + return self.tabPlaylist.currentWidget().model() + def clear_next(self) -> None: """ Clear next track @@ -269,6 +273,7 @@ class Window(QMainWindow, Ui_MainWindow): # Unselect any selected rows if self.active_tab(): self.active_tab().clear_selection() + # Clear the search bar self.search_playlist_clear() @@ -368,8 +373,8 @@ class Window(QMainWindow, Ui_MainWindow): def connect_signals_slots(self) -> None: self.action_About.triggered.connect(self.about) self.action_Clear_selection.triggered.connect(self.clear_selection) - self.actionDebug.triggered.connect(self.debug) self.actionClosePlaylist.triggered.connect(self.close_playlist_tab) + self.actionDebug.triggered.connect(self.debug) self.actionDeletePlaylist.triggered.connect(self.delete_playlist) self.actionDownload_CSV_of_played_tracks.triggered.connect( self.download_played_tracks @@ -380,6 +385,7 @@ class Window(QMainWindow, Ui_MainWindow): self.actionInsertTrack.triggered.connect(self.insert_track) self.actionMark_for_moving.triggered.connect(self.mark_rows_for_moving) self.actionMoveSelected.triggered.connect(self.move_selected) + self.actionMoveUnplayed.triggered.connect(self.move_unplayed) self.actionNew_from_template.triggered.connect(self.new_from_template) self.actionNewPlaylist.triggered.connect(self.create_and_show_playlist) self.actionOpenPlaylist.triggered.connect(self.open_playlist) @@ -399,10 +405,10 @@ class Window(QMainWindow, Ui_MainWindow): self.actionSelect_duplicate_rows.triggered.connect( lambda: self.active_tab().select_duplicate_rows() ) - self.actionMoveUnplayed.triggered.connect(self.move_unplayed) self.actionSetNext.triggered.connect(self.set_selected_track_next) self.actionSkipToNext.triggered.connect(self.play_next) self.actionStop.triggered.connect(self.stop) + self.btnDrop3db.clicked.connect(self.drop3db) self.btnFade.clicked.connect(self.fade) self.btnHidePlayed.clicked.connect(self.hide_played) @@ -1294,16 +1300,6 @@ class Window(QMainWindow, Ui_MainWindow): return track_info - def select_next_row(self) -> None: - """Select next or first row in playlist""" - - self.active_tab().select_next_row() - - def select_previous_row(self) -> None: - """Select previous or first row in playlist""" - - self.active_tab().select_previous_row() - def set_main_window_size(self) -> None: """Set size of window from database""" @@ -1431,7 +1427,7 @@ class Window(QMainWindow, Ui_MainWindow): if track_sequence.current: track_sequence.current.stop() - def tab_change(self): + def tab_change(self) -> None: """Called when active tab changed""" self.active_tab().resize_rows() diff --git a/app/ui/main_window.ui b/app/ui/main_window.ui index e124c91..e163844 100644 --- a/app/ui/main_window.ui +++ b/app/ui/main_window.ui @@ -967,69 +967,64 @@ padding-left: 8px; - &Playlists + &Playlist - - + + + + + + + + + + + + + + + + + + + &File + + + + - - - - - - + + + + - + - Sho&wtime + &Music - + - - - - - - - - - - - - - - &Search - - - - - &Help - - - - - + - diff --git a/app/ui/main_window_ui.py b/app/ui/main_window_ui.py index edf87e3..14beafc 100644 --- a/app/ui/main_window_ui.py +++ b/app/ui/main_window_ui.py @@ -15,11 +15,7 @@ class Ui_MainWindow(object): 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, - ) + 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) @@ -31,62 +27,39 @@ class Ui_MainWindow(object): 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 = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.previous_track_2.sizePolicy().hasHeightForWidth() - ) + 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.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 = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.current_track_2.sizePolicy().hasHeightForWidth() - ) + 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.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 = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.next_track_2.sizePolicy().hasHeightForWidth()) @@ -96,29 +69,19 @@ class Ui_MainWindow(object): 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.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 = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.hdrPreviousTrack.sizePolicy().hasHeightForWidth() - ) + sizePolicy.setHeightForWidth(self.hdrPreviousTrack.sizePolicy().hasHeightForWidth()) self.hdrPreviousTrack.setSizePolicy(sizePolicy) self.hdrPreviousTrack.setMinimumSize(QtCore.QSize(0, 0)) self.hdrPreviousTrack.setMaximumSize(QtCore.QSize(16777215, 16777215)) @@ -126,43 +89,32 @@ class Ui_MainWindow(object): 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.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 = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.hdrCurrentTrack.sizePolicy().hasHeightForWidth() - ) + 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.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 = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.hdrNextTrack.sizePolicy().hasHeightForWidth()) @@ -170,12 +122,10 @@ class Ui_MainWindow(object): 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.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") @@ -222,12 +172,7 @@ class Ui_MainWindow(object): 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, - ) + 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) @@ -272,11 +217,7 @@ class Ui_MainWindow(object): 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, - ) + 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) @@ -298,16 +239,8 @@ class Ui_MainWindow(object): 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, - ) + 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") @@ -328,16 +261,8 @@ class Ui_MainWindow(object): 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, - ) + 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) @@ -438,15 +363,10 @@ class Ui_MainWindow(object): 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 = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Preferred) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.widgetFadeVolume.sizePolicy().hasHeightForWidth() - ) + sizePolicy.setHeightForWidth(self.widgetFadeVolume.sizePolicy().hasHeightForWidth()) self.widgetFadeVolume.setSizePolicy(sizePolicy) self.widgetFadeVolume.setMinimumSize(QtCore.QSize(0, 0)) self.widgetFadeVolume.setObjectName("widgetFadeVolume") @@ -463,11 +383,7 @@ class Ui_MainWindow(object): 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, - ) + 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") @@ -475,11 +391,7 @@ class Ui_MainWindow(object): 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, - ) + 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) @@ -495,8 +407,6 @@ class Ui_MainWindow(object): 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) @@ -505,71 +415,39 @@ class Ui_MainWindow(object): 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, - ) + 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, - ) + 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, - ) + 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, - ) + 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, - ) + 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, - ) + 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, - ) + 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) @@ -616,9 +494,7 @@ class Ui_MainWindow(object): 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.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) @@ -646,67 +522,63 @@ class Ui_MainWindow(object): 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_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.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.actionReplace_files = QtGui.QAction(parent=MainWindow) self.actionReplace_files.setObjectName("actionReplace_files") - self.menuFile.addAction(self.actionNewPlaylist) - self.menuFile.addAction(self.actionNew_from_template) - self.menuFile.addAction(self.actionOpenPlaylist) - self.menuFile.addAction(self.actionClosePlaylist) - self.menuFile.addAction(self.actionRenamePlaylist) - self.menuFile.addAction(self.actionDeletePlaylist) + 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.addSeparator() self.menuFile.addAction(self.actionMoveSelected) self.menuFile.addAction(self.actionMoveUnplayed) - self.menuFile.addAction(self.actionDownload_CSV_of_played_tracks) - self.menuFile.addAction(self.actionSave_as_template) - self.menuFile.addSeparator() - self.menuFile.addAction(self.actionReplace_files) - self.menuFile.addSeparator() - self.menuFile.addAction(self.actionE_xit) + self.menuFile.addAction(self.action_Clear_selection) self.menuPlaylist.addSeparator() - self.menuPlaylist.addAction(self.actionPlay_next) - self.menuPlaylist.addAction(self.actionFade) - self.menuPlaylist.addAction(self.actionStop) - self.menuPlaylist.addAction(self.actionResume) self.menuPlaylist.addSeparator() - self.menuPlaylist.addAction(self.actionSkipToNext) + 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.actionInsertSectionHeader) - self.menuPlaylist.addAction(self.actionInsertTrack) - self.menuPlaylist.addAction(self.actionRemove) + self.menuPlaylist.addAction(self.actionNew_from_template) + self.menuPlaylist.addAction(self.actionSave_as_template) self.menuPlaylist.addSeparator() - self.menuPlaylist.addAction(self.actionSetNext) - self.menuPlaylist.addAction(self.action_Clear_selection) + self.menuPlaylist.addAction(self.actionReplace_files) self.menuPlaylist.addSeparator() - self.menuPlaylist.addAction(self.actionMark_for_moving) - self.menuPlaylist.addAction(self.actionPaste) - self.menuSearc_h.addAction(self.actionSearch) + self.menuPlaylist.addAction(self.actionDebug) + self.menuPlaylist.addAction(self.action_About) + 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.menuFile.menuAction()) 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 + self.actionE_xit.triggered.connect(MainWindow.close) # type: ignore QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): @@ -732,10 +604,9 @@ class Ui_MainWindow(object): 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", "&Playlists")) - self.menuPlaylist.setTitle(_translate("MainWindow", "Sho&wtime")) - self.menuSearc_h.setTitle(_translate("MainWindow", "&Search")) - self.menuHelp.setTitle(_translate("MainWindow", "&Help")) + self.menuFile.setTitle(_translate("MainWindow", "&Playlist")) + self.menuPlaylist.setTitle(_translate("MainWindow", "&File")) + self.menuSearc_h.setTitle(_translate("MainWindow", "&Music")) self.actionPlay_next.setText(_translate("MainWindow", "&Play next")) self.actionPlay_next.setShortcut(_translate("MainWindow", "Return")) self.actionSkipToNext.setText(_translate("MainWindow", "Skip to &next")) @@ -748,58 +619,38 @@ class Ui_MainWindow(object): 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.setText(_translate("MainWindow", "Clear &selection")) self.action_Clear_selection.setShortcut(_translate("MainWindow", "Esc")) - self.action_Resume_previous.setText( - _translate("MainWindow", "&Resume previous") - ) + 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.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.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.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.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.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.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.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")) @@ -807,12 +658,8 @@ class Ui_MainWindow(object): 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.actionNew_from_template.setText( - _translate("MainWindow", "New from template...") - ) + self.actionSave_as_template.setText(_translate("MainWindow", "Save as template...")) + self.actionNew_from_template.setText(_translate("MainWindow", "New from template...")) 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")) @@ -821,23 +668,11 @@ class Ui_MainWindow(object): 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.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.actionReplace_files.setText(_translate("MainWindow", "Import files...")) - - -from infotabs import InfoTabs # type: ignore -from pyqtgraph import PlotWidget # type: ignore +from infotabs import InfoTabs +from pyqtgraph import PlotWidget