16 import os |
16 import os |
17 import shutil |
17 import shutil |
18 import sys |
18 import sys |
19 |
19 |
20 from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QByteArray, QSize, QTimer, \ |
20 from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QByteArray, QSize, QTimer, \ |
21 QUrl, QTextCodec, QProcess, QEvent, qVersion |
21 QUrl, QTextCodec, QProcess, QEvent |
22 from PyQt5.QtGui import QDesktopServices, QKeySequence, QFont, QFontMetrics |
22 from PyQt5.QtGui import QDesktopServices, QKeySequence, QFont, QFontMetrics |
23 from PyQt5.QtWidgets import QWidget, QVBoxLayout, QSizePolicy, QDockWidget, \ |
23 from PyQt5.QtWidgets import QWidget, QVBoxLayout, QSizePolicy, QDockWidget, \ |
24 QComboBox, QLabel, QMenu, QToolButton, QLineEdit, QApplication, \ |
24 QComboBox, QLabel, QMenu, QToolButton, QLineEdit, QApplication, \ |
25 QWhatsThis, QDialog, QHBoxLayout, QProgressBar, QInputDialog |
25 QWhatsThis, QDialog, QHBoxLayout, QProgressBar, QInputDialog |
26 from PyQt5.QtWebEngineWidgets import QWebEngineSettings, QWebEnginePage, \ |
26 from PyQt5.QtWebEngineWidgets import QWebEngineSettings, QWebEnginePage, \ |
742 self.exportBookmarksAct.triggered.connect( |
743 self.exportBookmarksAct.triggered.connect( |
743 bookmarksManager.exportBookmarks) |
744 bookmarksManager.exportBookmarks) |
744 self.__actions.append(self.exportBookmarksAct) |
745 self.__actions.append(self.exportBookmarksAct) |
745 |
746 |
746 # TODO: re-check this once printing on Windows is reliable |
747 # TODO: re-check this once printing on Windows is reliable |
747 ## if qVersion() >= "5.8.0" or ( |
748 ## if qVersionTuple() >= (5, 8, 0) or ( |
748 ## not Globals.isWindowsPlatform() or qVersion() >= "5.7.0"): |
749 ## not Globals.isWindowsPlatform() or qVersionTuple() >= (5, 7, 0)): |
749 if not Globals.isWindowsPlatform() and qVersion() >= "5.7.0": |
750 if not Globals.isWindowsPlatform() and qVersionTuple() >= (5, 7, 0): |
750 self.printAct = E5Action( |
751 self.printAct = E5Action( |
751 self.tr('Print'), |
752 self.tr('Print'), |
752 UI.PixmapCache.getIcon("print.png"), |
753 UI.PixmapCache.getIcon("print.png"), |
753 self.tr('&Print'), |
754 self.tr('&Print'), |
754 QKeySequence(self.tr("Ctrl+P", "File|Print")), |
755 QKeySequence(self.tr("Ctrl+P", "File|Print")), |
762 self.printAct.triggered.connect(self.__tabWidget.printBrowser) |
763 self.printAct.triggered.connect(self.__tabWidget.printBrowser) |
763 self.__actions.append(self.printAct) |
764 self.__actions.append(self.printAct) |
764 else: |
765 else: |
765 self.printAct = None |
766 self.printAct = None |
766 |
767 |
767 if Globals.isLinuxPlatform() or qVersion() >= "5.7.0": |
768 if Globals.isLinuxPlatform() or qVersionTuple() >= (5, 7, 0): |
768 self.printPdfAct = E5Action( |
769 self.printPdfAct = E5Action( |
769 self.tr('Print as PDF'), |
770 self.tr('Print as PDF'), |
770 UI.PixmapCache.getIcon("printPdf.png"), |
771 UI.PixmapCache.getIcon("printPdf.png"), |
771 self.tr('Print as PDF'), |
772 self.tr('Print as PDF'), |
772 0, 0, self, 'webbrowser_file_print_pdf') |
773 0, 0, self, 'webbrowser_file_print_pdf') |
782 self.__actions.append(self.printPdfAct) |
783 self.__actions.append(self.printPdfAct) |
783 else: |
784 else: |
784 self.printPdfAct = None |
785 self.printPdfAct = None |
785 |
786 |
786 # TODO: re-check this once printing on Windows is reliable |
787 # TODO: re-check this once printing on Windows is reliable |
787 ## if qVersion() >= "5.8.0" or ( |
788 ## if qVersionTuple() >= (5, 8, 0) or ( |
788 ## not Globals.isWindowsPlatform() and qVersion() < "5.7.0"): |
789 ## not Globals.isWindowsPlatform() and qVersionTuple() < (5, 7, 0)): |
789 if not Globals.isWindowsPlatform() and ( |
790 if not Globals.isWindowsPlatform() and ( |
790 qVersion() < "5.7.0" or qVersion() >= "5.8.0"): |
791 qVersionTuple() < (5, 7, 0) or qVersionTuple() >= (5, 8, 0)): |
791 self.printPreviewAct = E5Action( |
792 self.printPreviewAct = E5Action( |
792 self.tr('Print Preview'), |
793 self.tr('Print Preview'), |
793 UI.PixmapCache.getIcon("printPreview.png"), |
794 UI.PixmapCache.getIcon("printPreview.png"), |
794 self.tr('Print Preview'), |
795 self.tr('Print Preview'), |
795 0, 0, self, 'webbrowser_file_print_preview') |
796 0, 0, self, 'webbrowser_file_print_preview') |
2866 Preferences.getWebBrowser("DiskCacheSize") * 1024 * 1024) |
2867 Preferences.getWebBrowser("DiskCacheSize") * 1024 * 1024) |
2867 else: |
2868 else: |
2868 profile.setHttpCacheType(QWebEngineProfile.MemoryHttpCache) |
2869 profile.setHttpCacheType(QWebEngineProfile.MemoryHttpCache) |
2869 profile.setHttpCacheMaximumSize(0) |
2870 profile.setHttpCacheMaximumSize(0) |
2870 |
2871 |
2871 if qVersion() >= "5.8.0": |
2872 if qVersionTuple() >= (5, 8, 0): |
2872 profile.setSpellCheckEnabled( |
2873 profile.setSpellCheckEnabled( |
2873 Preferences.getWebBrowser("SpellCheckEnabled")) |
2874 Preferences.getWebBrowser("SpellCheckEnabled")) |
2874 profile.setSpellCheckLanguages( |
2875 profile.setSpellCheckLanguages( |
2875 Preferences.getWebBrowser("SpellCheckLanguages")) |
2876 Preferences.getWebBrowser("SpellCheckLanguages")) |
2876 |
2877 |
4238 Utilities.getConfigDir(), "web_browser", |
4239 Utilities.getConfigDir(), "web_browser", |
4239 "persistentstorage")) |
4240 "persistentstorage")) |
4240 cls._webProfile.setPersistentCookiesPolicy( |
4241 cls._webProfile.setPersistentCookiesPolicy( |
4241 QWebEngineProfile.AllowPersistentCookies) |
4242 QWebEngineProfile.AllowPersistentCookies) |
4242 |
4243 |
4243 if qVersion() >= "5.8.0": |
4244 if qVersionTuple() >= (5, 8, 0): |
4244 cls._webProfile.setSpellCheckEnabled( |
4245 cls._webProfile.setSpellCheckEnabled( |
4245 Preferences.getWebBrowser("SpellCheckEnabled")) |
4246 Preferences.getWebBrowser("SpellCheckEnabled")) |
4246 cls._webProfile.setSpellCheckLanguages( |
4247 cls._webProfile.setSpellCheckLanguages( |
4247 Preferences.getWebBrowser("SpellCheckLanguages")) |
4248 Preferences.getWebBrowser("SpellCheckLanguages")) |
4248 |
4249 |