WebBrowser/WebBrowserWindow.py

changeset 6155
ae44225e7e7c
parent 6151
29564aad2f97
child 6187
2cc7e3629784
equal deleted inserted replaced
6154:11ea3d31937a 6155:ae44225e7e7c
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 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, QLineEdit, QApplication, \
25 QWhatsThis, QDialog, QHBoxLayout, QProgressBar, QInputDialog, QAction 25 QWhatsThis, QDialog, QHBoxLayout, QProgressBar, QInputDialog, QAction
26 from PyQt5.QtWebEngineWidgets import QWebEngineSettings, QWebEnginePage, \ 26 from PyQt5.QtWebEngineWidgets import QWebEngineSettings, QWebEnginePage, \
27 QWebEngineProfile, QWebEngineScript 27 QWebEngineProfile, QWebEngineScript
28 try: 28 try:
29 from PyQt5.QtHelp import QHelpEngine, QHelpEngineCore, QHelpSearchQuery 29 from PyQt5.QtHelp import QHelpEngine, QHelpEngineCore, QHelpSearchQuery
769 self.saveAsAct.triggered.connect(self.__savePageAs) 769 self.saveAsAct.triggered.connect(self.__savePageAs)
770 self.__actions.append(self.saveAsAct) 770 self.__actions.append(self.saveAsAct)
771 else: 771 else:
772 self.saveAsAct = None 772 self.saveAsAct = None
773 773
774 self.savePageScreenAct = E5Action( 774 self.saveVisiblePageScreenAct = E5Action(
775 self.tr('Save Page Screen'), 775 self.tr('Save Page Screen'),
776 UI.PixmapCache.getIcon("fileSavePixmap.png"), 776 UI.PixmapCache.getIcon("fileSavePixmap.png"),
777 self.tr('Save Page Screen...'), 777 self.tr('Save Page Screen...'),
778 0, 0, self, 'webbrowser_file_save_page_screen')
779 self.savePageScreenAct.setStatusTip(
780 self.tr('Save the current page as a screen shot'))
781 self.savePageScreenAct.setWhatsThis(self.tr(
782 """<b>Save Page Screen...</b>"""
783 """<p>Saves the current page as a screen shot.</p>"""
784 ))
785 if not self.__initShortcutsOnly:
786 self.savePageScreenAct.triggered.connect(self.__savePageScreen)
787 self.__actions.append(self.savePageScreenAct)
788
789 self.saveVisiblePageScreenAct = E5Action(
790 self.tr('Save Visible Page Screen'),
791 UI.PixmapCache.getIcon("fileSaveVisiblePixmap.png"),
792 self.tr('Save Visible Page Screen...'),
793 0, 0, self, 'webbrowser_file_save_visible_page_screen') 778 0, 0, self, 'webbrowser_file_save_visible_page_screen')
794 self.saveVisiblePageScreenAct.setStatusTip( 779 self.saveVisiblePageScreenAct.setStatusTip(
795 self.tr('Save the visible part of the current page as a' 780 self.tr('Save the visible part of the current page as a'
796 ' screen shot')) 781 ' screen shot'))
797 self.saveVisiblePageScreenAct.setWhatsThis(self.tr( 782 self.saveVisiblePageScreenAct.setWhatsThis(self.tr(
798 """<b>Save Visible Page Screen...</b>""" 783 """<b>Save Page Screen...</b>"""
799 """<p>Saves the visible part of the current page as a""" 784 """<p>Saves the visible part of the current page as a"""
800 """ screen shot.</p>""" 785 """ screen shot.</p>"""
801 )) 786 ))
802 if not self.__initShortcutsOnly: 787 if not self.__initShortcutsOnly:
803 self.saveVisiblePageScreenAct.triggered.connect( 788 self.saveVisiblePageScreenAct.triggered.connect(
2006 sessionsMenu)) 1991 sessionsMenu))
2007 menu.addAction(self.showSessionsManagerAct) 1992 menu.addAction(self.showSessionsManagerAct)
2008 menu.addSeparator() 1993 menu.addSeparator()
2009 if self.saveAsAct is not None: 1994 if self.saveAsAct is not None:
2010 menu.addAction(self.saveAsAct) 1995 menu.addAction(self.saveAsAct)
2011 menu.addAction(self.savePageScreenAct)
2012 menu.addAction(self.saveVisiblePageScreenAct) 1996 menu.addAction(self.saveVisiblePageScreenAct)
2013 menu.addSeparator() 1997 menu.addSeparator()
2014 if self.printPreviewAct: 1998 if self.printPreviewAct:
2015 menu.addAction(self.printPreviewAct) 1999 menu.addAction(self.printPreviewAct)
2016 if self.printAct: 2000 if self.printAct:
2196 self.__superMenu.addSeparator() 2180 self.__superMenu.addSeparator()
2197 2181
2198 menu = self.__superMenu.addMenu(self.tr("Save")) 2182 menu = self.__superMenu.addMenu(self.tr("Save"))
2199 if self.saveAsAct: 2183 if self.saveAsAct:
2200 menu.addAction(self.saveAsAct) 2184 menu.addAction(self.saveAsAct)
2201 menu.addAction(self.savePageScreenAct)
2202 menu.addAction(self.saveVisiblePageScreenAct) 2185 menu.addAction(self.saveVisiblePageScreenAct)
2203 2186
2204 if self.printPreviewAct or self.printAct or self.printPdfAct: 2187 if self.printPreviewAct or self.printAct or self.printPdfAct:
2205 menu = self.__superMenu.addMenu(self.tr("Print")) 2188 menu = self.__superMenu.addMenu(self.tr("Print"))
2206 if self.printPreviewAct: 2189 if self.printPreviewAct:
2322 filetb.addAction(self.openAct) 2305 filetb.addAction(self.openAct)
2323 filetb.addAction(self.openTabAct) 2306 filetb.addAction(self.openTabAct)
2324 filetb.addSeparator() 2307 filetb.addSeparator()
2325 if self.saveAsAct is not None: 2308 if self.saveAsAct is not None:
2326 filetb.addAction(self.saveAsAct) 2309 filetb.addAction(self.saveAsAct)
2327 filetb.addAction(self.savePageScreenAct) 2310 filetb.addAction(self.saveVisiblePageScreenAct)
2328 filetb.addSeparator() 2311 filetb.addSeparator()
2329 if self.printPreviewAct: 2312 if self.printPreviewAct:
2330 filetb.addAction(self.printPreviewAct) 2313 filetb.addAction(self.printPreviewAct)
2331 if self.printAct: 2314 if self.printAct:
2332 filetb.addAction(self.printAct) 2315 filetb.addAction(self.printAct)
2335 if self.printPreviewAct or self.printAct or self.printPdfAct: 2318 if self.printPreviewAct or self.printAct or self.printPdfAct:
2336 filetb.addSeparator() 2319 filetb.addSeparator()
2337 filetb.addAction(self.closeAct) 2320 filetb.addAction(self.closeAct)
2338 filetb.addAction(self.exitAct) 2321 filetb.addAction(self.exitAct)
2339 self.__toolbars["file"] = (filetb.windowTitle(), filetb) 2322 self.__toolbars["file"] = (filetb.windowTitle(), filetb)
2340
2341 self.savePageScreenMenu = QMenu(self)
2342 self.savePageScreenMenu.addAction(self.savePageScreenAct)
2343 self.savePageScreenMenu.addAction(self.saveVisiblePageScreenAct)
2344 savePageScreenButton = filetb.widgetForAction(self.savePageScreenAct)
2345 savePageScreenButton.setMenu(self.savePageScreenMenu)
2346 savePageScreenButton.setPopupMode(QToolButton.MenuButtonPopup)
2347 2323
2348 edittb = self.addToolBar(self.tr("Edit")) 2324 edittb = self.addToolBar(self.tr("Edit"))
2349 edittb.setObjectName("EditToolBar") 2325 edittb.setObjectName("EditToolBar")
2350 edittb.setIconSize(UI.Config.ToolBarIconSize) 2326 edittb.setIconSize(UI.Config.ToolBarIconSize)
2351 edittb.addAction(self.undoAct) 2327 edittb.addAction(self.undoAct)
2603 browser = self.currentBrowser() 2579 browser = self.currentBrowser()
2604 if browser is not None: 2580 if browser is not None:
2605 browser.saveAs() 2581 browser.saveAs()
2606 2582
2607 @pyqtSlot() 2583 @pyqtSlot()
2608 def __savePageScreen(self, visibleOnly=False):
2609 """
2610 Private slot to save the current page as a screen shot.
2611
2612 @param visibleOnly flag indicating to just save the visible part
2613 of the page (boolean)
2614 """
2615 from .PageScreenDialog import PageScreenDialog
2616 self.__pageScreen = PageScreenDialog(
2617 self.currentBrowser(), visibleOnly=visibleOnly)
2618 self.__pageScreen.show()
2619
2620 @pyqtSlot()
2621 def __saveVisiblePageScreen(self): 2584 def __saveVisiblePageScreen(self):
2622 """ 2585 """
2623 Private slot to save the visible part of the current page as a screen 2586 Private slot to save the visible part of the current page as a screen
2624 shot. 2587 shot.
2625 """ 2588 """
2626 self.__savePageScreen(visibleOnly=True) 2589 from .PageScreenDialog import PageScreenDialog
2590 self.__pageScreen = PageScreenDialog(self.currentBrowser())
2591 self.__pageScreen.show()
2627 2592
2628 def __about(self): 2593 def __about(self):
2629 """ 2594 """
2630 Private slot to show the about information. 2595 Private slot to show the about information.
2631 """ 2596 """

eric ide

mercurial