Free text search to look for better album art
[mussorgsky] / src / coverModel.py
index 9e15909..2abcb55 100644 (file)
@@ -14,7 +14,7 @@ class CoversModel (QtCore.QAbstractListModel):
     def __init__ (self, albumItem):
         QtCore.QAbstractListModel.__init__ (self)
         self.albumItem = albumItem
-
+        self.__searchString = self.albumItem.artist + " " + self.albumItem.title
         self.startOffset = 2
         self._alternatives = [
              CoverItem (self.albumItem.album_art, initialImage=True),
@@ -36,14 +36,24 @@ class CoversModel (QtCore.QAbstractListModel):
         return None
 
     def updateData (self, row, url):
+        print "updating", row, "to", url
         position = row + self.startOffset
         assert position >= 0 and position < len (self._alternatives)
-        self._alternatives[position].url = url
+        if url == None:
+            self._alternatives[position].url = "images/broken.png"
+            self._alternatives[position].broken = True
+        else:
+            self._alternatives[position].url = url
 
     def getData (self, row):
         assert row >= 0 and row < len (self._alternatives)
         return self._alternatives[row]
 
+    def reset (self):
+        for i in range (self.startOffset, len (self._alternatives)):
+            self._alternatives[i].reset ()
+                           
+
     def cleanCache (self):
         """
         The model contains the urls of the downloaded alternatives.
@@ -54,3 +64,12 @@ class CoversModel (QtCore.QAbstractListModel):
             # This url can be None if the image didn't finish downloading
             if self._alternatives[i].url and os.path.exists (self._alternatives[i].url):
                 os.remove (self._alternatives[i].url)
+
+    def _searchString (self):
+        return self.albumItem.artist + " " + self.albumItem.title
+    def _setSearchString (self, searchStr):
+        self.searchString = searchStr
+        searchString_changed.emit ()
+    
+    searchString_changed = QtCore.Signal ()
+    searchString = QtCore.Property (unicode, _searchString, _setSearchString, notify=searchString_changed)