def __init__(self, parent, communicator =None, debug =False, **kwargs): """Creates a new instance of PyGlassWebView.""" QtWebKit.QWebView.__init__(self, parent) self._debug = debug self._mainWindow = None self._comm = communicator if self._comm: self._comm.webView = self self._webPage = PyGlassWebPage(self, view=self) self.setPage(self._webPage) settings = self._webPage.settings() settings.setAttribute(QtWebKit.QWebSettings.JavascriptCanAccessClipboard, True) settings.setAttribute(QtWebKit.QWebSettings.LocalContentCanAccessRemoteUrls, True) settings.setAttribute(QtWebKit.QWebSettings.LocalContentCanAccessFileUrls, True) self._transparent = ArgsUtils.get('transparent', True, kwargs) if self._transparent: p = self.palette() p.setBrush(QtGui.QPalette.Base, QtCore.Qt.transparent) self.setPalette(p) self.setAttribute(QtCore.Qt.WA_OpaquePaintEvent, False) if self._debug: self._webInspector = QtWebKit.QWebInspector() self._webInspector.setPage(self._webPage) settings.setAttribute(QtWebKit.QWebSettings.DeveloperExtrasEnabled, True) shortcut = QtGui.QShortcut(self) shortcut.setKey(QtGui.QKeySequence(QtCore.Qt.Key_F12)) shortcut.activated.connect(self._handleToggleInspector) self._webInspector.setVisible(False) self.loadFinished.connect(self._handleLoadFinished)
class PyGlassWebView(QtWebKit.QWebView): """A class for...""" #=================================================================================================== # C L A S S #___________________________________________________________________________________________________ __init__ def __init__(self, parent, communicator =None, debug =False, **kwargs): """Creates a new instance of PyGlassWebView.""" QtWebKit.QWebView.__init__(self, parent) self._debug = debug self._mainWindow = None self._comm = communicator if self._comm: self._comm.webView = self self._webPage = PyGlassWebPage(self, view=self) self.setPage(self._webPage) settings = self._webPage.settings() settings.setAttribute(QtWebKit.QWebSettings.JavascriptCanAccessClipboard, True) settings.setAttribute(QtWebKit.QWebSettings.LocalContentCanAccessRemoteUrls, True) settings.setAttribute(QtWebKit.QWebSettings.LocalContentCanAccessFileUrls, True) self._transparent = ArgsUtils.get('transparent', True, kwargs) if self._transparent: p = self.palette() p.setBrush(QtGui.QPalette.Base, QtCore.Qt.transparent) self.setPalette(p) self.setAttribute(QtCore.Qt.WA_OpaquePaintEvent, False) if self._debug: self._webInspector = QtWebKit.QWebInspector() self._webInspector.setPage(self._webPage) settings.setAttribute(QtWebKit.QWebSettings.DeveloperExtrasEnabled, True) shortcut = QtGui.QShortcut(self) shortcut.setKey(QtGui.QKeySequence(QtCore.Qt.Key_F12)) shortcut.activated.connect(self._handleToggleInspector) self._webInspector.setVisible(False) self.loadFinished.connect(self._handleLoadFinished) #=================================================================================================== # P U B L I C #___________________________________________________________________________________________________ GS: pluginsEnabled @property def pluginsEnabled(self): return self._webPage.settings().attribute(QtWebKit.QWebSettings.PluginsEnabled) @pluginsEnabled.setter def pluginsEnabled(self, value): self._webPage.settings().setAttribute(QtWebKit.QWebSettings.PluginsEnabled, value) #___________________________________________________________________________________________________ GS: communicator @property def communicator(self): return self._comm @communicator.setter def communicator(self, value): self._comm = value #___________________________________________________________________________________________________ GS: allowsOwnership @property def allowsOwnership(self): return False #___________________________________________________________________________________________________ GS: mainWindow @property def mainWindow(self): if self._mainWindow is None: self._mainWindow = PyGlassGuiUtils.getMainWindow(self) return self._mainWindow #___________________________________________________________________________________________________ GS: owner @property def owner(self): return PyGlassGuiUtils.getOwner(self) #=================================================================================================== # P U B L I C #___________________________________________________________________________________________________ openUrl def openUrl(self, url): """Doc...""" self.setUrl(QtCore.QUrl(url)) #___________________________________________________________________________________________________ openLocalWebUrl def openLocalWebUrl(self, url): """Doc...""" if StringUtils.isStringType(url): url = url.split('/') url = self.mainWindow.getRootResourcePath('web', *url) self.load(QtCore.QUrl('file:///' + url)) #___________________________________________________________________________________________________ contextMenuEvent def contextMenuEvent(self, *args, **kwargs): if self._debug: return QtWebKit.QWebView.contextMenuEvent(self, *args, **kwargs) #=================================================================================================== # H A N D L E R S #___________________________________________________________________________________________________ _handleToggleInspector def _handleToggleInspector(self): self._webInspector.setVisible(not self._webInspector.isVisible()) #___________________________________________________________________________________________________ _handleLoadFinished def _handleLoadFinished(self, result): if self._comm: self._comm.callInitialize() #=================================================================================================== # I N T R I N S I C #___________________________________________________________________________________________________ __repr__ def __repr__(self): return self.__str__() #___________________________________________________________________________________________________ __str__ def __str__(self): return '<%s>' % self.__class__.__name__