From 68bea4ecc540a945aa831c82436d0befe5daae03 Mon Sep 17 00:00:00 2001 From: Philipp Wolfer Date: Mon, 30 Mar 2009 22:58:41 +0200 Subject: [PATCH] Remove PUIDs from PUID manager when the corresponding file gets removed. This fixes a case where the PUID submission was activated again after removing a saved file. --- picard/file.py | 2 +- picard/puidmanager.py | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/picard/file.py b/picard/file.py index 21f90bb7b..223d89b06 100644 --- a/picard/file.py +++ b/picard/file.py @@ -317,7 +317,7 @@ class File(LockableObject, Item): if from_parent and self.parent: self.log.debug("Removing %r from %r", self, self.parent) self.parent.remove_file(self) - self.tagger.puidmanager.update(self.metadata['musicip_puid'], self.metadata['musicbrainz_trackid']) + self.tagger.puidmanager.remove(self.metadata['musicip_puid']) self.state = File.REMOVED def move(self, parent): diff --git a/picard/puidmanager.py b/picard/puidmanager.py index 6ea950721..dd63e41f6 100644 --- a/picard/puidmanager.py +++ b/picard/puidmanager.py @@ -39,6 +39,10 @@ class PUIDManager(QtCore.QObject): self.__puids[puid] = (self.__puids.get(puid, (None, None))[0], trackid) self.__check_unsubmitted() + def remove(self, puid): + try: del self.__puids[puid] + except KeyError: pass + def __unsubmitted(self): """Return the count of unsubmitted PUIDs.""" for puid, (origtrackid, trackid) in self.__puids.iteritems(): @@ -66,7 +70,7 @@ class PUIDManager(QtCore.QObject): self.tagger.window.set_statusbar_message(N_('PUIDs successfully submitted!'), timeout=3000) for puid in puids.values(): try: - self.__puids[puid] = (self.__puids[puid][0], self.__puids[puid][0]) + self.__puids[puid] = (self.__puids[puid][1], self.__puids[puid][1]) except KeyError: pass self.__check_unsubmitted()