Mercurial > hg > Feedworm
view FeedSettings.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 | bca9341dc67f |
children | a2552f1e450e |
line wrap: on
line source
from PyQt4 import QtGui from Ui_FeedSettings import Ui_FeedSettings class FeedSettings(QtGui.QDialog): """ Copy all feed properties into the GUI on initialization. Collect all changes in a separate dict that's passed into the backend along with the feed to modify. """ def __init__(self, backend): QtGui.QWidget.__init__(self, None) self.backend = backend self.feed = backend.selectedFeed self.changes = {} self.ui = Ui_FeedSettings() self.ui.setupUi(self) self.initUi() def initUi(self): self.ui.feedTitle.setText(self.feed.title) self.ui.updateInterval.setText(str(self.feed.update_interval)) self.ui.autoLoadArticle.setChecked(self.feed.auto_load_entry_link) self.ui.alwaysOpenInBrowser.setChecked(self.feed.always_open_in_browser) def editingTitleFinished(self): title = str(self.ui.feedTitle.text()) self.changes["title"] = title def editingUpdateIntervalFinished(self): updateInterval = int(str(self.ui.updateInterval.text())) self.changes["update_interval"] = updateInterval def autoLoadArticleChanged(self, change): if change: self.changes["auto_load_entry_link"] = True else: self.changes["auto_load_entry_link"] = False def alwaysOpenInExternalBrowser(self, change): if change: self.changes["always_open_in_browser"] = True else: self.changes["always_open_in_browser"] = False def accept(self): self.backend.updateFeed(self.feed, self.changes) QtGui.QDialog.accept(self)