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 |
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) |