mirror of
https://github.com/fergalmoran/picard.git
synced 2026-02-21 07:04:02 +00:00
Merged fix for analyzed files ending up in unmatched files.
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user