Helpviewer/HelpWindow.py

changeset 2100
fb16f4650860
parent 2099
afde0e9110f7
child 2101
5bac7dee9e1a
equal deleted inserted replaced
2099:afde0e9110f7 2100:fb16f4650860
12 from PyQt4.QtCore import pyqtSlot, pyqtSignal, Qt, QByteArray, QSize, QTimer, QUrl, \ 12 from PyQt4.QtCore import pyqtSlot, pyqtSignal, Qt, QByteArray, QSize, QTimer, QUrl, \
13 QThread, QTextCodec 13 QThread, QTextCodec
14 from PyQt4.QtGui import QMainWindow, QWidget, QVBoxLayout, QSizePolicy, QDockWidget, \ 14 from PyQt4.QtGui import QMainWindow, QWidget, QVBoxLayout, QSizePolicy, QDockWidget, \
15 QDesktopServices, QKeySequence, QComboBox, QFont, QFontMetrics, QLabel, \ 15 QDesktopServices, QKeySequence, QComboBox, QFont, QFontMetrics, QLabel, \
16 QSplitter, QMenu, QToolButton, QLineEdit, QApplication, QWhatsThis, QDialog, \ 16 QSplitter, QMenu, QToolButton, QLineEdit, QApplication, QWhatsThis, QDialog, \
17 QHBoxLayout, QProgressBar, QAction, QIcon 17 QHBoxLayout, QProgressBar, QAction, QIcon, QStyleFactory
18 from PyQt4.QtNetwork import QNetworkAccessManager, QNetworkRequest 18 from PyQt4.QtNetwork import QNetworkAccessManager, QNetworkRequest
19 from PyQt4.QtWebKit import QWebSettings, QWebDatabase, QWebSecurityOrigin, QWebPage 19 from PyQt4.QtWebKit import QWebSettings, QWebDatabase, QWebSecurityOrigin, QWebPage
20 from PyQt4.QtHelp import QHelpEngine, QHelpEngineCore, QHelpSearchQuery 20 from PyQt4.QtHelp import QHelpEngine, QHelpEngineCore, QHelpSearchQuery
21 21
22 from .SearchWidget import SearchWidget 22 from .SearchWidget import SearchWidget
63 from .data import html_rc # __IGNORE_WARNING__ 63 from .data import html_rc # __IGNORE_WARNING__
64 from .data import javascript_rc # __IGNORE_WARNING__ 64 from .data import javascript_rc # __IGNORE_WARNING__
65 65
66 from E5Gui.E5Action import E5Action 66 from E5Gui.E5Action import E5Action
67 from E5Gui import E5MessageBox, E5FileDialog 67 from E5Gui import E5MessageBox, E5FileDialog
68 from E5Gui.E5Application import e5App
68 69
69 from E5Network.E5NetworkMonitor import E5NetworkMonitor 70 from E5Network.E5NetworkMonitor import E5NetworkMonitor
70 71
71 import Preferences 72 import Preferences
72 from Preferences import Shortcuts 73 from Preferences import Shortcuts
139 self.__eventKeyboardModifiers = Qt.NoModifier 140 self.__eventKeyboardModifiers = Qt.NoModifier
140 141
141 if self.initShortcutsOnly: 142 if self.initShortcutsOnly:
142 self.__initActions() 143 self.__initActions()
143 else: 144 else:
145 if not self.fromEric:
146 self.__setStyle()
147
144 self.__helpEngine = \ 148 self.__helpEngine = \
145 QHelpEngine(os.path.join(Utilities.getConfigDir(), 149 QHelpEngine(os.path.join(Utilities.getConfigDir(),
146 "browser", "eric5help.qhc"), self) 150 "browser", "eric5help.qhc"), self)
147 self.__helpEngine.warning.connect(self.__warning) 151 self.__helpEngine.warning.connect(self.__warning)
148 self.__helpInstaller = None 152 self.__helpInstaller = None
2183 2187
2184 def preferencesChanged(self): 2188 def preferencesChanged(self):
2185 """ 2189 """
2186 Public slot to handle a change of preferences. 2190 Public slot to handle a change of preferences.
2187 """ 2191 """
2192 if not self.fromEric:
2193 self.__setStyle()
2194
2188 self.__initWebSettings() 2195 self.__initWebSettings()
2189 2196
2190 self.networkAccessManager().preferencesChanged() 2197 self.networkAccessManager().preferencesChanged()
2191 2198
2192 self.historyManager().preferencesChanged() 2199 self.historyManager().preferencesChanged()
3270 3277
3271 encodedStyle = bytes(QByteArray(userStyle).toBase64()).decode() 3278 encodedStyle = bytes(QByteArray(userStyle).toBase64()).decode()
3272 dataString = "data:text/css;charset=utf-8;base64,{0}".format(encodedStyle) 3279 dataString = "data:text/css;charset=utf-8;base64,{0}".format(encodedStyle)
3273 3280
3274 return QUrl(dataString) 3281 return QUrl(dataString)
3282
3283 def __setStyle(self):
3284 """
3285 Private slot to set the style of the interface.
3286 """
3287 # step 1: set the style
3288 style = None
3289 styleName = Preferences.getUI("Style")
3290 if styleName != "System" and styleName in QStyleFactory.keys():
3291 style = QStyleFactory.create(styleName)
3292 if style is None:
3293 style = QStyleFactory.create(self.defaultStyleName)
3294 if style is not None:
3295 QApplication.setStyle(style)
3296
3297 # step 2: set a style sheet
3298 styleSheetFile = Preferences.getUI("StyleSheet")
3299 if styleSheetFile:
3300 try:
3301 f = open(styleSheetFile, "r", encoding="utf-8")
3302 styleSheet = f.read()
3303 f.close()
3304 except IOError as msg:
3305 E5MessageBox.warning(self,
3306 self.trUtf8("Loading Style Sheet"),
3307 self.trUtf8("""<p>The Qt Style Sheet file <b>{0}</b> could"""
3308 """ not be read.<br>Reason: {1}</p>""")
3309 .format(styleSheetFile, str(msg)))
3310 return
3311 else:
3312 styleSheet = ""
3313
3314 e5App().setStyleSheet(styleSheet)

eric ide

mercurial