--- 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): ## """