annotate PreferencesDialog.py @ 176:7001070d0bd5

clean code
author dirk
date Fri, 09 Sep 2011 18:19:01 +0200
parents e8bb107a74e1
children 2c91b5653878
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
40
c858aab71e5b add preferences dialog
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
1
c858aab71e5b add preferences dialog
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
2 from PyQt4 import QtGui
c858aab71e5b add preferences dialog
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
3 from Ui_Preferences import Ui_Preferences
c858aab71e5b add preferences dialog
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
4
42
0c0d1760b737 Rename Preferences to PreferencesDialog
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 41
diff changeset
5 class PreferencesDialog(QtGui.QDialog):
120
e830fa1cc7a2 re-enabled PreferencesDialog
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 111
diff changeset
6 def __init__(self, backend=None):
40
c858aab71e5b add preferences dialog
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
7 QtGui.QWidget.__init__(self, None)
120
e830fa1cc7a2 re-enabled PreferencesDialog
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 111
diff changeset
8 self.backend = backend
e830fa1cc7a2 re-enabled PreferencesDialog
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 111
diff changeset
9 self.preferences = backend.preferences()
40
c858aab71e5b add preferences dialog
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
10 self.ui = Ui_Preferences()
c858aab71e5b add preferences dialog
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
11 self.ui.setupUi(self)
42
0c0d1760b737 Rename Preferences to PreferencesDialog
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 41
diff changeset
12 self.fillUi()
88
48d1d7bba548 UI for setting the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
13
42
0c0d1760b737 Rename Preferences to PreferencesDialog
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 41
diff changeset
14 def fillUi(self):
111
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
15 self.fillMaximized()
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
16 self.fillHideReadFeedEntries()
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
17 self.fillShowOnlyUnreadFeeds()
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
18 self.fillProxySettings()
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
19 self.fillDaysToKeepFeedEntries()
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
20
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
21 def fillMaximized(self):
43
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 42
diff changeset
22 maximized = self.preferences.startMaximized()
12ed8b5fa08c first system preference: configure app to stat maximized.
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 42
diff changeset
23 self.ui.startMaximized.setChecked(maximized)
88
48d1d7bba548 UI for setting the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
24
111
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
25 def fillHideReadFeedEntries(self):
61
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
26 hideRead = self.preferences.hideReadFeedEntries()
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
27 self.ui.hideReadFeedEntries.setChecked(hideRead)
88
48d1d7bba548 UI for setting the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
28
111
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
29 def fillShowOnlyUnreadFeeds(self):
72
e8c2730eb444 control the display of unread feeds/all feeds via Preferences
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 61
diff changeset
30 showOnlyUnreadFeeds = self.preferences.showOnlyUnreadFeeds()
e8c2730eb444 control the display of unread feeds/all feeds via Preferences
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 61
diff changeset
31 self.ui.showOnlyUnreadFeeds.setChecked(showOnlyUnreadFeeds)
40
c858aab71e5b add preferences dialog
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
32
88
48d1d7bba548 UI for setting the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
33 def fillProxySettings(self):
48d1d7bba548 UI for setting the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
34 if self.preferences.isProxyConfigured():
48d1d7bba548 UI for setting the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
35 self.ui.proxyHost.setText(self.preferences.proxyHost())
158
e8bb107a74e1 all preferences are stored in a single JSON document in the couchdb backend. PreferencesDialog converts QString to a proper Python datatybe before sending it to the backend.
dirk
parents: 120
diff changeset
36 port = self.preferences.proxyPort()
e8bb107a74e1 all preferences are stored in a single JSON document in the couchdb backend. PreferencesDialog converts QString to a proper Python datatybe before sending it to the backend.
dirk
parents: 120
diff changeset
37 if port is not None:
e8bb107a74e1 all preferences are stored in a single JSON document in the couchdb backend. PreferencesDialog converts QString to a proper Python datatybe before sending it to the backend.
dirk
parents: 120
diff changeset
38 self.ui.proxyPort.setText(str(port))
88
48d1d7bba548 UI for setting the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
39
111
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
40 def fillDaysToKeepFeedEntries(self):
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
41 days = self.preferences.daysToKeepFeedEntries()
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
42 self.ui.daysToKeepFeedEntries.setText(str(days))
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
43
40
c858aab71e5b add preferences dialog
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff changeset
44 def startMaximizedChanged(self, change):
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
45 if change:
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
46 self.preferences.setStartMaximized(True)
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
47 else:
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
48 self.preferences.setStartMaximized(False)
41
9fa1e33b67da use Qt resources for window icons
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 40
diff changeset
49
61
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
50 def hideReadFeedEntriesChanged(self, change):
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
51 if change:
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
52 self.preferences.setHideReadFeedEntries(True)
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
53 else:
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
54 self.preferences.setHideReadFeedEntries(False)
db35ab7753f0 add a preference to hide read feed entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 46
diff changeset
55
72
e8c2730eb444 control the display of unread feeds/all feeds via Preferences
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 61
diff changeset
56 def showOnlyFeedsWithUnreadEntries(self, change):
e8c2730eb444 control the display of unread feeds/all feeds via Preferences
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 61
diff changeset
57 if change:
e8c2730eb444 control the display of unread feeds/all feeds via Preferences
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 61
diff changeset
58 self.preferences.setShowOnlyUnreadFeeds(True)
e8c2730eb444 control the display of unread feeds/all feeds via Preferences
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 61
diff changeset
59 else:
e8c2730eb444 control the display of unread feeds/all feeds via Preferences
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 61
diff changeset
60 self.preferences.setShowOnlyUnreadFeeds(False)
e8c2730eb444 control the display of unread feeds/all feeds via Preferences
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 61
diff changeset
61
88
48d1d7bba548 UI for setting the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
62 def storeProxySettings(self):
111
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
63 proxyHost = self.ui.proxyHost.text()
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
64 if proxyHost.isEmpty():
158
e8bb107a74e1 all preferences are stored in a single JSON document in the couchdb backend. PreferencesDialog converts QString to a proper Python datatybe before sending it to the backend.
dirk
parents: 120
diff changeset
65 self.preferences.setProxyHost(None)
e8bb107a74e1 all preferences are stored in a single JSON document in the couchdb backend. PreferencesDialog converts QString to a proper Python datatybe before sending it to the backend.
dirk
parents: 120
diff changeset
66 else:
e8bb107a74e1 all preferences are stored in a single JSON document in the couchdb backend. PreferencesDialog converts QString to a proper Python datatybe before sending it to the backend.
dirk
parents: 120
diff changeset
67 self.preferences.setProxyHost(str(proxyHost))
88
48d1d7bba548 UI for setting the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
68
111
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
69 proxyPort = self.ui.proxyPort.text()
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
70 if proxyPort.isEmpty():
158
e8bb107a74e1 all preferences are stored in a single JSON document in the couchdb backend. PreferencesDialog converts QString to a proper Python datatybe before sending it to the backend.
dirk
parents: 120
diff changeset
71 self.preferences.setProxyPort(None)
e8bb107a74e1 all preferences are stored in a single JSON document in the couchdb backend. PreferencesDialog converts QString to a proper Python datatybe before sending it to the backend.
dirk
parents: 120
diff changeset
72 else:
e8bb107a74e1 all preferences are stored in a single JSON document in the couchdb backend. PreferencesDialog converts QString to a proper Python datatybe before sending it to the backend.
dirk
parents: 120
diff changeset
73 self.preferences.setProxyPort(int(proxyPort))
88
48d1d7bba548 UI for setting the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
74
111
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
75 def daysToKeepFeedEntriesFinishedEditing(self):
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
76 text = self.ui.daysToKeepFeedEntries.text()
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
77 if not text.isEmpty():
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
78 text = str(text)
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
79 self.preferences.setDaysToKeepFeedEntries(text)
c17a224bc251 make the keep interval for feeds configurable via the GUI. Fix saving the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 88
diff changeset
80
41
9fa1e33b67da use Qt resources for window icons
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 40
diff changeset
81 def accept(self):
88
48d1d7bba548 UI for setting the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
82 self.storeProxySettings()
120
e830fa1cc7a2 re-enabled PreferencesDialog
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 111
diff changeset
83 self.preferences.commit();
41
9fa1e33b67da use Qt resources for window icons
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 40
diff changeset
84 QtGui.QDialog.accept(self)
88
48d1d7bba548 UI for setting the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
85
41
9fa1e33b67da use Qt resources for window icons
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 40
diff changeset
86 def reject(self):
120
e830fa1cc7a2 re-enabled PreferencesDialog
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 111
diff changeset
87 self.preferences.rollback()
41
9fa1e33b67da use Qt resources for window icons
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 40
diff changeset
88 QtGui.QDialog.reject(self)
88
48d1d7bba548 UI for setting the proxy settings
Dirk Olmes <dirk@xanthippe.ping.de>
parents: 72
diff changeset
89