PICARD-729: Allow removing single NATs

This commit is contained in:
Philipp Wolfer
2019-02-20 16:04:52 +01:00
parent 954fdc9f79
commit 98769b01e0
3 changed files with 17 additions and 1 deletions

View File

@@ -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):

View File

@@ -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())

View File

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