WebBrowser/WebBrowserTabWidget.py

changeset 5181
1948b27d7b21
parent 5113
d394e20f7467
child 5182
e2782c9a43d4
--- a/WebBrowser/WebBrowserTabWidget.py	Sat Sep 24 18:00:30 2016 +0200
+++ b/WebBrowser/WebBrowserTabWidget.py	Tue Sep 27 19:41:11 2016 +0200
@@ -11,7 +11,7 @@
 
 import os
 
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl, QFile
+from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl, QFile, qVersion
 from PyQt5.QtGui import QIcon, QPixmap, QPainter
 from PyQt5.QtWidgets import QWidget, QHBoxLayout, QMenu, QToolButton, QDialog
 from PyQt5.QtPrintSupport import QPrinter, QPrintDialog
@@ -179,13 +179,15 @@
         self.__tabContextMenu.addAction(
             self.tr('Close All'), self.closeAllBrowsers)
         self.__tabContextMenu.addSeparator()
-        self.__tabContextMenu.addAction(
-            UI.PixmapCache.getIcon("printPreview.png"),
-            self.tr('Print Preview'), self.__tabContextMenuPrintPreview)
-        self.__tabContextMenu.addAction(
-            UI.PixmapCache.getIcon("print.png"),
-            self.tr('Print'), self.__tabContextMenuPrint)
-        if Globals.isLinuxPlatform():
+        if not Globals.isWindowsPlatform():
+            # TODO: implement printing based on printToPdf()
+            self.__tabContextMenu.addAction(
+                UI.PixmapCache.getIcon("printPreview.png"),
+                self.tr('Print Preview'), self.__tabContextMenuPrintPreview)
+            self.__tabContextMenu.addAction(
+                UI.PixmapCache.getIcon("print.png"),
+                self.tr('Print'), self.__tabContextMenuPrint)
+        if Globals.isLinuxPlatform() or qVersion() >= "5.7.0":
             self.__tabContextMenu.addAction(
                 UI.PixmapCache.getIcon("printPdf.png"),
                 self.tr('Print as PDF'), self.__tabContextMenuPrintPdf)
@@ -645,14 +647,27 @@
             from .Tools.PrintToPdfDialog import PrintToPdfDialog
             if not name:
                 name = "printout.pdf"
-            dlg = PrintToPdfDialog(os.path.abspath(name), self)
+            dlg = PrintToPdfDialog(name, self)
             if dlg.exec_() == QDialog.Accepted:
                 filePath, pageLayout = dlg.getData()
                 if filePath:
+                    if os.path.exists(filePath):
+                        res = E5MessageBox.warning(
+                            self,
+                            self.tr("Print to PDF"),
+                            self.tr("""<p>The file <b>{0}</b> exists"""
+                                    """ already. Shall it be"""
+                                    """ overwritten?</p>""").format(filePath),
+                            E5MessageBox.StandardButtons(
+                                E5MessageBox.No |
+                                E5MessageBox.Yes),
+                            E5MessageBox.No)
+                        if res == E5MessageBox.No:
+                            return
                     browser.page().printToPdf(
                         lambda p: self.__pdfGenerated(filePath, p),
                         pageLayout)
-        else:
+        elif Globals.isLinuxPlatform():
             printer = QPrinter(mode=QPrinter.HighResolution)
             if Preferences.getPrinter("ColorMode"):
                 printer.setColorMode(QPrinter.Color)

eric ide

mercurial