annotate Preferences.py @ 114:b0290ab29483

move the "mark as read" menu items up in the feed menu as they are used most often
author Dirk Olmes <dirk@xanthippe.ping.de>
date Sat, 28 May 2011 07:43:56 +0200
parents c17a224bc251
children
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
110
43c234c8fe87 store the number of days to keep feed entries as preference setting in the database. The feed update process reads and uses that value.
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 87
diff changeset
5 DAYS_TO_KEEP_FEED_ENTRIES = "DAYS_TO_KEEP_FEED_ENTRIES"
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
6 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
7 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
8 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
9 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
10 START_MAXIMIZED = "START_MAXIMIZED"
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
11
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
12 class Preferences(object):
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
13 def __init__(self, session):
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
14 self.session = session
44
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
15 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
16
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
17 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
18 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
19 return self.cache[key]
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
20 else:
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
21 pref = Preference.forKey(key, self.session)
111
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
22 if pref is not None:
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
23 self.cache[key] = pref
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
24 elif 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
25 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
26 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
27 self.cache[key] = pref
44
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
28 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
29
43
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
30 def startMaximized(self):
44
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
31 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
32 return util.str2bool(pref.value)
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
33
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
34 def setStartMaximized(self, flag):
be990ac6e478 saving the preference "start maximized" from GUI implemented
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 43
diff changeset
35 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
36 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
37
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
38 def hideReadFeedEntries(self):
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
39 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
40 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
41
61
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
42 def setHideReadFeedEntries(self, flag):
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
43 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
44 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
45
72
e8c2730eb444 control the display of unread feeds/all feeds via Preferences
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 61
diff changeset
46 def showOnlyUnreadFeeds(self):
e8c2730eb444 control the display of unread feeds/all feeds via Preferences
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 61
diff changeset
47 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
48 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
49
72
e8c2730eb444 control the display of unread feeds/all feeds via Preferences
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 61
diff changeset
50 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
51 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
52 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
53
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 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
55 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
56 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
57
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 def setProxyHost(self, hostname):
111
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
59 if hostname is None:
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
60 pref = self._cachedPreference(PROXY_HOST, addIfMissing=False)
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
61 if pref is not None:
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
62 self.session.delete(pref)
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
63 del(self.cache[PROXY_HOST])
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
64 else:
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
65 pref = self._cachedPreference(PROXY_HOST)
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
66 pref.value = str(hostname)
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
67
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 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
69 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
70 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
71
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
72 def setProxyPort(self, port):
111
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
73 if port is None:
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
74 pref = self._cachedPreference(PROXY_PORT, addIfMissing=False)
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
75 if pref is not None:
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
76 self.session.delete(pref)
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
77 del(self.cache[PROXY_PORT])
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
78 else:
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
79 pref = self._cachedPreference(PROXY_PORT)
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
80 pref.value = str(port)
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
81
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
82 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
83 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
84 return pref is not None
110
43c234c8fe87 store the number of days to keep feed entries as preference setting in the database. The feed update process reads and uses that value.
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 87
diff changeset
85
43c234c8fe87 store the number of days to keep feed entries as preference setting in the database. The feed update process reads and uses that value.
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 87
diff changeset
86 def daysToKeepFeedEntries(self):
43c234c8fe87 store the number of days to keep feed entries as preference setting in the database. The feed update process reads and uses that value.
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 87
diff changeset
87 pref = self._cachedPreference(DAYS_TO_KEEP_FEED_ENTRIES, 90, addIfMissing=True)
43c234c8fe87 store the number of days to keep feed entries as preference setting in the database. The feed update process reads and uses that value.
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 87
diff changeset
88 return int(pref.value)
111
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
89
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
90 def setDaysToKeepFeedEntries(self, dayString):
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
91 pref = self._cachedPreference(DAYS_TO_KEEP_FEED_ENTRIES)
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 110
diff changeset
92 pref.value = dayString