Copy escaped track path
This commit is contained in:
parent
568dc1ef68
commit
5ba70c9c6f
@ -15,7 +15,7 @@ from PyQt5.QtGui import (
|
||||
)
|
||||
from PyQt5.QtWidgets import (
|
||||
QAbstractItemView,
|
||||
# QApplication,
|
||||
QApplication,
|
||||
# QInputDialog,
|
||||
# QLineEdit,
|
||||
QMainWindow,
|
||||
@ -266,6 +266,9 @@ class PlaylistTab(QTableWidget):
|
||||
act_info.triggered.connect(
|
||||
lambda: self._info_row(track_id)
|
||||
)
|
||||
act_copypath = self.menu.addAction("Copy track path")
|
||||
act_copypath.triggered.connect(
|
||||
lambda: self._copy_path(row_number))
|
||||
|
||||
self.menu.addSeparator()
|
||||
|
||||
@ -1140,24 +1143,27 @@ class PlaylistTab(QTableWidget):
|
||||
|
||||
assert self.menu
|
||||
self.menu.exec_(self.mapToGlobal(pos))
|
||||
#
|
||||
# def _copy_path(self, row: int) -> None:
|
||||
# """
|
||||
# If passed row is track row, copy the track path to the clipboard.
|
||||
# Otherwise, return None.
|
||||
# """
|
||||
#
|
||||
# log.debug(f"_copy_path({row})")
|
||||
#
|
||||
# if row in self._get_notes_rows():
|
||||
# return None
|
||||
#
|
||||
# with Session() as session:
|
||||
# track: Optional[Tracks] = self._get_row_track_object(row, session)
|
||||
# if track:
|
||||
# cb = QApplication.clipboard()
|
||||
# cb.clear(mode=cb.Clipboard)
|
||||
# cb.setText(track.path, mode=cb.Clipboard)
|
||||
|
||||
def _copy_path(self, row: int) -> None:
|
||||
"""
|
||||
If passed row has a track, copy the track path, single-quoted,
|
||||
to the clipboard. Otherwise, return None.
|
||||
"""
|
||||
|
||||
track_id = self._get_row_track_id(row)
|
||||
if track_id is None:
|
||||
return
|
||||
|
||||
with Session() as session:
|
||||
track = session.get(Tracks, track_id)
|
||||
if track:
|
||||
# Escape single quotes and spaces in name
|
||||
path = track.path
|
||||
pathq = path.replace("'", "\\'")
|
||||
pathqs = pathq.replace(" ", "\\ ")
|
||||
cb = QApplication.clipboard()
|
||||
cb.clear(mode=cb.Clipboard)
|
||||
cb.setText(pathqs, mode=cb.Clipboard)
|
||||
#
|
||||
# def _cell_changed(self, row: int, column: int) -> None:
|
||||
# """Called when cell content has changed"""
|
||||
|
||||
Loading…
Reference in New Issue
Block a user