eric6/Preferences/ConfigurationPages/WebBrowserAppearancePage.py

changeset 6942
2602857055c5
parent 6645
ad476851d7e0
child 6999
f23e546a7eb9
equal deleted inserted replaced
6941:f99d60d6b59b 6942:2602857055c5
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2006 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing the Web Browser Appearance configuration page.
8 """
9
10 from __future__ import unicode_literals
11
12 from PyQt5.QtGui import QFont
13 from PyQt5.QtWidgets import QFontDialog
14
15 from E5Gui.E5PathPicker import E5PathPickerModes
16
17 from .ConfigurationPageBase import ConfigurationPageBase
18 from .Ui_WebBrowserAppearancePage import Ui_WebBrowserAppearancePage
19
20 import Preferences
21
22 try:
23 MonospacedFontsOption = QFontDialog.MonospacedFonts
24 except AttributeError:
25 MonospacedFontsOption = QFontDialog.FontDialogOptions(0x10)
26
27
28 class WebBrowserAppearancePage(ConfigurationPageBase,
29 Ui_WebBrowserAppearancePage):
30 """
31 Class implementing the Web Browser Appearance page.
32 """
33 def __init__(self):
34 """
35 Constructor
36 """
37 super(WebBrowserAppearancePage, self).__init__()
38 self.setupUi(self)
39 self.setObjectName("WebBrowserAppearancePage")
40
41 self.styleSheetPicker.setMode(E5PathPickerModes.OpenFileMode)
42 self.styleSheetPicker.setFilters(self.tr(
43 "Cascading Style Sheets (*.css);;All files (*)"))
44
45 self.__displayMode = None
46
47 # set initial values
48 defaultFontSize = Preferences.getWebBrowser("DefaultFontSize")
49 fixedFontSize = Preferences.getWebBrowser("DefaultFixedFontSize")
50 self.defaultSizeSpinBox.setValue(defaultFontSize)
51 self.fixedSizeSpinBox.setValue(fixedFontSize)
52 self.minSizeSpinBox.setValue(
53 Preferences.getWebBrowser("MinimumFontSize"))
54 self.minLogicalSizeSpinBox.setValue(
55 Preferences.getWebBrowser("MinimumLogicalFontSize"))
56
57 self.standardFontCombo.setCurrentFont(
58 QFont(Preferences.getWebBrowser("StandardFontFamily"),
59 defaultFontSize, QFont.Normal, False))
60 self.fixedFontCombo.setCurrentFont(
61 QFont(Preferences.getWebBrowser("FixedFontFamily"),
62 fixedFontSize, QFont.Normal, False))
63 self.serifFontCombo.setCurrentFont(
64 QFont(Preferences.getWebBrowser("SerifFontFamily"),
65 defaultFontSize, QFont.Normal, False))
66 self.sansSerifFontCombo.setCurrentFont(
67 QFont(Preferences.getWebBrowser("SansSerifFontFamily"),
68 defaultFontSize, QFont.Normal, False))
69 self.cursiveFontCombo.setCurrentFont(
70 QFont(Preferences.getWebBrowser("CursiveFontFamily"),
71 defaultFontSize, QFont.Normal, True))
72 self.fantasyFontCombo.setCurrentFont(
73 QFont(Preferences.getWebBrowser("FantasyFontFamily"),
74 defaultFontSize, QFont.Normal, False))
75 try:
76 # Qt 5.7+
77 self.pictographFontCombo.setCurrentFont(
78 QFont(Preferences.getWebBrowser("PictographFontFamily"),
79 defaultFontSize, QFont.Normal, False))
80 except KeyError:
81 self.pictographFontLabel.setEnabled(False)
82 self.pictographFontCombo.setEnabled(False)
83
84 self.initColour("SaveUrlColor", self.secureURLsColourButton,
85 Preferences.getWebBrowser)
86
87 self.autoLoadImagesCheckBox.setChecked(
88 Preferences.getWebBrowser("AutoLoadImages"))
89
90 self.styleSheetPicker.setText(
91 Preferences.getWebBrowser("UserStyleSheet"))
92
93 self.tabsCloseButtonCheckBox.setChecked(
94 Preferences.getUI("SingleCloseButton"))
95 self.warnOnMultipleCloseCheckBox.setChecked(
96 Preferences.getWebBrowser("WarnOnMultipleClose"))
97
98 try:
99 # Qt 5.10
100 self.scrollbarsCheckBox.setChecked(
101 Preferences.getWebBrowser("ShowScrollBars"))
102 except KeyError:
103 self.scrollbarsCheckBox.setEnabled(False)
104 self.toolbarsCheckBox.setChecked(
105 Preferences.getWebBrowser("ShowToolbars"))
106
107 def setMode(self, displayMode):
108 """
109 Public method to perform mode dependent setups.
110
111 @param displayMode mode of the configuration dialog
112 (ConfigurationWidget.DefaultMode,
113 ConfigurationWidget.HelpBrowserMode,
114 ConfigurationWidget.TrayStarterMode)
115 """
116 from ..ConfigurationDialog import ConfigurationWidget
117 assert displayMode in (
118 ConfigurationWidget.DefaultMode,
119 ConfigurationWidget.WebBrowserMode,
120 )
121
122 self.__displayMode = displayMode
123 if self.__displayMode != ConfigurationWidget.WebBrowserMode:
124 self.tabsGroupBox.hide()
125
126 def save(self):
127 """
128 Public slot to save the Help Viewers configuration.
129 """
130 Preferences.setWebBrowser(
131 "StandardFontFamily",
132 self.standardFontCombo.currentFont().family())
133 Preferences.setWebBrowser(
134 "FixedFontFamily",
135 self.fixedFontCombo.currentFont().family())
136 Preferences.setWebBrowser(
137 "SerifFontFamily",
138 self.serifFontCombo.currentFont().family())
139 Preferences.setWebBrowser(
140 "SansSerifFontFamily",
141 self.sansSerifFontCombo.currentFont().family())
142 Preferences.setWebBrowser(
143 "CursiveFontFamily",
144 self.cursiveFontCombo.currentFont().family())
145 Preferences.setWebBrowser(
146 "FantasyFontFamily",
147 self.fantasyFontCombo.currentFont().family())
148 if self.pictographFontCombo.isEnabled():
149 Preferences.setWebBrowser(
150 "PictographFontFamily",
151 self.pictographFontCombo.currentFont().family())
152
153 Preferences.setWebBrowser(
154 "DefaultFontSize",
155 self.defaultSizeSpinBox.value())
156 Preferences.setWebBrowser(
157 "DefaultFixedFontSize",
158 self.fixedSizeSpinBox.value())
159 Preferences.setWebBrowser(
160 "MinimumFontSize",
161 self.minSizeSpinBox.value())
162 Preferences.setWebBrowser(
163 "MinimumLogicalFontSize",
164 self.minLogicalSizeSpinBox.value())
165
166 Preferences.setWebBrowser(
167 "AutoLoadImages",
168 self.autoLoadImagesCheckBox.isChecked())
169
170 Preferences.setWebBrowser(
171 "UserStyleSheet",
172 self.styleSheetPicker.text())
173
174 self.saveColours(Preferences.setWebBrowser)
175
176 from ..ConfigurationDialog import ConfigurationWidget
177 if self.__displayMode == ConfigurationWidget.WebBrowserMode:
178 Preferences.setUI(
179 "SingleCloseButton",
180 self.tabsCloseButtonCheckBox.isChecked())
181
182 Preferences.setWebBrowser(
183 "WarnOnMultipleClose",
184 self.warnOnMultipleCloseCheckBox.isChecked())
185
186 if self.scrollbarsCheckBox.isEnabled():
187 Preferences.setWebBrowser(
188 "ShowScrollBars",
189 self.scrollbarsCheckBox.isChecked())
190
191 Preferences.setWebBrowser(
192 "ShowToolbars",
193 self.toolbarsCheckBox.isChecked())
194
195
196 def create(dlg):
197 """
198 Module function to create the configuration page.
199
200 @param dlg reference to the configuration dialog
201 @return reference to the instantiated page (ConfigurationPageBase)
202 """
203 page = WebBrowserAppearancePage()
204 return page

eric ide

mercurial