view Preferences.py @ 62:abc0516a1c0c

FeedEntry provides a static method for creating new entries: better modularization and support for working with the class in interactive mode. FeedUpdater's normalize method is a module function now, again for ease of use in interactive scenarios
author dirk@xanthippe.ping.de
date Wed, 28 Jul 2010 20:30:34 +0200
parents db35ab7753f0
children e8c2730eb444
line wrap: on
line source


from Preference import Preference
import util

START_MAXIMIZED = "START_MAXIMIZED"
HIDE_READ_ENTRIES = "HIDE_READ_FEED_ENTRIES"

class Preferences(object):
    def __init__(self, session):
        self.session = session
        self.cache = {}
        
    def _cachedPreference(self, key, defaultValue=None):
        if self.cache.has_key(key):
            return self.cache[key]
        else:
            pref = Preference.forKey(key, self.session)
            if pref is None:
                pref = Preference(key, str(defaultValue))
                self.session.add(pref)
            self.cache[key] = pref
            return pref
        
    def startMaximized(self):
        pref = self._cachedPreference(START_MAXIMIZED, False)
        return util.str2bool(pref.value)

    def setStartMaximized(self, flag):
        pref = self._cachedPreference(START_MAXIMIZED)
        pref.value = util.bool2str(flag)

    def hideReadFeedEntries(self):
        pref = self._cachedPreference(HIDE_READ_ENTRIES, False)
        return util.str2bool(pref.value)
    
    def setHideReadFeedEntries(self, flag):
        pref = self._cachedPreference(HIDE_READ_ENTRIES)
        pref.value = util.bool2str(flag)