mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-14 11:41:49 +02:00
refactor(queue): refactored bec queue to inherit only from qwidget
This commit is contained in:
@ -1,12 +1,12 @@
|
|||||||
from bec_lib.endpoints import MessageEndpoints
|
from bec_lib.endpoints import MessageEndpoints
|
||||||
from qtpy.QtCore import Qt, Slot
|
from qtpy.QtCore import Qt, Slot
|
||||||
from qtpy.QtWidgets import QHeaderView, QTableWidget, QTableWidgetItem, QWidget
|
from qtpy.QtWidgets import QHBoxLayout, QHeaderView, QTableWidget, QTableWidgetItem, QWidget
|
||||||
|
|
||||||
from bec_widgets.utils.bec_connector import ConnectionConfig
|
from bec_widgets.utils.bec_connector import ConnectionConfig
|
||||||
from bec_widgets.utils.bec_widget import BECWidget
|
from bec_widgets.utils.bec_widget import BECWidget
|
||||||
|
|
||||||
|
|
||||||
class BECQueue(BECWidget, QTableWidget):
|
class BECQueue(BECWidget, QWidget):
|
||||||
"""
|
"""
|
||||||
Widget to display the BEC queue.
|
Widget to display the BEC queue.
|
||||||
"""
|
"""
|
||||||
@ -19,10 +19,14 @@ class BECQueue(BECWidget, QTableWidget):
|
|||||||
gui_id: str = None,
|
gui_id: str = None,
|
||||||
):
|
):
|
||||||
super().__init__(client, config, gui_id)
|
super().__init__(client, config, gui_id)
|
||||||
QTableWidget.__init__(self, parent=parent)
|
QWidget.__init__(self, parent=parent)
|
||||||
self.setColumnCount(3)
|
self.table = QTableWidget(self)
|
||||||
self.setHorizontalHeaderLabels(["Scan Number", "Type", "Status"])
|
self.layout = QHBoxLayout(self)
|
||||||
header = self.horizontalHeader()
|
self.layout.addWidget(self.table)
|
||||||
|
|
||||||
|
self.table.setColumnCount(3)
|
||||||
|
self.table.setHorizontalHeaderLabels(["Scan Number", "Type", "Status"])
|
||||||
|
header = self.table.horizontalHeader()
|
||||||
header.setSectionResizeMode(QHeaderView.Stretch)
|
header.setSectionResizeMode(QHeaderView.Stretch)
|
||||||
self.bec_dispatcher.connect_slot(self.update_queue, MessageEndpoints.scan_queue_status())
|
self.bec_dispatcher.connect_slot(self.update_queue, MessageEndpoints.scan_queue_status())
|
||||||
self.reset_content()
|
self.reset_content()
|
||||||
@ -38,8 +42,8 @@ class BECQueue(BECWidget, QTableWidget):
|
|||||||
"""
|
"""
|
||||||
# only show the primary queue for now
|
# only show the primary queue for now
|
||||||
queue_info = content.get("queue", {}).get("primary", {}).get("info", [])
|
queue_info = content.get("queue", {}).get("primary", {}).get("info", [])
|
||||||
self.setRowCount(len(queue_info))
|
self.table.setRowCount(len(queue_info))
|
||||||
self.clearContents()
|
self.table.clearContents()
|
||||||
|
|
||||||
if not queue_info:
|
if not queue_info:
|
||||||
self.reset_content()
|
self.reset_content()
|
||||||
@ -73,6 +77,8 @@ class BECQueue(BECWidget, QTableWidget):
|
|||||||
Returns:
|
Returns:
|
||||||
QTableWidgetItem: The formatted item.
|
QTableWidgetItem: The formatted item.
|
||||||
"""
|
"""
|
||||||
|
if not content or not isinstance(content, str):
|
||||||
|
content = ""
|
||||||
item = QTableWidgetItem(content)
|
item = QTableWidgetItem(content)
|
||||||
item.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
|
item.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
|
||||||
return item
|
return item
|
||||||
@ -88,16 +94,16 @@ class BECQueue(BECWidget, QTableWidget):
|
|||||||
status (str): The status.
|
status (str): The status.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.setItem(index, 0, self.format_item(scan_number))
|
self.table.setItem(index, 0, self.format_item(scan_number))
|
||||||
self.setItem(index, 1, self.format_item(scan_type))
|
self.table.setItem(index, 1, self.format_item(scan_type))
|
||||||
self.setItem(index, 2, self.format_item(status))
|
self.table.setItem(index, 2, self.format_item(status))
|
||||||
|
|
||||||
def reset_content(self):
|
def reset_content(self):
|
||||||
"""
|
"""
|
||||||
Reset the content of the table.
|
Reset the content of the table.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.setRowCount(1)
|
self.table.setRowCount(1)
|
||||||
self.set_row(0, "", "", "")
|
self.set_row(0, "", "", "")
|
||||||
|
|
||||||
|
|
||||||
|
@ -97,15 +97,15 @@ def bec_queue(qtbot, mocked_client):
|
|||||||
|
|
||||||
def test_bec_queue(bec_queue, bec_queue_msg_full):
|
def test_bec_queue(bec_queue, bec_queue_msg_full):
|
||||||
bec_queue.update_queue(bec_queue_msg_full.content, {})
|
bec_queue.update_queue(bec_queue_msg_full.content, {})
|
||||||
assert bec_queue.rowCount() == 1
|
assert bec_queue.table.rowCount() == 1
|
||||||
assert bec_queue.item(0, 0).text() == "1289"
|
assert bec_queue.table.item(0, 0).text() == "1289"
|
||||||
assert bec_queue.item(0, 1).text() == "line_scan"
|
assert bec_queue.table.item(0, 1).text() == "line_scan"
|
||||||
assert bec_queue.item(0, 2).text() == "COMPLETED"
|
assert bec_queue.table.item(0, 2).text() == "COMPLETED"
|
||||||
|
|
||||||
|
|
||||||
def test_bec_queue_empty(bec_queue):
|
def test_bec_queue_empty(bec_queue):
|
||||||
bec_queue.update_queue({}, {})
|
bec_queue.update_queue({}, {})
|
||||||
assert bec_queue.rowCount() == 1
|
assert bec_queue.table.rowCount() == 1
|
||||||
assert bec_queue.item(0, 0).text() == ""
|
assert bec_queue.table.item(0, 0).text() == ""
|
||||||
assert bec_queue.item(0, 1).text() == ""
|
assert bec_queue.table.item(0, 1).text() == ""
|
||||||
assert bec_queue.item(0, 2).text() == ""
|
assert bec_queue.table.item(0, 2).text() == ""
|
||||||
|
Reference in New Issue
Block a user