Helpviewer/HelpWindow.py

changeset 314
c1379cab7697
parent 313
4872737993ab
child 319
09f456ec6fcf
equal deleted inserted replaced
313:4872737993ab 314:c1379cab7697
429 """<p>Print the displayed help text.</p>""" 429 """<p>Print the displayed help text.</p>"""
430 )) 430 ))
431 self.connect(self.printAct, SIGNAL('triggered()'), self.__printFile) 431 self.connect(self.printAct, SIGNAL('triggered()'), self.__printFile)
432 self.__actions.append(self.printAct) 432 self.__actions.append(self.printAct)
433 433
434 self.printPdfAct = E5Action(self.trUtf8('Print as PDF'),
435 UI.PixmapCache.getIcon("printPdf.png"),
436 self.trUtf8('Print as PDF'),
437 0, 0, self, 'help_file_print_pdf')
438 self.printPdfAct.setStatusTip(self.trUtf8('Print the displayed help as PDF'))
439 self.printPdfAct.setWhatsThis(self.trUtf8(
440 """<b>Print as PDF</b>"""
441 """<p>Print the displayed help text as a PDF file.</p>"""
442 ))
443 self.connect(self.printPdfAct, SIGNAL('triggered()'), self.__printFilePdf)
444 self.__actions.append(self.printPdfAct)
445
434 self.printPreviewAct = E5Action(self.trUtf8('Print Preview'), 446 self.printPreviewAct = E5Action(self.trUtf8('Print Preview'),
435 UI.PixmapCache.getIcon("printPreview.png"), 447 UI.PixmapCache.getIcon("printPreview.png"),
436 self.trUtf8('Print Preview'), 448 self.trUtf8('Print Preview'),
437 0, 0, self, 'help_file_print_preview') 449 0, 0, self, 'help_file_print_preview')
438 self.printPreviewAct.setStatusTip(self.trUtf8( 450 self.printPreviewAct.setStatusTip(self.trUtf8(
1066 menu.addAction(self.importBookmarksAct) 1078 menu.addAction(self.importBookmarksAct)
1067 menu.addAction(self.exportBookmarksAct) 1079 menu.addAction(self.exportBookmarksAct)
1068 menu.addSeparator() 1080 menu.addSeparator()
1069 menu.addAction(self.printPreviewAct) 1081 menu.addAction(self.printPreviewAct)
1070 menu.addAction(self.printAct) 1082 menu.addAction(self.printAct)
1083 menu.addAction(self.printPdfAct)
1071 menu.addSeparator() 1084 menu.addSeparator()
1072 menu.addAction(self.closeAct) 1085 menu.addAction(self.closeAct)
1073 menu.addAction(self.closeAllAct) 1086 menu.addAction(self.closeAllAct)
1074 menu.addSeparator() 1087 menu.addSeparator()
1075 menu.addAction(self.privateBrowsingAct) 1088 menu.addAction(self.privateBrowsingAct)
1198 self.__tabContextMenu.addSeparator() 1211 self.__tabContextMenu.addSeparator()
1199 self.__tabContextMenu.addAction(UI.PixmapCache.getIcon("printPreview.png"), 1212 self.__tabContextMenu.addAction(UI.PixmapCache.getIcon("printPreview.png"),
1200 self.trUtf8('Print Preview'), self.__tabContextMenuPrintPreview) 1213 self.trUtf8('Print Preview'), self.__tabContextMenuPrintPreview)
1201 self.__tabContextMenu.addAction(UI.PixmapCache.getIcon("print.png"), 1214 self.__tabContextMenu.addAction(UI.PixmapCache.getIcon("print.png"),
1202 self.trUtf8('Print'), self.__tabContextMenuPrint) 1215 self.trUtf8('Print'), self.__tabContextMenuPrint)
1216 self.__tabContextMenu.addAction(UI.PixmapCache.getIcon("printPdf.png"),
1217 self.trUtf8('Print as PDF'), self.__tabContextMenuPrintPdf)
1203 self.__tabContextMenu.addSeparator() 1218 self.__tabContextMenu.addSeparator()
1204 self.__tabContextMenu.addAction(self.bookmarksAllTabsAct) 1219 self.__tabContextMenu.addAction(self.bookmarksAllTabsAct)
1205 1220
1206 def __initToolbars(self): 1221 def __initToolbars(self):
1207 """ 1222 """
1217 filetb.addSeparator() 1232 filetb.addSeparator()
1218 filetb.addAction(self.saveAsAct) 1233 filetb.addAction(self.saveAsAct)
1219 filetb.addSeparator() 1234 filetb.addSeparator()
1220 filetb.addAction(self.printPreviewAct) 1235 filetb.addAction(self.printPreviewAct)
1221 filetb.addAction(self.printAct) 1236 filetb.addAction(self.printAct)
1237 filetb.addAction(self.printPdfAct)
1222 filetb.addSeparator() 1238 filetb.addSeparator()
1223 filetb.addAction(self.closeAct) 1239 filetb.addAction(self.closeAct)
1224 filetb.addAction(self.exitAct) 1240 filetb.addAction(self.exitAct)
1225 1241
1226 edittb = self.addToolBar(self.trUtf8("Edit")) 1242 edittb = self.addToolBar(self.trUtf8("Edit"))
1605 if Preferences.getPrinter("FirstPageFirst"): 1621 if Preferences.getPrinter("FirstPageFirst"):
1606 printer.setPageOrder(QPrinter.FirstPageFirst) 1622 printer.setPageOrder(QPrinter.FirstPageFirst)
1607 else: 1623 else:
1608 printer.setPageOrder(QPrinter.LastPageFirst) 1624 printer.setPageOrder(QPrinter.LastPageFirst)
1609 printer.setPrinterName(Preferences.getPrinter("PrinterName")) 1625 printer.setPrinterName(Preferences.getPrinter("PrinterName"))
1626
1627 printDialog = QPrintDialog(printer, self)
1628 if printDialog.exec_() == QDialog.Accepted:
1629 try:
1630 frame.print_(printer)
1631 except AttributeError:
1632 QMessageBox.critical(self,
1633 self.trUtf8("Eric Web Browser"),
1634 self.trUtf8("""<p>Printing is not available due to a bug in PyQt4."""
1635 """Please upgrade.</p>"""))
1636 return
1637
1638 def __printFilePdf(self, browser = None):
1639 """
1640 Private slot called to print the displayed file to PDF.
1641
1642 @param browser reference to the browser to be printed (HelpBrowserWV)
1643 """
1644 if browser is None:
1645 browser = self.currentBrowser()
1646
1647 self.__printPdfRequested(browser.page().mainFrame())
1648
1649 def __printPdfRequested(self, frame):
1650 """
1651 Private slot to handle a print to PDF request.
1652
1653 @param frame reference to the frame to be printed (QWebFrame)
1654 """
1655 printer = QPrinter(mode = QPrinter.HighResolution)
1656 if Preferences.getPrinter("ColorMode"):
1657 printer.setColorMode(QPrinter.Color)
1658 else:
1659 printer.setColorMode(QPrinter.GrayScale)
1660 printer.setPrinterName(Preferences.getPrinter("PrinterName"))
1661 printer.setOutputFormat(QPrinter.PdfFormat)
1662 name = frame.url().path().rsplit('/', 1)[-1]
1663 if name:
1664 name = name.rsplit('.', 1)[0]
1665 name += '.pdf'
1666 printer.setOutputFileName(name)
1610 1667
1611 printDialog = QPrintDialog(printer, self) 1668 printDialog = QPrintDialog(printer, self)
1612 if printDialog.exec_() == QDialog.Accepted: 1669 if printDialog.exec_() == QDialog.Accepted:
1613 try: 1670 try:
1614 frame.print_(printer) 1671 frame.print_(printer)
2082 self.pathCombo.clearEditText() 2139 self.pathCombo.clearEditText()
2083 2140
2084 self.__setPathComboBackground() 2141 self.__setPathComboBackground()
2085 2142
2086 self.printAct.setEnabled(hasattr(cb, 'print_')) 2143 self.printAct.setEnabled(hasattr(cb, 'print_'))
2144 self.printPdfAct.setEnabled(hasattr(cb, 'print_'))
2087 if self.printPreviewAct: 2145 if self.printPreviewAct:
2088 self.printPreviewAct.setEnabled(hasattr(cb, 'print_')) 2146 self.printPreviewAct.setEnabled(hasattr(cb, 'print_'))
2089 2147
2090 self.iconChanged(cb.icon()) 2148 self.iconChanged(cb.icon())
2091 2149
2147 """ 2205 """
2148 Private method to print the selected tab. 2206 Private method to print the selected tab.
2149 """ 2207 """
2150 browser = self.tabWidget.widget(self.tabContextMenuIndex) 2208 browser = self.tabWidget.widget(self.tabContextMenuIndex)
2151 self.__printFile(browser) 2209 self.__printFile(browser)
2210
2211 def __tabContextMenuPrintPdf(self):
2212 """
2213 Private method to print the selected tab.
2214 """
2215 browser = self.tabWidget.widget(self.tabContextMenuIndex)
2216 self.__printFilePdf(browser)
2152 2217
2153 def __tabContextMenuPrintPreview(self): 2218 def __tabContextMenuPrintPreview(self):
2154 """ 2219 """
2155 Private method to show a print preview of the selected tab. 2220 Private method to show a print preview of the selected tab.
2156 """ 2221 """

eric ide

mercurial