10 from __future__ import unicode_literals |
10 from __future__ import unicode_literals |
11 |
11 |
12 import os |
12 import os |
13 |
13 |
14 from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl, QDir, QFile, \ |
14 from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl, QDir, QFile, \ |
15 QFileDevice, QTemporaryFile, qVersion |
15 QFileDevice, QTemporaryFile |
16 from PyQt5.QtGui import QIcon, QPixmap, QPainter |
16 from PyQt5.QtGui import QIcon, QPixmap, QPainter |
17 from PyQt5.QtWidgets import QWidget, QHBoxLayout, QMenu, QToolButton, \ |
17 from PyQt5.QtWidgets import QWidget, QHBoxLayout, QMenu, QToolButton, \ |
18 QDialog, QApplication |
18 QDialog, QApplication |
19 from PyQt5.QtPrintSupport import QPrinter, QPrintDialog, QAbstractPrintDialog |
19 from PyQt5.QtPrintSupport import QPrinter, QPrintDialog, QAbstractPrintDialog |
20 |
20 |
183 self.tr("Close Others"), self.__tabContextMenuCloseOthers) |
184 self.tr("Close Others"), self.__tabContextMenuCloseOthers) |
184 self.__tabContextMenu.addAction( |
185 self.__tabContextMenu.addAction( |
185 self.tr('Close All'), self.closeAllBrowsers) |
186 self.tr('Close All'), self.closeAllBrowsers) |
186 self.__tabContextMenu.addSeparator() |
187 self.__tabContextMenu.addSeparator() |
187 # TODO: re-check this once printing on Windows is reliable |
188 # TODO: re-check this once printing on Windows is reliable |
188 ## if qVersion() >= "5.8.0" or ( |
189 ## if qVersionTuple() >= (5, 8, 0) or ( |
189 ## not Globals.isWindowsPlatform() and qVersion() < "5.7.0"): |
190 ## not Globals.isWindowsPlatform() and qVersionTuple() < (5, 7, 0)): |
190 if not Globals.isWindowsPlatform() and ( |
191 if not Globals.isWindowsPlatform() and ( |
191 qVersion() < "5.7.0" or qVersion() >= "5.8.0"): |
192 qVersionTuple() < (5, 7, 0) or qVersionTuple() >= (5, 8, 0)): |
192 self.__tabContextMenu.addAction( |
193 self.__tabContextMenu.addAction( |
193 UI.PixmapCache.getIcon("printPreview.png"), |
194 UI.PixmapCache.getIcon("printPreview.png"), |
194 self.tr('Print Preview'), self.__tabContextMenuPrintPreview) |
195 self.tr('Print Preview'), self.__tabContextMenuPrintPreview) |
195 # TODO: re-check this once printing on Windows is reliable |
196 # TODO: re-check this once printing on Windows is reliable |
196 ## if qVersion() >= "5.8.0" or ( |
197 ## if qVersionTuple() >= (5, 8, 0) or ( |
197 ## not Globals.isWindowsPlatform() or qVersion() >= "5.7.0"): |
198 ## not Globals.isWindowsPlatform() or qVersionTuple() >= (5, 7, 0)): |
198 if not Globals.isWindowsPlatform() and qVersion() >= "5.7.0": |
199 if not Globals.isWindowsPlatform() and qVersionTuple() >= (5, 7, 0): |
199 self.__tabContextMenu.addAction( |
200 self.__tabContextMenu.addAction( |
200 UI.PixmapCache.getIcon("print.png"), |
201 UI.PixmapCache.getIcon("print.png"), |
201 self.tr('Print'), self.__tabContextMenuPrint) |
202 self.tr('Print'), self.__tabContextMenuPrint) |
202 if Globals.isLinuxPlatform() or qVersion() >= "5.7.0": |
203 if Globals.isLinuxPlatform() or qVersionTuple() >= (5, 7, 0): |
203 self.__tabContextMenu.addAction( |
204 self.__tabContextMenu.addAction( |
204 UI.PixmapCache.getIcon("printPdf.png"), |
205 UI.PixmapCache.getIcon("printPdf.png"), |
205 self.tr('Print as PDF'), self.__tabContextMenuPrintPdf) |
206 self.tr('Print as PDF'), self.__tabContextMenuPrintPdf) |
206 self.__tabContextMenu.addSeparator() |
207 self.__tabContextMenu.addSeparator() |
207 if hasattr(WebBrowserPage, "isAudioMuted"): |
208 if hasattr(WebBrowserPage, "isAudioMuted"): |
814 printer.setPrinterName(printerName) |
815 printer.setPrinterName(printerName) |
815 printer.setResolution(Preferences.getPrinter("Resolution")) |
816 printer.setResolution(Preferences.getPrinter("Resolution")) |
816 |
817 |
817 preview = QPrintPreviewDialog(printer, self) |
818 preview = QPrintPreviewDialog(printer, self) |
818 preview.resize(800, 750) |
819 preview.resize(800, 750) |
819 if qVersion() >= "5.8.0": |
820 if qVersionTuple() >= (5, 8, 0): |
820 preview.paintRequested.connect( |
821 preview.paintRequested.connect( |
821 lambda p: self.__printPreviewRequested(p, browser)) |
822 lambda p: self.__printPreviewRequested(p, browser)) |
822 else: |
823 else: |
823 preview.paintRequested.connect(lambda p: browser.render(p)) |
824 preview.paintRequested.connect(lambda p: browser.render(p)) |
824 preview.exec_() |
825 preview.exec_() |