|
1 # -*- coding: utf-8 -*- |
|
2 |
|
3 # Copyright (c) 2009 Detlev Offenbach <detlev@die-offenbachs.de> |
|
4 # |
|
5 |
|
6 """ |
|
7 Module implementing the Help web browser configuration page. |
|
8 """ |
|
9 |
|
10 from PyQt4.QtCore import qVersion, pyqtSlot |
|
11 |
|
12 from ConfigurationPageBase import ConfigurationPageBase |
|
13 from Ui_HelpWebBrowserPage import Ui_HelpWebBrowserPage |
|
14 |
|
15 import Helpviewer.HelpWindow |
|
16 |
|
17 import Preferences |
|
18 |
|
19 class HelpWebBrowserPage(ConfigurationPageBase, Ui_HelpWebBrowserPage): |
|
20 """ |
|
21 Class implementing the Help web browser configuration page. |
|
22 """ |
|
23 def __init__(self, configDialog): |
|
24 """ |
|
25 Constructor |
|
26 |
|
27 @param configDialog reference to the configuration dialog (ConfigurationDialog) |
|
28 """ |
|
29 ConfigurationPageBase.__init__(self) |
|
30 self.setupUi(self) |
|
31 self.setObjectName("HelpWebBrowserPage") |
|
32 |
|
33 mw = configDialog.parent().parent() |
|
34 if hasattr(mw, "helpWindow") and mw.helpWindow is not None: |
|
35 self.__helpWindow = mw.helpWindow |
|
36 elif hasattr(mw, "currentBrowser"): |
|
37 self.__helpWindow = mw |
|
38 else: |
|
39 self.__helpWindow = None |
|
40 self.setCurrentPageButton.setEnabled(self.__helpWindow is not None) |
|
41 |
|
42 defaultSchemes = ["file://", "http://", "https://", "qthelp://"] |
|
43 self.defaultSchemeCombo.addItems(defaultSchemes) |
|
44 |
|
45 # set initial values |
|
46 self.singleHelpWindowCheckBox.setChecked( |
|
47 Preferences.getHelp("SingleHelpWindow")) |
|
48 self.saveGeometryCheckBox.setChecked( |
|
49 Preferences.getHelp("SaveGeometry")) |
|
50 self.webSuggestionsCheckBox.setChecked( |
|
51 Preferences.getHelp("WebSearchSuggestions")) |
|
52 |
|
53 self.javaCheckBox.setChecked( |
|
54 Preferences.getHelp("JavaEnabled")) |
|
55 self.javaScriptCheckBox.setChecked( |
|
56 Preferences.getHelp("JavaScriptEnabled")) |
|
57 self.jsOpenWindowsCheckBox.setChecked( |
|
58 Preferences.getHelp("JavaScriptCanOpenWindows")) |
|
59 self.jsClipboardCheckBox.setChecked( |
|
60 Preferences.getHelp("JavaScriptCanAccessClipboard")) |
|
61 self.pluginsCheckBox.setChecked( |
|
62 Preferences.getHelp("PluginsEnabled")) |
|
63 |
|
64 self.savePasswordsCheckBox.setChecked( |
|
65 Preferences.getHelp("SavePasswords")) |
|
66 |
|
67 if qVersion() >= '4.5.0': |
|
68 self.diskCacheCheckBox.setChecked( |
|
69 Preferences.getHelp("DiskCacheEnabled")) |
|
70 self.cacheSizeSpinBox.setValue( |
|
71 Preferences.getHelp("DiskCacheSize")) |
|
72 self.printBackgroundsCheckBox.setChecked( |
|
73 Preferences.getHelp("PrintBackgrounds")) |
|
74 else: |
|
75 self.cacheGroup.setEnabled(False) |
|
76 self.printGroup.setEnabled(False) |
|
77 |
|
78 self.startupCombo.setCurrentIndex( |
|
79 Preferences.getHelp("StartupBehavior")) |
|
80 self.homePageEdit.setText( |
|
81 Preferences.getHelp("HomePage")) |
|
82 |
|
83 self.defaultSchemeCombo.setEditText( |
|
84 Preferences.getHelp("DefaultScheme")) |
|
85 |
|
86 historyLimit = Preferences.getHelp("HistoryLimit") |
|
87 idx = 0 |
|
88 if historyLimit == 1: |
|
89 idx = 0 |
|
90 elif historyLimit == 7: |
|
91 idx = 1 |
|
92 elif historyLimit == 14: |
|
93 idx = 2 |
|
94 elif historyLimit == 30: |
|
95 idx = 3 |
|
96 elif historyLimit == 365: |
|
97 idx = 4 |
|
98 elif historyLimit == -1: |
|
99 idx = 5 |
|
100 elif historyLimit == -2: |
|
101 idx = 6 |
|
102 else: |
|
103 idx = 5 |
|
104 self.expireHistory.setCurrentIndex(idx) |
|
105 |
|
106 def save(self): |
|
107 """ |
|
108 Public slot to save the Help Viewers configuration. |
|
109 """ |
|
110 Preferences.setHelp("SingleHelpWindow", |
|
111 int(self.singleHelpWindowCheckBox.isChecked())) |
|
112 Preferences.setHelp("SaveGeometry", |
|
113 int(self.saveGeometryCheckBox.isChecked())) |
|
114 Preferences.setHelp("WebSearchSuggestions", |
|
115 int(self.webSuggestionsCheckBox.isChecked())) |
|
116 |
|
117 Preferences.setHelp("JavaEnabled", |
|
118 int(self.javaCheckBox.isChecked())) |
|
119 Preferences.setHelp("JavaScriptEnabled", |
|
120 int(self.javaScriptCheckBox.isChecked())) |
|
121 Preferences.setHelp("JavaScriptCanOpenWindows", |
|
122 int(self.jsOpenWindowsCheckBox.isChecked())) |
|
123 Preferences.setHelp("JavaScriptCanAccessClipboard", |
|
124 int(self.jsClipboardCheckBox.isChecked())) |
|
125 Preferences.setHelp("PluginsEnabled", |
|
126 int(self.pluginsCheckBox.isChecked())) |
|
127 |
|
128 Preferences.setHelp("SavePasswords", |
|
129 int(self.savePasswordsCheckBox.isChecked())) |
|
130 |
|
131 if qVersion() >= '4.5.0': |
|
132 Preferences.setHelp("DiskCacheEnabled", |
|
133 int(self.diskCacheCheckBox.isChecked())) |
|
134 Preferences.setHelp("DiskCacheSize", |
|
135 self.cacheSizeSpinBox.value()) |
|
136 Preferences.setHelp("PrintBackgrounds", |
|
137 int(self.printBackgroundsCheckBox.isChecked())) |
|
138 |
|
139 Preferences.setHelp("StartupBehavior", |
|
140 self.startupCombo.currentIndex()) |
|
141 Preferences.setHelp("HomePage", |
|
142 self.homePageEdit.text()) |
|
143 |
|
144 Preferences.setHelp("DefaultScheme", |
|
145 self.defaultSchemeCombo.currentText()) |
|
146 |
|
147 idx = self.expireHistory.currentIndex() |
|
148 if idx == 0: |
|
149 historyLimit = 1 |
|
150 elif idx == 1: |
|
151 historyLimit = 7 |
|
152 elif idx == 2: |
|
153 historyLimit = 14 |
|
154 elif idx == 3: |
|
155 historyLimit = 30 |
|
156 elif idx == 4: |
|
157 historyLimit = 365 |
|
158 elif idx == 5: |
|
159 historyLimit = -1 |
|
160 elif idx == 6: |
|
161 historyLimit = -2 |
|
162 Preferences.setHelp("HistoryLimit", historyLimit) |
|
163 |
|
164 @pyqtSlot() |
|
165 def on_setCurrentPageButton_clicked(self): |
|
166 """ |
|
167 Private slot to set the current page as the home page. |
|
168 """ |
|
169 url = self.__helpWindow.currentBrowser().url() |
|
170 self.homePageEdit.setText(unicode(url.toEncoded())) |
|
171 |
|
172 @pyqtSlot() |
|
173 def on_defaultHomeButton_clicked(self): |
|
174 """ |
|
175 Private slot to set the default home page. |
|
176 """ |
|
177 self.homePageEdit.setText(Preferences.Prefs.helpDefaults["HomePage"]) |
|
178 |
|
179 def create(dlg): |
|
180 """ |
|
181 Module function to create the configuration page. |
|
182 |
|
183 @param dlg reference to the configuration dialog |
|
184 """ |
|
185 page = HelpWebBrowserPage(dlg) |
|
186 return page |