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")
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
    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)