WebBrowser/WebBrowserView.py

branch
QtWebEngine
changeset 4782
4ad656e4ebec
parent 4781
15d416f1eca5
child 4783
7de17766a5df
equal deleted inserted replaced
4781:15d416f1eca5 4782:4ad656e4ebec
150 150
151 self.__inspector = None 151 self.__inspector = None
152 WebInspector.registerView(self) 152 WebInspector.registerView(self)
153 153
154 self.grabGesture(Qt.PinchGesture) 154 self.grabGesture(Qt.PinchGesture)
155
156 def __del__(self):
157 """
158 Special method doing some cleanup stuff.
159 """
160 WebInspector.unregisterView(self)
161 155
162 ## def __addExternalBinding(self, frame=None): 156 ## def __addExternalBinding(self, frame=None):
163 ## """ 157 ## """
164 ## Private slot to add javascript bindings for adding search providers. 158 ## Private slot to add javascript bindings for adding search providers.
165 ## 159 ##
599 593
600 # TODO: AdBlock 594 # TODO: AdBlock
601 ## if not hitTest.isContentEditable() and not hitTest.isContentSelected(): 595 ## if not hitTest.isContentEditable() and not hitTest.isContentSelected():
602 ## self.__menu.addAction(self.__mw.adBlockIcon().menuAction()) 596 ## self.__menu.addAction(self.__mw.adBlockIcon().menuAction())
603 597
604 self.__menu.addSeparator() 598 if Preferences.getWebBrowser("WebInspectorEnabled"):
605 self.__menu.addAction( 599 self.__menu.addSeparator()
606 UI.PixmapCache.getIcon("webInspector.png"), 600 self.__menu.addAction(
607 self.tr("Inspect Element..."), self.__webInspector) 601 UI.PixmapCache.getIcon("webInspector.png"),
602 self.tr("Inspect Element..."), self.__webInspector)
608 603
609 if not self.__menu.isEmpty(): 604 if not self.__menu.isEmpty():
610 pos = evt.globalPos() 605 pos = evt.globalPos()
611 self.__menu.popup(QPoint(pos.x(), pos.y() + 1)) 606 self.__menu.popup(QPoint(pos.x(), pos.y() + 1))
612 607
838 menu.addAction( 833 menu.addAction(
839 UI.PixmapCache.getIcon("wikipedia.png"), 834 UI.PixmapCache.getIcon("wikipedia.png"),
840 self.tr("Dictionary"), self.__openLinkInNewTab)\ 835 self.tr("Dictionary"), self.__openLinkInNewTab)\
841 .setData(wiktionaryUrl) 836 .setData(wiktionaryUrl)
842 menu.addSeparator() 837 menu.addSeparator()
843 ## QString langCode = mApp->currentLanguage().left(2).toUtf8();
844 ## QUrl googleTranslateUrl = QUrl(QString("https://translate.google.com/#auto/%1/%2").arg(langCode, selectedText));
845 ## Action* gtwact = new Action(QIcon(":icons/sites/translate.png"), tr("Google Translate"));
846 ## gtwact->setData(googleTranslateUrl);
847 ## connect(gtwact, SIGNAL(triggered()), this, SLOT(openUrlInSelectedTab()));
848 ## connect(gtwact, SIGNAL(ctrlTriggered()), this, SLOT(openUrlInBackgroundTab()));
849 ## menu->addAction(gtwact);
850 ##
851 ## Action* dictact = new Action(QIcon::fromTheme("accessories-dictionary"), tr("Dictionary"));
852 ## dictact->setData(QUrl("http://" + (!langCode.isEmpty() ? langCode + "." : langCode) + "wiktionary.org/wiki/Special:Search?search=" + selectedText));
853 ## connect(dictact, SIGNAL(triggered()), this, SLOT(openUrlInSelectedTab()));
854 ## connect(dictact, SIGNAL(ctrlTriggered()), this, SLOT(openUrlInBackgroundTab()));
855 ## menu->addAction(dictact);
856 838
857 guessedUrl = QUrl.fromUserInput(self.selectedText().strip()) 839 guessedUrl = QUrl.fromUserInput(self.selectedText().strip())
858 if self.__isUrlValid(guessedUrl): 840 if self.__isUrlValid(guessedUrl):
859 menu.addAction( 841 menu.addAction(
860 self.tr("Go to web address"), 842 self.tr("Go to web address"),
908 menu.addSeparator() 890 menu.addSeparator()
909 menu.addAction(self.__mw.pageSourceAct) 891 menu.addAction(self.__mw.pageSourceAct)
910 # TODO: Site Info 892 # TODO: Site Info
911 ## menu.addSeparator() 893 ## menu.addSeparator()
912 ## menu.addAction(self.__mw.siteInfoAct) 894 ## menu.addAction(self.__mw.siteInfoAct)
913 ## if (url().scheme() == QLatin1String("http") || url().scheme() == QLatin1String("https")) { 895 if self.url().scheme() in ["http", "https"]:
914 ## const QUrl w3url = QUrl::fromEncoded("http://validator.w3.org/check?uri=" + QUrl::toPercentEncoding(url().toEncoded())); 896 menu.addSeparator()
915 ## menu->addAction(QIcon(":icons/sites/w3.png"), tr("Validate page"), this, SLOT(openUrlInSelectedTab()))->setData(w3url); 897
916 ## 898 w3url = QUrl.fromEncoded(
917 ## QByteArray langCode = mApp->currentLanguage().left(2).toUtf8(); 899 b"http://validator.w3.org/check?uri=" +
918 ## const QUrl gturl = QUrl::fromEncoded("http://translate.google.com/translate?sl=auto&tl=" + langCode + "&u=" + QUrl::toPercentEncoding(url().toEncoded())); 900 QUrl.toPercentEncoding(bytes(self.url().toEncoded()).decode()))
919 ## menu->addAction(QIcon(":icons/sites/translate.png"), tr("Translate page"), this, SLOT(openUrlInSelectedTab()))->setData(gturl); 901 menu.addAction(
920 ## } 902 UI.PixmapCache.getIcon("w3.png"),
903 self.tr("Validate Page"), self.__openLinkInNewTab)\
904 .setData(w3url)
905
906 from .WebBrowserLanguagesDialog import WebBrowserLanguagesDialog
907 languages = Preferences.toList(
908 Preferences.Prefs.settings.value(
909 "WebBrowser/AcceptLanguages",
910 WebBrowserLanguagesDialog.defaultAcceptLanguages()))
911 if languages:
912 language = languages[0]
913 langCode = language.split("[")[1][:2]
914 googleTranslatorUrl = QUrl.fromEncoded(
915 b"http://translate.google.com/translate?sl=auto&tl=" +
916 langCode.encode() +
917 b"&u=" +
918 QUrl.toPercentEncoding(
919 bytes(self.url().toEncoded()).decode()))
920 menu.addAction(
921 UI.PixmapCache.getIcon("translate.png"),
922 self.tr("Google Translate"), self.__openLinkInNewTab)\
923 .setData(googleTranslatorUrl)
921 924
922 def __checkForForm(self, act, pos): 925 def __checkForForm(self, act, pos):
923 """ 926 """
924 Private method to check the given position for an open search form. 927 Private method to check the given position for an open search form.
925 928
1119 if self.__inspector is None: 1122 if self.__inspector is None:
1120 from .WebInspector import WebInspector 1123 from .WebInspector import WebInspector
1121 self.__inspector = WebInspector() 1124 self.__inspector = WebInspector()
1122 self.__inspector.setView(self, True) 1125 self.__inspector.setView(self, True)
1123 self.__inspector.show() 1126 self.__inspector.show()
1124 elif self.__inspector.isVisible():
1125 self.__inspector.hide()
1126 else: 1127 else:
1127 self.__inspector.show() 1128 self.closeWebInspector()
1128 1129
1129 def closeWebInspector(self): 1130 def closeWebInspector(self):
1130 """ 1131 """
1131 Public slot to close the web inspector. 1132 Public slot to close the web inspector.
1132 """ 1133 """
1133 if self.__inspector is not None: 1134 if self.__inspector is not None:
1134 if self.__inspector.isVisible(): 1135 if self.__inspector.isVisible():
1135 self.__inspector.hide() 1136 self.__inspector.hide()
1137 WebInspector.unregisterView(self.__inspector)
1136 self.__inspector.deleteLater() 1138 self.__inspector.deleteLater()
1137 self.__inspector = None 1139 self.__inspector = None
1138 1140
1139 def addBookmark(self): 1141 def addBookmark(self):
1140 """ 1142 """
1386 self._keyReleaseEvent(evt) 1388 self._keyReleaseEvent(evt)
1387 elif evt.type() == QEvent.MouseButtonPress: 1389 elif evt.type() == QEvent.MouseButtonPress:
1388 self._mousePressEvent(evt) 1390 self._mousePressEvent(evt)
1389 elif evt.type() == QEvent.MouseButtonRelease: 1391 elif evt.type() == QEvent.MouseButtonRelease:
1390 self._mouseReleaseEvent(evt) 1392 self._mouseReleaseEvent(evt)
1391 ## elif evt.type() == QEvent.MouseMove:
1392 ## self.__mouseMoveEvent(evt)
1393 elif evt.type() == QEvent.Wheel: 1393 elif evt.type() == QEvent.Wheel:
1394 self._wheelEvent(evt) 1394 self._wheelEvent(evt)
1395 elif evt.type() == QEvent.Gesture: 1395 elif evt.type() == QEvent.Gesture:
1396 self._gestureEvent(evt) 1396 self._gestureEvent(evt)
1397 ret = evt.isAccepted() 1397 ret = evt.isAccepted()
1401 # block already handled events 1401 # block already handled events
1402 if obj is self: 1402 if obj is self:
1403 if evt.type() in [QEvent.KeyPress, QEvent.KeyRelease, 1403 if evt.type() in [QEvent.KeyPress, QEvent.KeyRelease,
1404 QEvent.MouseButtonPress, 1404 QEvent.MouseButtonPress,
1405 QEvent.MouseButtonRelease, 1405 QEvent.MouseButtonRelease,
1406 ## QEvent.MouseMove,
1407 QEvent.Wheel, QEvent.Gesture]: 1406 QEvent.Wheel, QEvent.Gesture]:
1408 return True 1407 return True
1409 1408
1410 return super(WebBrowserView, self).eventFilter(obj, evt) 1409 return super(WebBrowserView, self).eventFilter(obj, evt)
1411 1410
2117 ## data.contains("<br") or \ 2116 ## data.contains("<br") or \
2118 ## data.contains("<p"): 2117 ## data.contains("<p"):
2119 ## return True 2118 ## return True
2120 ## 2119 ##
2121 ## return False 2120 ## return False
2122
2123 ######################
2124
2125 def renderWidgetPixmap(self):
2126 return self.__rwhvqt.grabFramebuffer()
2127
2128 def repaintRenderWidget(self):
2129 self.__rwhvqt.repaint()

eric ide

mercurial