parent
17ab9c1c65
commit
eaac2ef4ca
@ -12,6 +12,7 @@ from typing import Any, Optional, NamedTuple
|
|||||||
# Third party imports
|
# Third party imports
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import pyqtgraph as pg # type: ignore
|
import pyqtgraph as pg # type: ignore
|
||||||
|
from sqlalchemy.orm.session import Session
|
||||||
import vlc # type: ignore
|
import vlc # type: ignore
|
||||||
|
|
||||||
# PyQt imports
|
# PyQt imports
|
||||||
@ -761,6 +762,17 @@ class RowAndTrack:
|
|||||||
|
|
||||||
self.fade_graph.tick(self.time_playing())
|
self.fade_graph.tick(self.time_playing())
|
||||||
|
|
||||||
|
def update_playlist_and_row(self, session: Session) -> None:
|
||||||
|
"""
|
||||||
|
Update local playlist_id and row_number from playlistrow_id
|
||||||
|
"""
|
||||||
|
|
||||||
|
plr = session.get(PlaylistRows, self.playlistrow_id)
|
||||||
|
if not plr:
|
||||||
|
raise ApplicationError(f"(Can't retrieve PlaylistRows entry, {self=}")
|
||||||
|
self.playlist_id = plr.playlist_id
|
||||||
|
self.row_number = plr.row_number
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class TrackFileData:
|
class TrackFileData:
|
||||||
|
|||||||
@ -479,9 +479,7 @@ class PlaylistRows(dbtables.PlaylistRowsTable):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
plrs = session.scalars(
|
plrs = session.scalars(
|
||||||
select(cls)
|
select(cls).where(cls.playlist_id == playlist_id).order_by(cls.row_number)
|
||||||
.where(cls.playlist_id == playlist_id)
|
|
||||||
.order_by(cls.row_number)
|
|
||||||
).all()
|
).all()
|
||||||
|
|
||||||
return plrs
|
return plrs
|
||||||
@ -566,7 +564,10 @@ class PlaylistRows(dbtables.PlaylistRowsTable):
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
@line_profiler.profile
|
@line_profiler.profile
|
||||||
def update_plr_row_numbers(
|
def update_plr_row_numbers(
|
||||||
session: Session, playlist_id: int, sqla_map: List[dict[str, int]], dummy_for_profiling=None
|
session: Session,
|
||||||
|
playlist_id: int,
|
||||||
|
sqla_map: List[dict[str, int]],
|
||||||
|
dummy_for_profiling=None,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""
|
"""
|
||||||
Take a {plrid: row_number} dictionary and update the row numbers accordingly
|
Take a {plrid: row_number} dictionary and update the row numbers accordingly
|
||||||
|
|||||||
@ -965,6 +965,16 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
row_numbers, to_row, to_playlist_id
|
row_numbers, to_row, to_playlist_id
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Reset track_sequences
|
||||||
|
with db.Session() as session:
|
||||||
|
for ts in [
|
||||||
|
track_sequence.next,
|
||||||
|
track_sequence.current,
|
||||||
|
track_sequence.previous,
|
||||||
|
]:
|
||||||
|
if ts:
|
||||||
|
ts.update_playlist_and_row(session)
|
||||||
|
|
||||||
def move_selected(self) -> None:
|
def move_selected(self) -> None:
|
||||||
"""
|
"""
|
||||||
Move selected rows to another playlist
|
Move selected rows to another playlist
|
||||||
|
|||||||
@ -746,7 +746,9 @@ class PlaylistModel(QAbstractTableModel):
|
|||||||
self.invalidate_rows(row_numbers)
|
self.invalidate_rows(row_numbers)
|
||||||
|
|
||||||
@line_profiler.profile
|
@line_profiler.profile
|
||||||
def move_rows(self, from_rows: list[int], to_row_number: int, dummy_for_profiling=None) -> None:
|
def move_rows(
|
||||||
|
self, from_rows: list[int], to_row_number: int, dummy_for_profiling=None
|
||||||
|
) -> None:
|
||||||
"""
|
"""
|
||||||
Move the playlist rows given to to_row and below.
|
Move the playlist rows given to to_row and below.
|
||||||
"""
|
"""
|
||||||
@ -813,8 +815,11 @@ class PlaylistModel(QAbstractTableModel):
|
|||||||
|
|
||||||
@line_profiler.profile
|
@line_profiler.profile
|
||||||
def move_rows_between_playlists(
|
def move_rows_between_playlists(
|
||||||
self, from_rows: list[int], to_row_number: int, to_playlist_id: int,
|
self,
|
||||||
dummy_for_profiling=None
|
from_rows: list[int],
|
||||||
|
to_row_number: int,
|
||||||
|
to_playlist_id: int,
|
||||||
|
dummy_for_profiling=None,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""
|
"""
|
||||||
Move the playlist rows given to to_row and below of to_playlist.
|
Move the playlist rows given to to_row and below of to_playlist.
|
||||||
@ -834,7 +839,6 @@ class PlaylistModel(QAbstractTableModel):
|
|||||||
self.signals.begin_reset_model_signal.emit(to_playlist_id)
|
self.signals.begin_reset_model_signal.emit(to_playlist_id)
|
||||||
|
|
||||||
with db.Session() as session:
|
with db.Session() as session:
|
||||||
|
|
||||||
for row_group in row_groups:
|
for row_group in row_groups:
|
||||||
# Make room in destination playlist
|
# Make room in destination playlist
|
||||||
max_destination_row_number = PlaylistRows.get_last_used_row(
|
max_destination_row_number = PlaylistRows.get_last_used_row(
|
||||||
@ -1098,10 +1102,8 @@ class PlaylistModel(QAbstractTableModel):
|
|||||||
track_sequence.current,
|
track_sequence.current,
|
||||||
track_sequence.previous,
|
track_sequence.previous,
|
||||||
]:
|
]:
|
||||||
if ts and ts.playlist_id == self.playlist_id and ts.row_number:
|
if ts:
|
||||||
playlist_row = session.get(PlaylistRows, ts.playlistrow_id)
|
ts.update_playlist_and_row(session)
|
||||||
if playlist_row and playlist_row.row_number != ts.row_number:
|
|
||||||
ts.row_number = playlist_row.row_number
|
|
||||||
|
|
||||||
self.update_track_times()
|
self.update_track_times()
|
||||||
|
|
||||||
|
|||||||
@ -15,7 +15,11 @@ class Ui_MainWindow(object):
|
|||||||
MainWindow.resize(1280, 857)
|
MainWindow.resize(1280, 857)
|
||||||
MainWindow.setMinimumSize(QtCore.QSize(1280, 0))
|
MainWindow.setMinimumSize(QtCore.QSize(1280, 0))
|
||||||
icon = QtGui.QIcon()
|
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.setWindowIcon(icon)
|
||||||
MainWindow.setStyleSheet("")
|
MainWindow.setStyleSheet("")
|
||||||
self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
|
self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
|
||||||
@ -27,39 +31,62 @@ class Ui_MainWindow(object):
|
|||||||
self.verticalLayout_3 = QtWidgets.QVBoxLayout()
|
self.verticalLayout_3 = QtWidgets.QVBoxLayout()
|
||||||
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
||||||
self.previous_track_2 = QtWidgets.QLabel(parent=self.centralwidget)
|
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.setHorizontalStretch(0)
|
||||||
sizePolicy.setVerticalStretch(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.setSizePolicy(sizePolicy)
|
||||||
self.previous_track_2.setMaximumSize(QtCore.QSize(230, 16777215))
|
self.previous_track_2.setMaximumSize(QtCore.QSize(230, 16777215))
|
||||||
font = QtGui.QFont()
|
font = QtGui.QFont()
|
||||||
font.setFamily("Sans")
|
font.setFamily("Sans")
|
||||||
font.setPointSize(20)
|
font.setPointSize(20)
|
||||||
self.previous_track_2.setFont(font)
|
self.previous_track_2.setFont(font)
|
||||||
self.previous_track_2.setStyleSheet("background-color: #f8d7da;\n"
|
self.previous_track_2.setStyleSheet(
|
||||||
"border: 1px solid rgb(85, 87, 83);")
|
"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.setAlignment(
|
||||||
|
QtCore.Qt.AlignmentFlag.AlignRight
|
||||||
|
| QtCore.Qt.AlignmentFlag.AlignTrailing
|
||||||
|
| QtCore.Qt.AlignmentFlag.AlignVCenter
|
||||||
|
)
|
||||||
self.previous_track_2.setObjectName("previous_track_2")
|
self.previous_track_2.setObjectName("previous_track_2")
|
||||||
self.verticalLayout_3.addWidget(self.previous_track_2)
|
self.verticalLayout_3.addWidget(self.previous_track_2)
|
||||||
self.current_track_2 = QtWidgets.QLabel(parent=self.centralwidget)
|
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.setHorizontalStretch(0)
|
||||||
sizePolicy.setVerticalStretch(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.setSizePolicy(sizePolicy)
|
||||||
self.current_track_2.setMaximumSize(QtCore.QSize(230, 16777215))
|
self.current_track_2.setMaximumSize(QtCore.QSize(230, 16777215))
|
||||||
font = QtGui.QFont()
|
font = QtGui.QFont()
|
||||||
font.setFamily("Sans")
|
font.setFamily("Sans")
|
||||||
font.setPointSize(20)
|
font.setPointSize(20)
|
||||||
self.current_track_2.setFont(font)
|
self.current_track_2.setFont(font)
|
||||||
self.current_track_2.setStyleSheet("background-color: #d4edda;\n"
|
self.current_track_2.setStyleSheet(
|
||||||
"border: 1px solid rgb(85, 87, 83);")
|
"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.setAlignment(
|
||||||
|
QtCore.Qt.AlignmentFlag.AlignRight
|
||||||
|
| QtCore.Qt.AlignmentFlag.AlignTrailing
|
||||||
|
| QtCore.Qt.AlignmentFlag.AlignVCenter
|
||||||
|
)
|
||||||
self.current_track_2.setObjectName("current_track_2")
|
self.current_track_2.setObjectName("current_track_2")
|
||||||
self.verticalLayout_3.addWidget(self.current_track_2)
|
self.verticalLayout_3.addWidget(self.current_track_2)
|
||||||
self.next_track_2 = QtWidgets.QLabel(parent=self.centralwidget)
|
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.setHorizontalStretch(0)
|
||||||
sizePolicy.setVerticalStretch(0)
|
sizePolicy.setVerticalStretch(0)
|
||||||
sizePolicy.setHeightForWidth(self.next_track_2.sizePolicy().hasHeightForWidth())
|
sizePolicy.setHeightForWidth(self.next_track_2.sizePolicy().hasHeightForWidth())
|
||||||
@ -69,19 +96,29 @@ class Ui_MainWindow(object):
|
|||||||
font.setFamily("Sans")
|
font.setFamily("Sans")
|
||||||
font.setPointSize(20)
|
font.setPointSize(20)
|
||||||
self.next_track_2.setFont(font)
|
self.next_track_2.setFont(font)
|
||||||
self.next_track_2.setStyleSheet("background-color: #fff3cd;\n"
|
self.next_track_2.setStyleSheet(
|
||||||
"border: 1px solid rgb(85, 87, 83);")
|
"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.setAlignment(
|
||||||
|
QtCore.Qt.AlignmentFlag.AlignRight
|
||||||
|
| QtCore.Qt.AlignmentFlag.AlignTrailing
|
||||||
|
| QtCore.Qt.AlignmentFlag.AlignVCenter
|
||||||
|
)
|
||||||
self.next_track_2.setObjectName("next_track_2")
|
self.next_track_2.setObjectName("next_track_2")
|
||||||
self.verticalLayout_3.addWidget(self.next_track_2)
|
self.verticalLayout_3.addWidget(self.next_track_2)
|
||||||
self.horizontalLayout_3.addLayout(self.verticalLayout_3)
|
self.horizontalLayout_3.addLayout(self.verticalLayout_3)
|
||||||
self.verticalLayout = QtWidgets.QVBoxLayout()
|
self.verticalLayout = QtWidgets.QVBoxLayout()
|
||||||
self.verticalLayout.setObjectName("verticalLayout")
|
self.verticalLayout.setObjectName("verticalLayout")
|
||||||
self.hdrPreviousTrack = QtWidgets.QLabel(parent=self.centralwidget)
|
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.setHorizontalStretch(0)
|
||||||
sizePolicy.setVerticalStretch(0)
|
sizePolicy.setVerticalStretch(0)
|
||||||
sizePolicy.setHeightForWidth(self.hdrPreviousTrack.sizePolicy().hasHeightForWidth())
|
sizePolicy.setHeightForWidth(
|
||||||
|
self.hdrPreviousTrack.sizePolicy().hasHeightForWidth()
|
||||||
|
)
|
||||||
self.hdrPreviousTrack.setSizePolicy(sizePolicy)
|
self.hdrPreviousTrack.setSizePolicy(sizePolicy)
|
||||||
self.hdrPreviousTrack.setMinimumSize(QtCore.QSize(0, 0))
|
self.hdrPreviousTrack.setMinimumSize(QtCore.QSize(0, 0))
|
||||||
self.hdrPreviousTrack.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
self.hdrPreviousTrack.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||||
@ -89,32 +126,43 @@ class Ui_MainWindow(object):
|
|||||||
font.setFamily("Sans")
|
font.setFamily("Sans")
|
||||||
font.setPointSize(20)
|
font.setPointSize(20)
|
||||||
self.hdrPreviousTrack.setFont(font)
|
self.hdrPreviousTrack.setFont(font)
|
||||||
self.hdrPreviousTrack.setStyleSheet("background-color: #f8d7da;\n"
|
self.hdrPreviousTrack.setStyleSheet(
|
||||||
"border: 1px solid rgb(85, 87, 83);")
|
"background-color: #f8d7da;\n" "border: 1px solid rgb(85, 87, 83);"
|
||||||
|
)
|
||||||
self.hdrPreviousTrack.setText("")
|
self.hdrPreviousTrack.setText("")
|
||||||
self.hdrPreviousTrack.setWordWrap(False)
|
self.hdrPreviousTrack.setWordWrap(False)
|
||||||
self.hdrPreviousTrack.setObjectName("hdrPreviousTrack")
|
self.hdrPreviousTrack.setObjectName("hdrPreviousTrack")
|
||||||
self.verticalLayout.addWidget(self.hdrPreviousTrack)
|
self.verticalLayout.addWidget(self.hdrPreviousTrack)
|
||||||
self.hdrCurrentTrack = QtWidgets.QPushButton(parent=self.centralwidget)
|
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.setHorizontalStretch(0)
|
||||||
sizePolicy.setVerticalStretch(0)
|
sizePolicy.setVerticalStretch(0)
|
||||||
sizePolicy.setHeightForWidth(self.hdrCurrentTrack.sizePolicy().hasHeightForWidth())
|
sizePolicy.setHeightForWidth(
|
||||||
|
self.hdrCurrentTrack.sizePolicy().hasHeightForWidth()
|
||||||
|
)
|
||||||
self.hdrCurrentTrack.setSizePolicy(sizePolicy)
|
self.hdrCurrentTrack.setSizePolicy(sizePolicy)
|
||||||
font = QtGui.QFont()
|
font = QtGui.QFont()
|
||||||
font.setPointSize(20)
|
font.setPointSize(20)
|
||||||
self.hdrCurrentTrack.setFont(font)
|
self.hdrCurrentTrack.setFont(font)
|
||||||
self.hdrCurrentTrack.setStyleSheet("background-color: #d4edda;\n"
|
self.hdrCurrentTrack.setStyleSheet(
|
||||||
"border: 1px solid rgb(85, 87, 83);\n"
|
"background-color: #d4edda;\n"
|
||||||
"text-align: left;\n"
|
"border: 1px solid rgb(85, 87, 83);\n"
|
||||||
"padding-left: 8px;\n"
|
"text-align: left;\n"
|
||||||
"")
|
"padding-left: 8px;\n"
|
||||||
|
""
|
||||||
|
)
|
||||||
self.hdrCurrentTrack.setText("")
|
self.hdrCurrentTrack.setText("")
|
||||||
self.hdrCurrentTrack.setFlat(True)
|
self.hdrCurrentTrack.setFlat(True)
|
||||||
self.hdrCurrentTrack.setObjectName("hdrCurrentTrack")
|
self.hdrCurrentTrack.setObjectName("hdrCurrentTrack")
|
||||||
self.verticalLayout.addWidget(self.hdrCurrentTrack)
|
self.verticalLayout.addWidget(self.hdrCurrentTrack)
|
||||||
self.hdrNextTrack = QtWidgets.QPushButton(parent=self.centralwidget)
|
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.setHorizontalStretch(0)
|
||||||
sizePolicy.setVerticalStretch(0)
|
sizePolicy.setVerticalStretch(0)
|
||||||
sizePolicy.setHeightForWidth(self.hdrNextTrack.sizePolicy().hasHeightForWidth())
|
sizePolicy.setHeightForWidth(self.hdrNextTrack.sizePolicy().hasHeightForWidth())
|
||||||
@ -122,10 +170,12 @@ class Ui_MainWindow(object):
|
|||||||
font = QtGui.QFont()
|
font = QtGui.QFont()
|
||||||
font.setPointSize(20)
|
font.setPointSize(20)
|
||||||
self.hdrNextTrack.setFont(font)
|
self.hdrNextTrack.setFont(font)
|
||||||
self.hdrNextTrack.setStyleSheet("background-color: #fff3cd;\n"
|
self.hdrNextTrack.setStyleSheet(
|
||||||
"border: 1px solid rgb(85, 87, 83);\n"
|
"background-color: #fff3cd;\n"
|
||||||
"text-align: left;\n"
|
"border: 1px solid rgb(85, 87, 83);\n"
|
||||||
"padding-left: 8px;")
|
"text-align: left;\n"
|
||||||
|
"padding-left: 8px;"
|
||||||
|
)
|
||||||
self.hdrNextTrack.setText("")
|
self.hdrNextTrack.setText("")
|
||||||
self.hdrNextTrack.setFlat(True)
|
self.hdrNextTrack.setFlat(True)
|
||||||
self.hdrNextTrack.setObjectName("hdrNextTrack")
|
self.hdrNextTrack.setObjectName("hdrNextTrack")
|
||||||
@ -172,7 +222,12 @@ class Ui_MainWindow(object):
|
|||||||
self.cartsWidget.setObjectName("cartsWidget")
|
self.cartsWidget.setObjectName("cartsWidget")
|
||||||
self.horizontalLayout_Carts = QtWidgets.QHBoxLayout(self.cartsWidget)
|
self.horizontalLayout_Carts = QtWidgets.QHBoxLayout(self.cartsWidget)
|
||||||
self.horizontalLayout_Carts.setObjectName("horizontalLayout_Carts")
|
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.horizontalLayout_Carts.addItem(spacerItem)
|
||||||
self.gridLayout_4.addWidget(self.cartsWidget, 2, 0, 1, 1)
|
self.gridLayout_4.addWidget(self.cartsWidget, 2, 0, 1, 1)
|
||||||
self.frame_6 = QtWidgets.QFrame(parent=self.centralwidget)
|
self.frame_6 = QtWidgets.QFrame(parent=self.centralwidget)
|
||||||
@ -217,7 +272,11 @@ class Ui_MainWindow(object):
|
|||||||
self.btnPreview = QtWidgets.QPushButton(parent=self.FadeStopInfoFrame)
|
self.btnPreview = QtWidgets.QPushButton(parent=self.FadeStopInfoFrame)
|
||||||
self.btnPreview.setMinimumSize(QtCore.QSize(132, 41))
|
self.btnPreview.setMinimumSize(QtCore.QSize(132, 41))
|
||||||
icon1 = QtGui.QIcon()
|
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.setIcon(icon1)
|
||||||
self.btnPreview.setIconSize(QtCore.QSize(30, 30))
|
self.btnPreview.setIconSize(QtCore.QSize(30, 30))
|
||||||
self.btnPreview.setCheckable(True)
|
self.btnPreview.setCheckable(True)
|
||||||
@ -239,8 +298,16 @@ class Ui_MainWindow(object):
|
|||||||
self.btnPreviewArm.setMaximumSize(QtCore.QSize(44, 23))
|
self.btnPreviewArm.setMaximumSize(QtCore.QSize(44, 23))
|
||||||
self.btnPreviewArm.setText("")
|
self.btnPreviewArm.setText("")
|
||||||
icon2 = QtGui.QIcon()
|
icon2 = QtGui.QIcon()
|
||||||
icon2.addPixmap(QtGui.QPixmap(":/icons/record-button.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
|
icon2.addPixmap(
|
||||||
icon2.addPixmap(QtGui.QPixmap(":/icons/record-red-button.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.On)
|
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.setIcon(icon2)
|
||||||
self.btnPreviewArm.setCheckable(True)
|
self.btnPreviewArm.setCheckable(True)
|
||||||
self.btnPreviewArm.setObjectName("btnPreviewArm")
|
self.btnPreviewArm.setObjectName("btnPreviewArm")
|
||||||
@ -261,8 +328,16 @@ class Ui_MainWindow(object):
|
|||||||
self.btnPreviewMark.setMaximumSize(QtCore.QSize(44, 23))
|
self.btnPreviewMark.setMaximumSize(QtCore.QSize(44, 23))
|
||||||
self.btnPreviewMark.setText("")
|
self.btnPreviewMark.setText("")
|
||||||
icon3 = QtGui.QIcon()
|
icon3 = QtGui.QIcon()
|
||||||
icon3.addPixmap(QtGui.QPixmap(":/icons/star.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.On)
|
icon3.addPixmap(
|
||||||
icon3.addPixmap(QtGui.QPixmap(":/icons/star_empty.png"), QtGui.QIcon.Mode.Disabled, QtGui.QIcon.State.Off)
|
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.setIcon(icon3)
|
||||||
self.btnPreviewMark.setObjectName("btnPreviewMark")
|
self.btnPreviewMark.setObjectName("btnPreviewMark")
|
||||||
self.btnPreviewFwd = QtWidgets.QPushButton(parent=self.groupBoxIntroControls)
|
self.btnPreviewFwd = QtWidgets.QPushButton(parent=self.groupBoxIntroControls)
|
||||||
@ -363,10 +438,15 @@ class Ui_MainWindow(object):
|
|||||||
self.verticalLayout_7.addWidget(self.label_silent_timer)
|
self.verticalLayout_7.addWidget(self.label_silent_timer)
|
||||||
self.horizontalLayout.addWidget(self.frame_silent)
|
self.horizontalLayout.addWidget(self.frame_silent)
|
||||||
self.widgetFadeVolume = PlotWidget(parent=self.InfoFooterFrame)
|
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.setHorizontalStretch(1)
|
||||||
sizePolicy.setVerticalStretch(0)
|
sizePolicy.setVerticalStretch(0)
|
||||||
sizePolicy.setHeightForWidth(self.widgetFadeVolume.sizePolicy().hasHeightForWidth())
|
sizePolicy.setHeightForWidth(
|
||||||
|
self.widgetFadeVolume.sizePolicy().hasHeightForWidth()
|
||||||
|
)
|
||||||
self.widgetFadeVolume.setSizePolicy(sizePolicy)
|
self.widgetFadeVolume.setSizePolicy(sizePolicy)
|
||||||
self.widgetFadeVolume.setMinimumSize(QtCore.QSize(0, 0))
|
self.widgetFadeVolume.setMinimumSize(QtCore.QSize(0, 0))
|
||||||
self.widgetFadeVolume.setObjectName("widgetFadeVolume")
|
self.widgetFadeVolume.setObjectName("widgetFadeVolume")
|
||||||
@ -383,7 +463,11 @@ class Ui_MainWindow(object):
|
|||||||
self.btnFade.setMinimumSize(QtCore.QSize(132, 32))
|
self.btnFade.setMinimumSize(QtCore.QSize(132, 32))
|
||||||
self.btnFade.setMaximumSize(QtCore.QSize(164, 16777215))
|
self.btnFade.setMaximumSize(QtCore.QSize(164, 16777215))
|
||||||
icon4 = QtGui.QIcon()
|
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.setIcon(icon4)
|
||||||
self.btnFade.setIconSize(QtCore.QSize(30, 30))
|
self.btnFade.setIconSize(QtCore.QSize(30, 30))
|
||||||
self.btnFade.setObjectName("btnFade")
|
self.btnFade.setObjectName("btnFade")
|
||||||
@ -391,7 +475,11 @@ class Ui_MainWindow(object):
|
|||||||
self.btnStop = QtWidgets.QPushButton(parent=self.frame)
|
self.btnStop = QtWidgets.QPushButton(parent=self.frame)
|
||||||
self.btnStop.setMinimumSize(QtCore.QSize(0, 36))
|
self.btnStop.setMinimumSize(QtCore.QSize(0, 36))
|
||||||
icon5 = QtGui.QIcon()
|
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.setIcon(icon5)
|
||||||
self.btnStop.setObjectName("btnStop")
|
self.btnStop.setObjectName("btnStop")
|
||||||
self.verticalLayout_5.addWidget(self.btnStop)
|
self.verticalLayout_5.addWidget(self.btnStop)
|
||||||
@ -417,39 +505,71 @@ class Ui_MainWindow(object):
|
|||||||
MainWindow.setStatusBar(self.statusbar)
|
MainWindow.setStatusBar(self.statusbar)
|
||||||
self.actionPlay_next = QtGui.QAction(parent=MainWindow)
|
self.actionPlay_next = QtGui.QAction(parent=MainWindow)
|
||||||
icon6 = QtGui.QIcon()
|
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.setIcon(icon6)
|
||||||
self.actionPlay_next.setObjectName("actionPlay_next")
|
self.actionPlay_next.setObjectName("actionPlay_next")
|
||||||
self.actionSkipToNext = QtGui.QAction(parent=MainWindow)
|
self.actionSkipToNext = QtGui.QAction(parent=MainWindow)
|
||||||
icon7 = QtGui.QIcon()
|
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.setIcon(icon7)
|
||||||
self.actionSkipToNext.setObjectName("actionSkipToNext")
|
self.actionSkipToNext.setObjectName("actionSkipToNext")
|
||||||
self.actionInsertTrack = QtGui.QAction(parent=MainWindow)
|
self.actionInsertTrack = QtGui.QAction(parent=MainWindow)
|
||||||
icon8 = QtGui.QIcon()
|
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.setIcon(icon8)
|
||||||
self.actionInsertTrack.setObjectName("actionInsertTrack")
|
self.actionInsertTrack.setObjectName("actionInsertTrack")
|
||||||
self.actionAdd_file = QtGui.QAction(parent=MainWindow)
|
self.actionAdd_file = QtGui.QAction(parent=MainWindow)
|
||||||
icon9 = QtGui.QIcon()
|
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.setIcon(icon9)
|
||||||
self.actionAdd_file.setObjectName("actionAdd_file")
|
self.actionAdd_file.setObjectName("actionAdd_file")
|
||||||
self.actionFade = QtGui.QAction(parent=MainWindow)
|
self.actionFade = QtGui.QAction(parent=MainWindow)
|
||||||
icon10 = QtGui.QIcon()
|
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.setIcon(icon10)
|
||||||
self.actionFade.setObjectName("actionFade")
|
self.actionFade.setObjectName("actionFade")
|
||||||
self.actionStop = QtGui.QAction(parent=MainWindow)
|
self.actionStop = QtGui.QAction(parent=MainWindow)
|
||||||
icon11 = QtGui.QIcon()
|
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.setIcon(icon11)
|
||||||
self.actionStop.setObjectName("actionStop")
|
self.actionStop.setObjectName("actionStop")
|
||||||
self.action_Clear_selection = QtGui.QAction(parent=MainWindow)
|
self.action_Clear_selection = QtGui.QAction(parent=MainWindow)
|
||||||
self.action_Clear_selection.setObjectName("action_Clear_selection")
|
self.action_Clear_selection.setObjectName("action_Clear_selection")
|
||||||
self.action_Resume_previous = QtGui.QAction(parent=MainWindow)
|
self.action_Resume_previous = QtGui.QAction(parent=MainWindow)
|
||||||
icon12 = QtGui.QIcon()
|
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.setIcon(icon12)
|
||||||
self.action_Resume_previous.setObjectName("action_Resume_previous")
|
self.action_Resume_previous.setObjectName("action_Resume_previous")
|
||||||
self.actionE_xit = QtGui.QAction(parent=MainWindow)
|
self.actionE_xit = QtGui.QAction(parent=MainWindow)
|
||||||
@ -496,7 +616,9 @@ class Ui_MainWindow(object):
|
|||||||
self.actionImport = QtGui.QAction(parent=MainWindow)
|
self.actionImport = QtGui.QAction(parent=MainWindow)
|
||||||
self.actionImport.setObjectName("actionImport")
|
self.actionImport.setObjectName("actionImport")
|
||||||
self.actionDownload_CSV_of_played_tracks = QtGui.QAction(parent=MainWindow)
|
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 = QtGui.QAction(parent=MainWindow)
|
||||||
self.actionSearch.setObjectName("actionSearch")
|
self.actionSearch.setObjectName("actionSearch")
|
||||||
self.actionInsertSectionHeader = QtGui.QAction(parent=MainWindow)
|
self.actionInsertSectionHeader = QtGui.QAction(parent=MainWindow)
|
||||||
@ -524,9 +646,13 @@ class Ui_MainWindow(object):
|
|||||||
self.actionResume = QtGui.QAction(parent=MainWindow)
|
self.actionResume = QtGui.QAction(parent=MainWindow)
|
||||||
self.actionResume.setObjectName("actionResume")
|
self.actionResume.setObjectName("actionResume")
|
||||||
self.actionSearch_title_in_Wikipedia = QtGui.QAction(parent=MainWindow)
|
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 = 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 = QtGui.QAction(parent=MainWindow)
|
||||||
self.actionSelect_duplicate_rows.setObjectName("actionSelect_duplicate_rows")
|
self.actionSelect_duplicate_rows.setObjectName("actionSelect_duplicate_rows")
|
||||||
self.actionReplace_files = QtGui.QAction(parent=MainWindow)
|
self.actionReplace_files = QtGui.QAction(parent=MainWindow)
|
||||||
@ -623,38 +749,58 @@ class Ui_MainWindow(object):
|
|||||||
self.actionFade.setShortcut(_translate("MainWindow", "Ctrl+Z"))
|
self.actionFade.setShortcut(_translate("MainWindow", "Ctrl+Z"))
|
||||||
self.actionStop.setText(_translate("MainWindow", "S&top"))
|
self.actionStop.setText(_translate("MainWindow", "S&top"))
|
||||||
self.actionStop.setShortcut(_translate("MainWindow", "Ctrl+Alt+S"))
|
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_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.actionE_xit.setText(_translate("MainWindow", "E&xit"))
|
||||||
self.actionTest.setText(_translate("MainWindow", "&Test"))
|
self.actionTest.setText(_translate("MainWindow", "&Test"))
|
||||||
self.actionOpenPlaylist.setText(_translate("MainWindow", "O&pen..."))
|
self.actionOpenPlaylist.setText(_translate("MainWindow", "O&pen..."))
|
||||||
self.actionNewPlaylist.setText(_translate("MainWindow", "&New..."))
|
self.actionNewPlaylist.setText(_translate("MainWindow", "&New..."))
|
||||||
self.actionTestFunction.setText(_translate("MainWindow", "&Test function"))
|
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.actionSkipToEnd.setText(_translate("MainWindow", "Skip to &end of track"))
|
||||||
self.actionClosePlaylist.setText(_translate("MainWindow", "&Close"))
|
self.actionClosePlaylist.setText(_translate("MainWindow", "&Close"))
|
||||||
self.actionRenamePlaylist.setText(_translate("MainWindow", "&Rename..."))
|
self.actionRenamePlaylist.setText(_translate("MainWindow", "&Rename..."))
|
||||||
self.actionDeletePlaylist.setText(_translate("MainWindow", "Dele&te..."))
|
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.actionExport_playlist.setText(_translate("MainWindow", "E&xport..."))
|
||||||
self.actionSetNext.setText(_translate("MainWindow", "Set &next"))
|
self.actionSetNext.setText(_translate("MainWindow", "Set &next"))
|
||||||
self.actionSetNext.setShortcut(_translate("MainWindow", "Ctrl+N"))
|
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_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_previous_track.setShortcut(_translate("MainWindow", "K"))
|
||||||
self.actionSelect_played_tracks.setText(_translate("MainWindow", "Select played tracks"))
|
self.actionSelect_played_tracks.setText(
|
||||||
self.actionMoveUnplayed.setText(_translate("MainWindow", "Move &unplayed tracks to..."))
|
_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.setText(_translate("MainWindow", "Add note..."))
|
||||||
self.actionAdd_note.setShortcut(_translate("MainWindow", "Ctrl+T"))
|
self.actionAdd_note.setShortcut(_translate("MainWindow", "Ctrl+T"))
|
||||||
self.actionEnable_controls.setText(_translate("MainWindow", "Enable controls"))
|
self.actionEnable_controls.setText(_translate("MainWindow", "Enable controls"))
|
||||||
self.actionImport.setText(_translate("MainWindow", "Import track..."))
|
self.actionImport.setText(_translate("MainWindow", "Import track..."))
|
||||||
self.actionImport.setShortcut(_translate("MainWindow", "Ctrl+Shift+I"))
|
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.setText(_translate("MainWindow", "Search..."))
|
||||||
self.actionSearch.setShortcut(_translate("MainWindow", "/"))
|
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.actionInsertSectionHeader.setShortcut(_translate("MainWindow", "Ctrl+H"))
|
||||||
self.actionRemove.setText(_translate("MainWindow", "&Remove track"))
|
self.actionRemove.setText(_translate("MainWindow", "&Remove track"))
|
||||||
self.actionFind_next.setText(_translate("MainWindow", "Find next"))
|
self.actionFind_next.setText(_translate("MainWindow", "Find next"))
|
||||||
@ -662,8 +808,12 @@ class Ui_MainWindow(object):
|
|||||||
self.actionFind_previous.setText(_translate("MainWindow", "Find previous"))
|
self.actionFind_previous.setText(_translate("MainWindow", "Find previous"))
|
||||||
self.actionFind_previous.setShortcut(_translate("MainWindow", "P"))
|
self.actionFind_previous.setShortcut(_translate("MainWindow", "P"))
|
||||||
self.action_About.setText(_translate("MainWindow", "&About"))
|
self.action_About.setText(_translate("MainWindow", "&About"))
|
||||||
self.actionSave_as_template.setText(_translate("MainWindow", "Save as template..."))
|
self.actionSave_as_template.setText(
|
||||||
self.actionNew_from_template.setText(_translate("MainWindow", "New from template..."))
|
_translate("MainWindow", "Save as template...")
|
||||||
|
)
|
||||||
|
self.actionNew_from_template.setText(
|
||||||
|
_translate("MainWindow", "New from template...")
|
||||||
|
)
|
||||||
self.actionDebug.setText(_translate("MainWindow", "Debug"))
|
self.actionDebug.setText(_translate("MainWindow", "Debug"))
|
||||||
self.actionAdd_cart.setText(_translate("MainWindow", "Edit cart &1..."))
|
self.actionAdd_cart.setText(_translate("MainWindow", "Edit cart &1..."))
|
||||||
self.actionMark_for_moving.setText(_translate("MainWindow", "Mark for moving"))
|
self.actionMark_for_moving.setText(_translate("MainWindow", "Mark for moving"))
|
||||||
@ -672,11 +822,23 @@ class Ui_MainWindow(object):
|
|||||||
self.actionPaste.setShortcut(_translate("MainWindow", "Ctrl+V"))
|
self.actionPaste.setShortcut(_translate("MainWindow", "Ctrl+V"))
|
||||||
self.actionResume.setText(_translate("MainWindow", "Resume"))
|
self.actionResume.setText(_translate("MainWindow", "Resume"))
|
||||||
self.actionResume.setShortcut(_translate("MainWindow", "Ctrl+R"))
|
self.actionResume.setShortcut(_translate("MainWindow", "Ctrl+R"))
|
||||||
self.actionSearch_title_in_Wikipedia.setText(_translate("MainWindow", "Search title in Wikipedia"))
|
self.actionSearch_title_in_Wikipedia.setText(
|
||||||
self.actionSearch_title_in_Wikipedia.setShortcut(_translate("MainWindow", "Ctrl+W"))
|
_translate("MainWindow", "Search title in Wikipedia")
|
||||||
self.actionSearch_title_in_Songfacts.setText(_translate("MainWindow", "Search title in Songfacts"))
|
)
|
||||||
self.actionSearch_title_in_Songfacts.setShortcut(_translate("MainWindow", "Ctrl+S"))
|
self.actionSearch_title_in_Wikipedia.setShortcut(
|
||||||
self.actionSelect_duplicate_rows.setText(_translate("MainWindow", "Select duplicate rows..."))
|
_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..."))
|
self.actionReplace_files.setText(_translate("MainWindow", "Import files..."))
|
||||||
|
|
||||||
|
|
||||||
from infotabs import InfoTabs # type: ignore
|
from infotabs import InfoTabs # type: ignore
|
||||||
from pyqtgraph import PlotWidget # type: ignore
|
from pyqtgraph import PlotWidget # type: ignore
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user