1 # -*- coding: utf-8 -*-
4 from PySide import QtCore
5 from PySide import QtGui
6 from PySide import QtDeclarative
8 from coverItem import CoverItem
11 class CoversModel (QtCore.QAbstractListModel):
15 QtCore.QAbstractListModel.__init__ (self)
16 self._alternatives = [
17 CoverItem ("images/button-red.png", None),
18 CoverItem ("images/button-blue.png", None),
19 CoverItem ("images/button-red.png", None),
20 CoverItem ("images/button-blue.png", None)
22 self.setRoleNames (dict(enumerate(CoversModel.COLUMNS)))
24 def rowCount (self, parent=QtCore.QModelIndex()):
25 return len (self._alternatives)
27 def data (self, index, role):
28 if index.isValid () and role == CoversModel.COLUMNS.index ('cover'):
29 return self._alternatives[index.row ()]
32 def updateData (self, row, url, thumb):
33 assert row >= 0 and row < len (self._alternatives)
34 print "Replacing", self._alternatives[row].url, "with", url, "in row", row
35 self._alternatives[row].url = url
36 self._alternatives[row].thumb = thumb
38 def resetAlternatives (self):
39 for row in range (0, len (self._alternatives)):
40 print "Removing cached images:"
41 print " ", self._alternatives[row].url
42 print " ", self._alternatives[row].thumb
43 os.remove (self._alternatives[row].url)
44 os.remove (self._alternatives[row].thumb)
46 self.updateData(row, "images/button-red.png", None)
48 self.updateData(row, "images/button-blue.png", None)