view DisplayModel.py @ 188:e26210be221f

emit the feedEntries sorted by feed and by update date so they come out sorted
author dirk
date Wed, 14 Sep 2011 00:17:01 +0200
parents c5a427d46703
children bb3c851b18b1
line wrap: on
line source


from PyQt4.QtCore import QAbstractListModel, QModelIndex, QVariant, Qt

class DisplayModel(QAbstractListModel):
    def __init__(self, parent=None, list=None, displayAttribute=None, **args):
        QAbstractListModel.__init__(self, parent, *args)
        self.list = list
        self.displayAttribute = displayAttribute

    def rowCount(self, parent=QModelIndex()):
        return len(self.list)

    def data(self, index, role):
        if index.isValid() and role == Qt.DisplayRole:
            row = index.row()
            item = self.list[row]
            displayString = self._stringToDisplay(item)
            return QVariant(displayString)
        else:
            return QVariant()

    def _stringToDisplay(self, item):
        if hasattr(item, self.displayAttribute):
            return getattr(item, self.displayAttribute)
        else:
            return "invalid display attribute: " + self.displayAttribute