def run (self):
print "Download one cover per-album in a thread"
- import time
- time.sleep (4)
for albumItem in self.albumModel.get_albums ():
if albumItem.require_download:
self.downloader.get_album_art (albumItem)
+class FreeSearchThread (QtCore.QThread):
+
+ def __init__ (self, model, search_str):
+ QtCore.QThread.__init__ (self)
+ self.downloader = MussorgskyAlbumArt ()
+ self.model = model
+ self.search_str = search_str
+
+ def run (self):
+ print "Free search thread:", self.search_str
+ MAX_OPTIONS = 4
+ counter = 0
+ for img in self.downloader.get_alternatives_free_text (self.search_str):
+ if counter >= MAX_OPTIONS:
+ break
+
+ self.model.updateData (counter, img)
+ counter += 1
+
class MussorgskyController (QtCore.QObject):
def __init__ (self, rootContext):
m = CoversModel (albumItem)
print m.rowCount ()
self.ctx.setContextProperty ("coversModel", m)
+ if self.download:
+ self.download.quit ()
self.download = DownloadThread (m, albumItem)
self.download.start ()
+
+ @QtCore.Slot (QtCore.QObject, str)
+ def get_options_for_text (self, coversModel, search_str):
+ if self.download:
+ print "Finishing the previous work"
+ self.download.quit ()
+ coversModel.reset ()
+ self.download = FreeSearchThread (coversModel, search_str)
+ self.download.start ()
+
+
+
@QtCore.Slot (QtCore.QObject, int)
def save_option_for (self, coversModel, index):
print "Saving option", index
coverItem = coversModel.getData (index)
- coverItem.save (coversModel.albumItem.get_aa ().get_media_art_path ())
- # Update the main model. Is this enough?
- if not coverItem.initialImage and not coverItem.deleteAction:
- coversModel.albumItem.album_art = None
- coversModel.albumItem.album_art = coversModel.albumItem.get_aa().get_media_art_path ()
+
+ if coverItem.initialImage:
+ # Same image as before, nothing to do
+ pass
elif coverItem.deleteAction:
- coversModel.albumItem.resetAlbumArt ()
+ coversModel.albumItem.unset_image ()
+ else:
+ coversModel.albumItem.set_image (coverItem.url)
coversModel.cleanCache ()
def stop_pending_jobs (self):
if self.download :
self.download.quit ()
+ self.download = None
def get_all_albums (self):
"""