0
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2025-07-14 11:41:49 +02:00

refactor(website): changed inheritance of website widget to simple qwidget; closes #325

This commit is contained in:
2024-08-28 17:01:57 +02:00
parent 1f7ca4813c
commit 9925bbdb48
2 changed files with 16 additions and 11 deletions

View File

@ -1,6 +1,6 @@
from qtpy.QtCore import QUrl, qInstallMessageHandler from qtpy.QtCore import QUrl, qInstallMessageHandler
from qtpy.QtWebEngineWidgets import QWebEngineView from qtpy.QtWebEngineWidgets import QWebEngineView
from qtpy.QtWidgets import QApplication from qtpy.QtWidgets import QApplication, QVBoxLayout, QWidget
from bec_widgets.utils.bec_widget import BECWidget from bec_widgets.utils.bec_widget import BECWidget
@ -14,7 +14,7 @@ def suppress_qt_messages(type_, context, msg):
qInstallMessageHandler(suppress_qt_messages) qInstallMessageHandler(suppress_qt_messages)
class WebsiteWidget(BECWidget, QWebEngineView): class WebsiteWidget(BECWidget, QWidget):
""" """
A simple widget to display a website A simple widget to display a website
""" """
@ -24,7 +24,12 @@ class WebsiteWidget(BECWidget, QWebEngineView):
def __init__(self, parent=None, url: str = None, config=None, client=None, gui_id=None): def __init__(self, parent=None, url: str = None, config=None, client=None, gui_id=None):
super().__init__(client=client, config=config, gui_id=gui_id) super().__init__(client=client, config=config, gui_id=gui_id)
QWebEngineView.__init__(self, parent=parent) QWidget.__init__(self, parent=parent)
layout = QVBoxLayout()
layout.setContentsMargins(0, 0, 0, 0)
self.website = QWebEngineView()
layout.addWidget(self.website)
self.setLayout(layout)
self.set_url(url) self.set_url(url)
def set_url(self, url: str) -> None: def set_url(self, url: str) -> None:
@ -36,7 +41,7 @@ class WebsiteWidget(BECWidget, QWebEngineView):
""" """
if not url: if not url:
return return
self.setUrl(QUrl(url)) self.website.setUrl(QUrl(url))
def get_url(self) -> str: def get_url(self) -> str:
""" """
@ -45,31 +50,31 @@ class WebsiteWidget(BECWidget, QWebEngineView):
Returns: Returns:
str: The current url str: The current url
""" """
return self.url().toString() return self.website.url().toString()
def reload(self): def reload(self):
""" """
Reload the website Reload the website
""" """
QWebEngineView.reload(self) QWebEngineView.reload(self.website)
def back(self): def back(self):
""" """
Go back in the history Go back in the history
""" """
QWebEngineView.back(self) QWebEngineView.back(self.website)
def forward(self): def forward(self):
""" """
Go forward in the history Go forward in the history
""" """
QWebEngineView.forward(self) QWebEngineView.forward(self.website)
def cleanup(self): def cleanup(self):
""" """
Cleanup the widget Cleanup the widget
""" """
self.page().deleteLater() self.website.page().deleteLater()
if __name__ == "__main__": if __name__ == "__main__":

View File

@ -16,10 +16,10 @@ def website_widget(qtbot, mocked_client):
def test_website_widget_set_url(website_widget): def test_website_widget_set_url(website_widget):
website_widget.set_url("https://scilog.psi.ch") website_widget.set_url("https://scilog.psi.ch")
assert website_widget.url() == QUrl("https://scilog.psi.ch") assert website_widget.website.url() == QUrl("https://scilog.psi.ch")
website_widget.set_url(None) website_widget.set_url(None)
assert website_widget.url() == QUrl("https://scilog.psi.ch") assert website_widget.website.url() == QUrl("https://scilog.psi.ch")
website_widget.set_url("https://google.com") website_widget.set_url("https://google.com")
assert website_widget.get_url() == "https://google.com" assert website_widget.get_url() == "https://google.com"