WebBrowser/WebBrowserView.py

branch
QtWebEngine
changeset 4885
362360f9a979
parent 4884
6983af705a7f
child 4886
b56735d36159
diff -r 6983af705a7f -r 362360f9a979 WebBrowser/WebBrowserView.py
--- a/WebBrowser/WebBrowserView.py	Sun Mar 20 14:09:05 2016 +0100
+++ b/WebBrowser/WebBrowserView.py	Sun Mar 20 15:17:31 2016 +0100
@@ -541,6 +541,7 @@
         self.__createContextMenu(self.__menu, hitTest)
         
         if not hitTest.isContentEditable() and not hitTest.isContentSelected():
+            self.__menu.addSeparator()
             self.__menu.addAction(self.__mw.adBlockIcon().menuAction())
         
         if Preferences.getWebBrowser("WebInspectorEnabled"):
@@ -620,10 +621,9 @@
             self.tr("Open Link in New Private Window"),
             self.__openLinkInNewPrivateWindow).setData(hitTest.linkUrl())
         menu.addSeparator()
-        # TODO: Qt 5.6
-##        menu.addAction(
-##            UI.PixmapCache.getIcon("download.png"),
-##            self.tr("Save Lin&k"), self.__downloadLink)
+        menu.addAction(
+            UI.PixmapCache.getIcon("download.png"),
+            self.tr("Save Lin&k"), self.__downloadLink)
         menu.addAction(
             UI.PixmapCache.getIcon("bookmark22.png"),
             self.tr("Bookmark this Link"), self.__bookmarkLink)\
@@ -661,13 +661,11 @@
             self.tr("Open Image in New Tab"),
             self.__openLinkInNewTab).setData(hitTest.imageUrl())
         menu.addSeparator()
-        # TODO: Save Image
-##        menu.addAction(
-##            UI.PixmapCache.getIcon("download.png"),
-##            self.tr("Save Image"), self.__downloadImage)
-        # TODO: Copy Image
-##        menu.addAction(
-##            self.tr("Copy Image to Clipboard"), self.__copyImage)
+        menu.addAction(
+            UI.PixmapCache.getIcon("download.png"),
+            self.tr("Save Image"), self.__downloadImage)
+        menu.addAction(
+            self.tr("Copy Image to Clipboard"), self.__copyImage)
         menu.addAction(
             UI.PixmapCache.getIcon("editCopy.png"),
             self.tr("Copy Image Location to Clipboard"),
@@ -727,10 +725,9 @@
             UI.PixmapCache.getIcon("mailSend.png"),
             self.tr("Send Media Address"), self.__sendLink)\
             .setData(hitTest.mediaUrl())
-        # TODO: Qt 5.6
-##        menu.addAction(
-##            UI.PixmapCache.getIcon("download.png"),
-##            self.tr("Save Media"), self.__downloadMedia)
+        menu.addAction(
+            UI.PixmapCache.getIcon("download.png"),
+            self.tr("Save Media"), self.__downloadMedia)
     
     def __createSelectedTextContextMenu(self, menu, hitTest):
         """
@@ -815,6 +812,24 @@
 ##        menu.addAction(self.__mw.saveAsAct)
 ##        menu.addSeparator()
         
+        # TODO: Speed Dial
+        if self.url().toString() == "eric:speeddial":
+            # special menu for the spedd dial page
+            menu.addAction(self.__mw.backAct)
+            menu.addAction(self.__mw.forwardAct)
+            menu.addSeparator()
+            menu.addAction(
+                UI.PixmapCache.getIcon("plus.png"),
+                self.tr("Add New Page"), self.__addSpeedDial)
+            menu.addAction(
+                UI.PixmapCache.getIcon("preferences-general.png"),
+                self.tr("Configure Speed Dial"), self.__configureSpeedDial)
+            menu.addSeparator()
+            menu.addAction(
+                UI.PixmapCache.getIcon("reload.png"),
+                self.tr("Reload All Dials"), self.__reloadAllSpeedDials)
+            return
+        
         menu.addAction(
             UI.PixmapCache.getIcon("bookmark22.png"),
             self.tr("Bookmark this Page"), self.addBookmark)
@@ -1006,24 +1021,23 @@
             data = data.toString()
         QApplication.clipboard().setText(data)
     
-    # TODO: Qt 5.6
-##    def __downloadLink(self):
-##        """
-##        Private slot to download a link and save it to disk.
-##        """
-##        self.triggerPageAction(QWebEnginePage.DownloadLinkToDisk)
-##    
-##    def __downloadImage(self):
-##        """
-##        Private slot to download an image and save it to disk.
-##        """
-##        self.triggerPageAction(QWebEnginePage.DownloadImageToDisk)
-##    
-##    def __copyImage(self):
-##        """
-##        Private slot to copy an image to the clipboard.
-##        """
-##        self.triggerPageAction(QWebEnginePage.CopyImageToClipboard)
+    def __downloadLink(self):
+        """
+        Private slot to download a link and save it to disk.
+        """
+        self.triggerPageAction(QWebEnginePage.DownloadLinkToDisk)
+    
+    def __downloadImage(self):
+        """
+        Private slot to download an image and save it to disk.
+        """
+        self.triggerPageAction(QWebEnginePage.DownloadImageToDisk)
+    
+    def __copyImage(self):
+        """
+        Private slot to copy an image to the clipboard.
+        """
+        self.triggerPageAction(QWebEnginePage.CopyImageToClipboard)
     
     def __blockImage(self):
         """
@@ -1035,30 +1049,31 @@
         dlg = WebBrowserWindow.adBlockManager().showDialog()
         dlg.addCustomRule(url)
     
-    # TODO: Qt 5.6
-##    def __downloadMedia(self):
-##        """
-##        Private slot to download a media and save it to disk.
-##        """
-##        self.triggerPageAction(QWebEnginePage.DownloadMediaToDisk)
+    def __downloadMedia(self):
+        """
+        Private slot to download a media and save it to disk.
+        """
+        self.triggerPageAction(QWebEnginePage.DownloadMediaToDisk)
     
     # TODO: Qt 5.6: do this with triggerPageAction()
     def __pauseMedia(self):
         """
         Private slot to pause or play the selected media.
         """
