view PreferencesDialog.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 e830fa1cc7a2
children e8bb107a74e1
line wrap: on
line source


from PyQt4 import QtGui
from Ui_Preferences import Ui_Preferences

class PreferencesDialog(QtGui.QDialog):
    def __init__(self, backend=None):
        QtGui.QWidget.__init__(self, None)
        self.backend = backend
        self.preferences = backend.preferences()
        self.ui = Ui_Preferences()
        self.ui.setupUi(self)
        self.fillUi()

    def fillUi(self):
        self.fillMaximized()
        self.fillHideReadFeedEntries()
        self.fillShowOnlyUnreadFeeds()
        self.fillProxySettings()
        self.fillDaysToKeepFeedEntries()

    def fillMaximized(self):
        maximized = self.preferences.startMaximized()
        self.ui.startMaximized.setChecked(maximized)

    def fillHideReadFeedEntries(self):
        hideRead = self.preferences.hideReadFeedEntries()
        self.ui.hideReadFeedEntries.setChecked(hideRead)

    def fillShowOnlyUnreadFeeds(self):
        showOnlyUnreadFeeds = self.preferences.showOnlyUnreadFeeds()
        self.ui.showOnlyUnreadFeeds.setChecked(showOnlyUnreadFeeds)

    def fillProxySettings(self):
        if self.preferences.isProxyConfigured():
            self.ui.proxyHost.setText(self.preferences.proxyHost())
            self.ui.proxyPort.setText(str(self.preferences.proxyPort()))

    def fillDaysToKeepFeedEntries(self):
        days = self.preferences.daysToKeepFeedEntries()
        self.ui.daysToKeepFeedEntries.setText(str(days))

    def startMaximizedChanged(self, change):
        if change:
            self.preferences.setStartMaximized(True)
        else:
            self.preferences.setStartMaximized(False)

    def hideReadFeedEntriesChanged(self, change):
        if change:
            self.preferences.setHideReadFeedEntries(True)
        else:
            self.preferences.setHideReadFeedEntries(False)

    def showOnlyFeedsWithUnreadEntries(self, change):
        if change:
            self.preferences.setShowOnlyUnreadFeeds(True)
        else:
            self.preferences.setShowOnlyUnreadFeeds(False)

    def storeProxySettings(self):
        proxyHost = self.ui.proxyHost.text()
        if proxyHost.isEmpty():
            proxyHost = None
        self.preferences.setProxyHost(proxyHost)

        proxyPort = self.ui.proxyPort.text()
        if proxyPort.isEmpty():
            proxyPort = None
        self.preferences.setProxyPort(proxyPort)

    def daysToKeepFeedEntriesFinishedEditing(self):
        text = self.ui.daysToKeepFeedEntries.text()
        if not text.isEmpty():
            text = str(text)
            self.preferences.setDaysToKeepFeedEntries(text)

    def accept(self):
        self.storeProxySettings()
        self.preferences.commit();
        QtGui.QDialog.accept(self)

    def reject(self):
        self.preferences.rollback()
        QtGui.QDialog.reject(self)