annotate Preferences.py @ 71:228da10cc98b

MainWindow relies on FeedList to get the feeds to display now. FeedList has two inner/private classes: one for returning all known feeds and one to return only feeds with unread entries.
author Dirk Olmes <dirk@xanthippe.ping.de>
date Wed, 11 Aug 2010 03:10:32 +0200
parents db35ab7753f0
children e8c2730eb444
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
43
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
1
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
2 from Preference import Preference
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
3 import util
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
4
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
5 START_MAXIMIZED = "START_MAXIMIZED"
61
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
6 HIDE_READ_ENTRIES = "HIDE_READ_FEED_ENTRIES"
43
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
7
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
8 class Preferences(object):
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
9 def __init__(self, session):
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
10 self.session = session
44
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
11 self.cache = {}
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
12
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
13 def _cachedPreference(self, key, defaultValue=None):
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
14 if self.cache.has_key(key):
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
15 return self.cache[key]
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
16 else:
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
17 pref = Preference.forKey(key, self.session)
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
18 if pref is None:
46
03358c113170 Better preferences handling: the GUI's responsibility is to convert the input from the event into a boolean value
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 44
diff changeset
19 pref = Preference(key, str(defaultValue))
44
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
20 self.session.add(pref)
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
21 self.cache[key] = pref
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
22 return pref
43
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
23
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
24 def startMaximized(self):
44
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
25 pref = self._cachedPreference(START_MAXIMIZED, False)
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
26 return util.str2bool(pref.value)
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
27
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
28 def setStartMaximized(self, flag):
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
29 pref = self._cachedPreference(START_MAXIMIZED)
46
03358c113170 Better preferences handling: the GUI's responsibility is to convert the input from the event into a boolean value
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 44
diff changeset
30 pref.value = util.bool2str(flag)
61
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
31
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
32 def hideReadFeedEntries(self):
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
33 pref = self._cachedPreference(HIDE_READ_ENTRIES, False)
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
34 return util.str2bool(pref.value)
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
35
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
36 def setHideReadFeedEntries(self, flag):
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
37 pref = self._cachedPreference(HIDE_READ_ENTRIES)
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
38 pref.value = util.bool2str(flag)