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 """ |