def __init__(self): super(Dialog, self).__init__() # Setup the widget. self.setObjectName("3Dfindit_Dialog") self.setWindowTitle("3DfindIT") # Grab the browser. from freecad.cadenas3dfindit import browser self.webView = browser.getInstance().getBrowser() self.threeDNativeAPI = browser.getInstance().getThreeDNativeAPI() # Prepare a simple layout. self.layout = QtWidgets.QVBoxLayout(self) self.layout.addLayout(QtWidgets.QHBoxLayout()) self.layout.addWidget(self.webView) # Setup our page. We want our own profile so other browsers in FreeCAD # can't interfere with our cookies. We also want our own page so we can # ask the user what to do if we encounter any SSL errors. profile = QtWebEngineWidgets.QWebEngineProfile("3Dfindit", self.webView) page = MyWebEnginePage( QtWebEngineWidgets.QWebEnginePage(profile, self.webView)) self.webView.setPage(page) # Setup our webchannel. channel = QtWebChannel.QWebChannel(self) channel.registerObject("ThreeDfinditNativeAPI", self.threeDNativeAPI) self.webView.page().setWebChannel(channel) # Re-direct to landing page. self.webView.setUrl( "https://freecad-embedded.3dfindit.com/?webview=QTWEBCHANNEL")
def __init__(self, webapp): super().__init__() self.webapp = webapp self.profile = None if self.webapp.persist: self.profile = QtWebEngineWidgets.QWebEngineProfile(webapp.title) else: self.profile = QtWebEngineWidgets.QWebEngineProfile() self.page = QtWebEngineWidgets.QWebEnginePage(self.profile) self.view = QtWebEngineWidgets.QWebEngineView() self.view.setPage(self.page) self.view.load(QtCore.QUrl(self.webapp.url)) self.layout = QtWidgets.QVBoxLayout(self) self.layout.addWidget(self.view) self.layout.setContentsMargins(QtCore.QMargins(0, 0, 0, 0)) self.setWindowTitle(self.webapp.title) self.view.iconChanged.connect(self.iconChangedListener)
def __init__(self, parent: Optional[QtWidgets.QWidget] = None, url: str = "https://www.hydroffice.org") -> None: super().__init__(parent) self.setWindowTitle('Browser') self._actions = {} self._create_menu() self._tool_bar = QtWidgets.QToolBar() self._tool_bar.setIconSize(QtCore.QSize(16, 16)) self.addToolBar(self._tool_bar) for action in self._actions.values(): if not action.icon().isNull(): self._tool_bar.addAction(action) self.address_line_edit = QtWidgets.QLineEdit() self.address_line_edit.setClearButtonEnabled(True) # noinspection PyUnresolvedReferences self.address_line_edit.returnPressed.connect(self._load) self._tool_bar.addWidget(self.address_line_edit) self.view = QtWebEngineWidgets.QWebEngineView() # self.view.settings().setAttribute(QtWebEngineWidgets.QWebEngineSettings.PluginsEnabled, True) # self.view.settings().setAttribute(QtWebEngineWidgets.QWebEngineSettings.FullScreenSupportEnabled, True) # self.view.settings().setAttribute(QtWebEngineWidgets.QWebEngineSettings.AllowRunningInsecureContent, True) # self.view.settings().setAttribute(QtWebEngineWidgets.QWebEngineSettings.SpatialNavigationEnabled, True) self.view.settings().setAttribute(QtWebEngineWidgets.QWebEngineSettings.JavascriptEnabled, True) self.view.settings().setAttribute(QtWebEngineWidgets.QWebEngineSettings.JavascriptCanOpenWindows, True) self.view.settings().setAttribute( QtWebEngineWidgets.QWebEngineSettings.WebAttribute.LocalContentCanAccessRemoteUrls, True) self.view.settings().setAttribute( QtWebEngineWidgets.QWebEngineSettings.WebAttribute.LocalContentCanAccessFileUrls, True) # self.interceptor = RequestInterceptor() self.profile = QtWebEngineWidgets.QWebEngineProfile() # self.profile.setRequestInterceptor(self.interceptor) # noinspection PyUnresolvedReferences self.profile.downloadRequested.connect(self._download_requested) self.profile.setPersistentCookiesPolicy(QtWebEngineWidgets.QWebEngineProfile.NoPersistentCookies) self.profile.setHttpCacheType(QtWebEngineWidgets.QWebEngineProfile.NoCache) self.profile.setPersistentStoragePath(self._web_engine_folder()) self.page = WebEnginePage(self.profile, self.view) self.view.setPage(self.page) # noinspection PyUnresolvedReferences self.view.page().titleChanged.connect(self.setWindowTitle) # noinspection PyUnresolvedReferences self.view.page().urlChanged.connect(self._url_changed) self.setCentralWidget(self.view) self.change_url(url=url)