mirror of
https://github.com/fergalmoran/picard.git
synced 2026-02-21 15:14:13 +00:00
PICARD-729: Allow removing single NATs
This commit is contained in:
@@ -664,6 +664,16 @@ class Tagger(QtWidgets.QApplication):
|
||||
self.nats = None
|
||||
self.album_removed.emit(album)
|
||||
|
||||
def remove_nat(self, track):
|
||||
"""Remove the specified non-album track."""
|
||||
log.debug("Removing %r", track)
|
||||
self.remove_files(self.get_files_from_objects([track]))
|
||||
self.nats.tracks.remove(track)
|
||||
if not self.nats.tracks:
|
||||
self.remove_album(self.nats)
|
||||
else:
|
||||
self.nats.update(True)
|
||||
|
||||
def remove_cluster(self, cluster):
|
||||
"""Remove the specified cluster."""
|
||||
if not cluster.special:
|
||||
@@ -681,6 +691,8 @@ class Tagger(QtWidgets.QApplication):
|
||||
for obj in objects:
|
||||
if isinstance(obj, File):
|
||||
files.append(obj)
|
||||
elif isinstance(obj, NonAlbumTrack):
|
||||
self.remove_nat(obj)
|
||||
elif isinstance(obj, Track):
|
||||
files.extend(obj.linked_files)
|
||||
elif isinstance(obj, Album):
|
||||
|
||||
@@ -298,6 +298,9 @@ class NonAlbumTrack(Track):
|
||||
priority=priority,
|
||||
refresh=refresh)
|
||||
|
||||
def can_remove(self):
|
||||
return True
|
||||
|
||||
def _recording_request_finished(self, recording, http, error):
|
||||
if error:
|
||||
self._set_error(http.errorString())
|
||||
|
||||
@@ -708,11 +708,12 @@ class AlbumItem(TreeItem):
|
||||
newnum = len(album.tracks)
|
||||
if oldnum > newnum: # remove old items
|
||||
for i in range(oldnum - newnum):
|
||||
self.takeChild(newnum - 1)
|
||||
self.takeChild(newnum)
|
||||
oldnum = newnum
|
||||
# update existing items
|
||||
for i in range(oldnum):
|
||||
item = self.child(i)
|
||||
item.setSelected(False)
|
||||
track = album.tracks[i]
|
||||
item.obj = track
|
||||
track.item = item
|
||||
|
||||
Reference in New Issue
Block a user