view FeedSettings.py @ 206:f74fe7cb5091

when updating feeds, only ever create new Feed objects for entries that are younger than the current expire date. This ensures that we do not see old, read, expired entries again
author dirk
date Sat, 02 Jun 2012 04:30:04 +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)