Merged fix for analyzed files ending up in unmatched files.

This commit is contained in:
Philipp Wolfer
2010-01-06 21:20:20 +01:00
2 changed files with 13 additions and 5 deletions

View File

@@ -26,7 +26,7 @@ from picard.file import File
from picard.track import Track
from picard.script import ScriptParser
from picard.ui.item import Item
from picard.util import format_time, partial, translate_artist
from picard.util import format_time, partial, translate_artist, queue
from picard.cluster import Cluster
from picard.mbxml import release_to_metadata, track_to_metadata
@@ -104,6 +104,7 @@ class Album(DataObject, Item):
self._requests = 0
self._catalognumber = catalognumber
self._discid = discid
self._after_load_callbacks = queue.Queue()
self.current_release_event = None
self.release_events = []
self.unmatched_files = Cluster(_("Unmatched Files"), special=2, related_album=self)
@@ -309,6 +310,9 @@ class Album(DataObject, Item):
break
self.update()
self.tagger.window.set_statusbar_message('Album %s loaded', self.id, timeout=3000)
while self._after_load_callbacks.qsize() > 0:
func = self._after_load_callbacks.get()
func()
def load(self, force=False):
if self._requests:
@@ -342,6 +346,12 @@ class Album(DataObject, Item):
self.config.setting["password"])
self.tagger.xmlws.get_release_by_id(self.id, self._release_request_finished, inc=inc)
def run_when_loaded(self, func):
if self.loaded:
func()
else:
self._after_load_callbacks.put(func)
def update(self, update_tracks=True):
self.tagger.emit(QtCore.SIGNAL("album_updated"), self, update_tracks)

View File

@@ -256,10 +256,8 @@ class Tagger(QtGui.QApplication):
def move_file_to_track(self, file, albumid, trackid):
"""Move `file` to track `trackid` on album `albumid`."""
album = self.load_album(albumid)
if album.loaded:
album.match_file(file, trackid)
else:
file.move(album.unmatched_files)
file.move(album.unmatched_files)
album.run_when_loaded(partial(album.match_file, file, trackid))
def exit(self):
self.stopping = True