-        from .Tools import Scripts
-        script = Scripts.toggleMediaPause(self.__clickedPos)
-        self.page().runJavaScript(script)
+        self.triggerPageAction(QWebEnginePage.ToggleMediaPlayPause)
+##        from .Tools import Scripts
+##        script = Scripts.toggleMediaPause(self.__clickedPos)
+##        self.page().runJavaScript(script)
     
     # TODO: Qt 5.6: do this with triggerPageAction()
     def __muteMedia(self):
         """
         Private slot to (un)mute the selected media.
         """
-        from .Tools import Scripts
-        script = Scripts.toggleMediaMute(self.__clickedPos)
-        self.page().runJavaScript(script)
+        self.triggerPageAction(QWebEnginePage.ToggleMediaMute)
+##        from .Tools import Scripts
+##        script = Scripts.toggleMediaMute(self.__clickedPos)
+##        self.page().runJavaScript(script)
     
     def __virusTotal(self):
         """
@@ -1956,167 +1971,26 @@
             self.__mw.showNormal()
     
     ###########################################################################
-    ## Clicked Frame slots
+    ## Speed Dial slots below
     ###########################################################################
     
-##    def __loadClickedFrame(self):
-##        """
-##        Private slot to load the selected frame only.
-##        """
-##        self.setSource(self.__clickedFrame.url())
-##    
-##    def __printClickedFrame(self):
-##        """
-##        Private slot to print the selected frame.
-##        """
-##        printer = QPrinter(mode=QPrinter.HighResolution)
-##        if Preferences.getPrinter("ColorMode"):
-##            printer.setColorMode(QPrinter.Color)
-##        else:
-##            printer.setColorMode(QPrinter.GrayScale)
-##        if Preferences.getPrinter("FirstPageFirst"):
-##            printer.setPageOrder(QPrinter.FirstPageFirst)
-##        else:
-##            printer.setPageOrder(QPrinter.LastPageFirst)
-##        printer.setPageMargins(
-##            Preferences.getPrinter("LeftMargin") * 10,
-##            Preferences.getPrinter("TopMargin") * 10,
-##            Preferences.getPrinter("RightMargin") * 10,
-##            Preferences.getPrinter("BottomMargin") * 10,
-##            QPrinter.Millimeter
-##        )
-##        printerName = Preferences.getPrinter("PrinterName")
-##        if printerName:
-##            printer.setPrinterName(printerName)
-##        
-##        printDialog = QPrintDialog(printer, self)
-##        if printDialog.exec_() == QDialog.Accepted:
-##            try:
-##                self.__clickedFrame.print_(printer)
-##            except AttributeError:
-##                E5MessageBox.critical(
-##                    self,
-##                    self.tr("eric6 Web Browser"),
-##                    self.tr(
-##                        """<p>Printing is not available due to a bug in"""
-##                        """ PyQt5. Please upgrade.</p>"""))
-##    
-##    def __printPreviewClickedFrame(self):
-##        """
-##        Private slot to show a print preview of the clicked frame.
-##        """
-##        from PyQt5.QtPrintSupport import QPrintPreviewDialog
-##        
-##        printer = QPrinter(mode=QPrinter.HighResolution)
-##        if Preferences.getPrinter("ColorMode"):
-##            printer.setColorMode(QPrinter.Color)
-##        else:
-##            printer.setColorMode(QPrinter.GrayScale)
-##        if Preferences.getPrinter("FirstPageFirst"):
-##            printer.setPageOrder(QPrinter.FirstPageFirst)
-##        else:
-##            printer.setPageOrder(QPrinter.LastPageFirst)
-##        printer.setPageMargins(
-##            Preferences.getPrinter("LeftMargin") * 10,
-##            Preferences.getPrinter("TopMargin") * 10,
-##            Preferences.getPrinter("RightMargin") * 10,
-##            Preferences.getPrinter("BottomMargin") * 10,
-##            QPrinter.Millimeter
-##        )
-##        printerName = Preferences.getPrinter("PrinterName")
-##        if printerName:
-##            printer.setPrinterName(printerName)
-##        
-##        preview = QPrintPreviewDialog(printer, self)
-##        preview.paintRequested.connect(self.__generatePrintPreviewClickedFrame)
-##        preview.exec_()
-##    
-##    def __generatePrintPreviewClickedFrame(self, printer):
-##        """
-##        Private slot to generate a print preview of the clicked frame.
-##        
-##        @param printer reference to the printer object (QPrinter)
-##        """
-##        try:
-##            self.__clickedFrame.print_(printer)
-##        except AttributeError:
-##            E5MessageBox.critical(
-##                self,
-##                self.tr("eric6 Web Browser"),
-##                self.tr(
-##                    """<p>Printing is not available due to a bug in PyQt5."""
-##                    """Please upgrade.</p>"""))
-##            return
-##    
-##    def __printPdfClickedFrame(self):
-##        """
-##        Private slot to print the selected frame to PDF.
-##        """
-##        printer = QPrinter(mode=QPrinter.HighResolution)
-##        if Preferences.getPrinter("ColorMode"):
-##            printer.setColorMode(QPrinter.Color)
-##        else:
-##            printer.setColorMode(QPrinter.GrayScale)
-##        printerName = Preferences.getPrinter("PrinterName")
-##        if printerName:
-##            printer.setPrinterName(printerName)
-##        printer.setOutputFormat(QPrinter.PdfFormat)
-##        name = self.__clickedFrame.url().path().rsplit('/', 1)[-1]
-##        if name:
-##            name = name.rsplit('.', 1)[0]
-##            name += '.pdf'
-##            printer.setOutputFileName(name)
-##        
-##        printDialog = QPrintDialog(printer, self)
-##        if printDialog.exec_() == QDialog.Accepted:
-##            try:
-##                self.__clickedFrame.print_(printer)
-##            except AttributeError:
-##                E5MessageBox.critical(
-##                    self,
-##                    self.tr("eric6 Web Browser"),
-##                    self.tr(
-##                        """<p>Printing is not available due to a bug in"""
-##                        """ PyQt5. Please upgrade.</p>"""))
-##                return
-##    
-##    def __zoomInClickedFrame(self):
-##        """
-##        Private slot to zoom into the clicked frame.
-##        """
-##        index = self.__levelForZoom(
-##            int(self.__clickedFrame.zoomFactor() * 100))
-##        if index < len(self.__zoomLevels) - 1:
-##            self.__clickedFrame.setZoomFactor(
-##                self.__zoomLevels[index + 1] / 100)
-##    
-##    def __zoomResetClickedFrame(self):
-##        """
-##        Private slot to reset the zoom factor of the clicked frame.
-##        """
-##        self.__clickedFrame.setZoomFactor(self.__currentZoom / 100)
-##    
-##    def __zoomOutClickedFrame(self):
-##        """
-##        Private slot to zoom out of the clicked frame.
-##        """
-##        index = self.__levelForZoom(
-##            int(self.__clickedFrame.zoomFactor() * 100))
-##        if index > 0:
-##            self.__clickedFrame.setZoomFactor(
-##                self.__zoomLevels[index - 1] / 100)
-##    
-##    def __showClickedFrameSource(self):
-##        """
-##        Private slot to show the source of the clicked frame.
-##        """
-##        from QScintilla.MiniEditor import MiniEditor
-##        src = self.__clickedFrame.toHtml()
-##        editor = MiniEditor(parent=self)
-##        editor.setText(src, "Html")
-##        editor.setLanguage("dummy.html")
-##        editor.show()
-
+    def __addSpeedDial(self):
+        """
+        Private slot to add a new speed dial.
+        """
+        self.__page.runJavaScript("addSpeedDial();")
+    
+    def __configureSpeedDial(self):
+        """
+        Private slot to configure the speed dial.
+        """
+        self.page().runJavaScript("configureSpeedDial();")
+    
+    def __reloadAllSpeedDials(self):
+        """
+        Private slot to reload all speed dials.
+        """
+        self.page().runJavaScript("reloadAll();")
 
 ##def contentSniff(data):
 ##    """

eric ide

mercurial