Mercurial > hg > Feedworm
view FeedEntryTableModel.py @ 155:a05719a6175e
move common functionality into an abstract backend class, have both backends inherit from it. Implement enough of the couchdb backend that reading feeds (and marking feed entries as read) is possible
author | Dirk Olmes <dirk@xanthippe.ping.de> |
---|---|
date | Sat, 27 Aug 2011 08:52:03 +0200 |
parents | a16c4e2b2c55 |
children | bb3c851b18b1 |
line wrap: on
line source
from PyQt4.QtCore import QAbstractTableModel, QVariant, Qt class TableModel(QAbstractTableModel): ''' This is the abstract super class for table models in Python. It deals with the Qt specifics so that subclasses only need to care about implementing the functionality ''' def __init__(self, *args): QAbstractTableModel.__init__(self, None, *args) def headerData(self, section, orientation, role): if orientation == Qt.Horizontal and role == Qt.DisplayRole: value = self.headerDataForColumn(section) return QVariant(value) else: return QVariant() def data(self, index, role): if not index.isValid(): return QVariant() elif role != Qt.DisplayRole: return QVariant() else: value = self.dataForRowAndColumn(index.row(), index.column()) return QVariant(value) class FeedEntryTableModel(TableModel): def __init__(self, feedEntries, *args): TableModel.__init__(self, *args) self.feedEntries = feedEntries def rowCount(self, parent): return len(self.feedEntries) def columnCount(self, parent): return 2 def dataForRowAndColumn(self, row, column): feedEntry = self.feedEntries[row] if column == 0: return feedEntry.title else: return str(feedEntry.updated) def headerDataForColumn(self, column): if column == 0: return "Title" else: return "Date"