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:
@ -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__":
|
||||
|
@ -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"
|
||||
|
Reference in New Issue
Block a user