Mercurial > hg > Feedworm
view MainWindow.py @ 31:5bb57caa8f66
display a feed's entries sorted by their update date
author | Dirk Olmes <dirk@xanthippe.ping.de> |
---|---|
date | Fri, 30 Apr 2010 06:01:54 +0200 |
parents | bdd1296a4b8c |
children | f371d02fa09d |
line wrap: on
line source
from AddFeed import AddFeed from DisplayModel import DisplayModel from Feed import Feed from FeedEntry import FeedEntry from PyQt4 import QtGui from PyQt4.QtCore import QUrl from PyQt4.QtGui import QFont from Ui_MainWindow import Ui_MainWindow import FeedUpdater class MainWindow(QtGui.QMainWindow): def __init__(self, session=None): QtGui.QWidget.__init__(self, None) self.session = session self.ui = Ui_MainWindow() self.ui.setupUi(self) self.updateFeedList() self.initFeedEntryList() def updateFeedList(self): self.allFeeds = Feed.all(self.session) feedModel = DisplayModel(self, self.allFeeds, Feed.userPresentableString) self.ui.feedList.setModel(feedModel) self.ui.feedList.update() def initFeedEntryList(self): pass # self.ui.feedEntryList.setItemDelegate() # self.ui.feedList.setItemDelegate(CustomItemDelegate(self)) def feedSelected(self, index): self.selectedFeed = self.allFeeds[index.row()] sortedEntries = self.selectedFeed.entriesSortedByUpdateDate() model = DisplayModel(self, sortedEntries, FeedEntry.userPresentableString) self.ui.feedEntryList.setModel(model) self.ui.feedEntryList.update() def feedEntrySelected(self, index): row = index.row() entry = self.selectedFeed.entries[row] baseUrl = QUrl(entry.link) # TODO this is the wrong base url, figure out the correct one self.ui.webView.setHtml(entry.summary, baseUrl) def addFeed(self): addFeed = AddFeed(self.session) success = addFeed.exec_() if success: url = addFeed.getUrl() FeedUpdater.createNewFeed(url, self.session) # TODO get status from feedUpdater and display in status area of the main window self.updateFeedList() class CustomItemDelegate(QtGui.QStyledItemDelegate): def __init__(self, parent): print("init") QtGui.QStyledItemDelegate.__init__(self, parent) def paint(self, painter, style, index): style.font.setWeight(QFont.Bold) QtGui.QStyledItemDelegate.paint(self, painter, style, index)