annotate Preferences.py @ 90:a1066e5a8f88

save pending changes when quitting the app
author Dirk Olmes <dirk@xanthippe.ping.de>
date Fri, 24 Dec 2010 05:06:21 +0100
parents b8bfd1bd6c55
children 43c234c8fe87
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
87
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
5 HIDE_READ_ENTRIES = "HIDE_READ_FEED_ENTRIES"
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
6 PROXY_HOST = "PROXY_HOST"
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
7 PROXY_PORT = "PROXY_PORT"
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
8 SHOW_ONLY_UNREAD_FEEDS = "SHOW_ONLY_UNREAD_FEEDS"
43
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
9 START_MAXIMIZED = "START_MAXIMIZED"
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
10
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
11 class Preferences(object):
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
12 def __init__(self, session):
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
13 self.session = session
44
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
14 self.cache = {}
87
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
15
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
16 def _cachedPreference(self, key, defaultValue=None, addIfMissing=True):
44
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
17 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
18 return self.cache[key]
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
19 else:
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
20 pref = Preference.forKey(key, self.session)
87
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
21 if pref is None and addIfMissing:
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
22 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
23 self.session.add(pref)
87
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
24 self.cache[key] = pref
44
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
25 return pref
87
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
26
43
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
27 def startMaximized(self):
44
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
28 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
29 return util.str2bool(pref.value)
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
30
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
31 def setStartMaximized(self, flag):
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
32 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
33 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
34
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
35 def hideReadFeedEntries(self):
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
36 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
37 return util.str2bool(pref.value)
87
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
38
61
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
39 def setHideReadFeedEntries(self, flag):
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
40 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
41 pref.value = util.bool2str(flag)
87
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
42
72
e8c2730eb444 control the display of unread feeds/all feeds via Preferences
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 61
diff changeset
43 def showOnlyUnreadFeeds(self):
e8c2730eb444 control the display of unread feeds/all feeds via Preferences
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 61
diff changeset
44 pref = self._cachedPreference(SHOW_ONLY_UNREAD_FEEDS, False)
e8c2730eb444 control the display of unread feeds/all feeds via Preferences
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 61
diff changeset
45 return util.str2bool(pref.value)
87
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
46
72
e8c2730eb444 control the display of unread feeds/all feeds via Preferences
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 61
diff changeset
47 def setShowOnlyUnreadFeeds(self, flag):
e8c2730eb444 control the display of unread feeds/all feeds via Preferences
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 61
diff changeset
48 pref = self._cachedPreference(SHOW_ONLY_UNREAD_FEEDS)
e8c2730eb444 control the display of unread feeds/all feeds via Preferences
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 61
diff changeset
49 pref.value = util.bool2str(flag)
87
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
50
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
51 def proxyHost(self):
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
52 pref = self._cachedPreference(PROXY_HOST)
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
53 return pref.value
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
54
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
55 def setProxyHost(self, hostname):
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
56 pref = self._cachedPreference(PROXY_HOST)
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
57 pref.value = hostname
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
58
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
59 def proxyPort(self):
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
60 pref = self._cachedPreference(PROXY_PORT, 3128)
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
61 return int(pref.value)
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
62
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
63 def setProxyPort(self, port):
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
64 pref = self._cachedPreference(PROXY_PORT)
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
65 pref.value = str(port)
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
66
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
67 def isProxyConfigured(self):
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
68 pref = self._cachedPreference(PROXY_HOST, addIfMissing=False)
b8bfd1bd6c55 use a proxy if one is configured. TODO: GUI for configuring the proxy server
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
69 return pref is not None