Copy escaped track path

This commit is contained in:
Keith Edmunds 2022-08-13 11:06:20 +01:00
parent 568dc1ef68
commit 5ba70c9c6f

View File

@ -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"""