0
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2025-07-14 03:31:50 +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.QtWebEngineWidgets import QWebEngineView
from qtpy.QtWidgets import QApplication
from qtpy.QtWidgets import QApplication, QVBoxLayout, QWidget
from bec_widgets.utils.bec_widget import BECWidget
@ -14,7 +14,7 @@ def suppress_qt_messages(type_, context, msg):
qInstallMessageHandler(suppress_qt_messages)
class WebsiteWidget(BECWidget, QWebEngineView):
class WebsiteWidget(BECWidget, QWidget):
"""
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):
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)
def set_url(self, url: str) -> None:
@ -36,7 +41,7 @@ class WebsiteWidget(BECWidget, QWebEngineView):
"""
if not url:
return
self.setUrl(QUrl(url))
self.website.setUrl(QUrl(url))
def get_url(self) -> str:
"""
@ -45,31 +50,31 @@ class WebsiteWidget(BECWidget, QWebEngineView):
Returns:
str: The current url
"""
return self.url().toString()
return self.website.url().toString()
def reload(self):
"""
Reload the website
"""
QWebEngineView.reload(self)
QWebEngineView.reload(self.website)
def back(self):
"""
Go back in the history
"""
QWebEngineView.back(self)
QWebEngineView.back(self.website)
def forward(self):
"""
Go forward in the history
"""
QWebEngineView.forward(self)
QWebEngineView.forward(self.website)
def cleanup(self):
"""
Cleanup the widget
"""
self.page().deleteLater()
self.website.page().deleteLater()
if __name__ == "__main__":

View File

@ -16,10 +16,10 @@ def website_widget(qtbot, mocked_client):
def test_website_widget_set_url(website_widget):
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)
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")
assert website_widget.get_url() == "https://google.com"