modified header widget; starting on v1.9.0

This commit is contained in:
2024-02-16 16:46:57 +01:00
parent 278765e900
commit 11ec1bb86c

View File

@@ -5,7 +5,8 @@ import os
from qtpy.QtCore import Qt, QTimer
from qtpy.QtGui import QFont
from qtpy.QtWidgets import (
QApplication, QFrame, QGridLayout, QGroupBox, QHBoxLayout, QLabel, QWidget)
QApplication, QFrame, QGridLayout, QGroupBox, QHBoxLayout, QLabel,
QVBoxLayout, QWidget)
from caqtwidgets.pvwidgets import CAQLabel
from apps4ops.bdbase.enumkind import UserMode
@@ -41,9 +42,11 @@ class GUIHeader(QWidget):
self.header_groups = self.settings.data["header"]
self.header_status = [None] * len(self.header_groups)
offset = 0
self.header_row = {"COMET": 2+offset, "BMA1": 2+offset, "G1": 2+offset, "SH": 1+offset, "G2": 2+offset,
"O2": 1+offset, "PIF": 0, "G3": 0+offset, "MASTER": 2+offset}
self.header_height = 234
offset = 1
self.header_row = {"COMET": 4+offset, "BMA1": 4+offset, "G1": 4+offset, "SH": 2+offset, "G2": 3+offset,
"O2": 2+offset, "PIF": 0, "G3":1+offset, "MASTER": 4+offset}
# self.header_row = {"COMET": 0, "G1": 0, "SH": 0, "G2": 0, "O2": 0,
# "PIF": 0, "G3": 0, "MASTER": 0}
@@ -144,9 +147,9 @@ class GUIHeader(QWidget):
self.header_row[sector], j - 1, 2, 5) # j -3 with_sub_master
j += 1
else:
align = Qt.AlignTop if sector == "SH" else Qt.AlignCenter
align = Qt.AlignTop # if sector == "SH" else Qt.AlignCenter
#align = Qt.AlignBottom if sector == "PG3" else align
self.grid_layout.addWidget(
self.beam_current_widget(
header=sector, pv=pv, color_obj=color),
@@ -155,74 +158,81 @@ class GUIHeader(QWidget):
if sector == "G3":
self.grid_layout.addWidget(
QFrame(), self.header_row[sector], j + 1, 2, 3,
align)
align)
j += 1
offset = 2
if sector in ["PIF"]:
qw = draw_box(nheight=10, nwidth=8, area="PRE-G3")
self.grid_layout.addWidget(qw, 0+offset, j, 2, 1, align)
qw = draw_box(nheight=10, nwidth=8+16, area="PRE-G3")
self.grid_layout.addWidget(qw, 0+offset-0, j - 1, 3, 1, align)
j += 1
elif sector in ["O2"]:
qw = draw_box(nheight=5, nwidth=16, area="PRE-PIF")
self.grid_layout.addWidget(qw, 0+offset, j - 1, 1, 1, align)
qw = draw_box(nheight=10, nwidth=8, area="O2")
self.grid_layout.addWidget(qw, 0+offset, j, 2, 1, align)
qw1 = draw_box(nheight=5, nwidth=16, area="PRE-PIF")
self.grid_layout.addWidget(qw1, 0+offset, j - 1, 2, 1, align)
qw = draw_box(nheight=15, nwidth=8, area="O2")
vbox = QVBoxLayout()
qf = QFrame()
qf.setFixedHeight(1)
vbox.addWidget(qf)
vbox.addWidget(qw)
self.grid_layout.addLayout(vbox, 0, j, 4, 1, align)
#qf = QFrame()
#qf.setFixedHeight(qw1.height()-10)
#self.grid_layout.addWidget(qf, 0, 13, 2, 1, align)
j += 1
elif sector in ["COMET"]:
qw = draw_box(nheight=10, nwidth=8, area="POST-COMET")
self.grid_layout.addWidget(qw, 1+offset, j, 2, 1, align)
self.grid_layout.addWidget(qw, 2+offset, j, 3, 1, align)
j += 1
elif sector in ["BMA1"]:
qw = draw_box(nheight=10, nwidth=10, area="POST-BMA1")
self.grid_layout.addWidget(qw, 1+offset, j, 2, 1, align)
qw = draw_box(nheight=15, nwidth=12, area="POST-BMA1")
self.grid_layout.addWidget(qw, 1+offset, j, 4, 1, align)
j += 1
elif sector in ["SH"]:
qw = draw_box(nheight=15, nwidth=10, area="POST-SH")
self.grid_layout.addWidget(qw, 0+offset, j, 3, 1, align)
self.grid_layout.addWidget(qw, 0+offset, j, 4, 1, align)
j += 1
elif sector in ["G1"]:
qw = draw_box(nheight=5, nwidth=16, area="G1")
self.grid_layout.addWidget(qw, 1+offset, j - 1, 1, 1, align)
self.grid_layout.addWidget(qw, 1+offset, j - 1, 2, 1, align)
qw = draw_box(nheight=10, nwidth=8, area="PRE-SH")
self.grid_layout.addWidget(qw, 1+offset, j, 2, 1, align)
self.grid_layout.addWidget(qw, 1+offset, j, 3, 1, align)
j += 1
elif sector in ["G2"]:
qw = draw_box(nheight=10, nwidth=16, area="G2")
self.grid_layout.addWidget(qw, 0+offset, j - 1, 2, 1, align)
qw = draw_box(nheight=10, nwidth=8, area="PRE-O2")
self.grid_layout.addWidget(qw, 0+offset, j, 2, 1, align)
self.grid_layout.addWidget(qw, 0+offset, j, 3, 1, align)
j += 1
elif sector not in ["MASTER", "G3"]:
qw = draw_box()
self.grid_layout.addWidget(qw, 0+offset, j, 2, 1, align)
self.grid_layout.addWidget(qw, 0+offset, j-1, 2, 1, align)
j += 1
self.shift_type = CAQLabel(self, pv_name="PRO-HUSH:SHIFT-TYPE")
self.grid_layout.addWidget(self.shift_type, 0, 0, 1, 2, Qt.AlignLeft)
self.grid_layout.addWidget(self.shift_type, 1, 0, 1, 2, Qt.AlignBottom | Qt.AlignLeft)
hbox1 = QHBoxLayout()
ama1_label = QLabel("AMA1:")
ama1 = CAQLabel(self, pv_name="AMA1:SOL:2", show_units=True)
hbox1.addWidget(ama1_label)
hbox1.addWidget(ama1)
self.grid_layout.addLayout(hbox1, 0, 2, 1, 2, Qt.AlignRight)
self.grid_layout.addLayout(hbox1, 1, 2, 1, 2, Qt.AlignTop | Qt.AlignRight)
hbox = QHBoxLayout()
ama3_label = QLabel("AMA3:")
ama3 = CAQLabel(self, pv_name="AMA3:SOL:2", show_units=True)
hbox.addWidget(ama3_label)
hbox.addWidget(ama3)
self.grid_layout.addLayout(hbox, 0, 5, 1, 3, Qt.AlignCenter)
self.grid_layout.addLayout(hbox, 1, 6, 1, 3, Qt.AlignTop | Qt.AlignHCenter)
hbox2 = QHBoxLayout()
amd2_label = QLabel("AMD2:")
amd2 = CAQLabel(self, pv_name="AMD2:SOL:2", show_units=True)
hbox2.addWidget(amd2_label)
hbox2.addWidget(amd2)
self.grid_layout.addLayout(hbox2, 0, 10, 1, 2, Qt.AlignCenter)
self.grid_layout.addLayout(hbox2, 1, 9, 1, 2, Qt.AlignTop | Qt.AlignRight)
b1_label = QLabel("B1")
self.grid_layout.addWidget(b1_label, 3+offset, 1, 1, 1, Qt.AlignTop | Qt.AlignHCenter)
b2_label = QLabel(" B2 B3-B6")
self.grid_layout.addWidget(b2_label, 3+offset, 3, 1, 1, Qt.AlignTop | Qt.AlignLeft)
self.grid_layout.addWidget(b1_label, 4+offset, 1, 1, 1, Qt.AlignVCenter | Qt.AlignHCenter)
b2_label = QLabel("B2 B3-B6")
self.grid_layout.addWidget(b2_label, 4+offset, 3, 1, 1, Qt.AlignVCenter | Qt.AlignHCenter)
b7_label = QLabel("B7-B9")
self.grid_layout.addWidget(b7_label, 2+offset, 5, 1, 1, Qt.AlignTop | Qt.AlignHCenter)
@@ -231,9 +241,9 @@ class GUIHeader(QWidget):
b13_label = QLabel("B13-B15 ")
self.grid_layout.addWidget(b13_label, 2+offset, 9, 1, 1, Qt.AlignTop | Qt.AlignHCenter)
b16_label = QLabel("B16-B18 ")
self.grid_layout.addWidget(b16_label, 1+offset, 11, 1, 1, Qt.AlignTop | Qt.AlignHCenter)
b19_label = QLabel("B19 B20")
self.grid_layout.addWidget(b19_label, 1+offset, 13, 1, 1, Qt.AlignTop | Qt.AlignHCenter)
self.grid_layout.addWidget(b16_label, 0+offset, 10, 1, 1, Qt.AlignTop| Qt.AlignRight)
b19_label = QLabel("B19 B20 ")
self.grid_layout.addWidget(b19_label, 0+offset, 12, 1, 1, Qt.AlignTop | Qt.AlignRight)
if has_hbox_layout:
self.grid_layout.setSpacing(6)
@@ -249,7 +259,7 @@ class GUIHeader(QWidget):
self.header_wgt.setFixedHeight(110)
else:
self.header_wgt.setLayout(self.grid_layout)
self.header_wgt.setFixedHeight(160)
self.header_wgt.setFixedHeight(self.header_height)
title = "PROSCAN {0}".format(self.user_mode.name)
if self.title:
@@ -326,6 +336,8 @@ class GUIHeader(QWidget):
self.beam_current_wgt_dict[
wgt_val].trigger_monitor_str.emit(
self.sector_disruptor_dict[wgt_val], 1, 0)
#self.toPIF("ON")
#self.toG3("ON")
def enable_disable_beamline(sect, sector_line, value):
@@ -351,12 +363,10 @@ class GUIHeader(QWidget):
self.toSH(action)
if "Geschlossen" not in self.sector_disruptor_dict["G1"]:
self.toSH("OFF")
elif sector == "G1":
self.toG1(action)
if action == "ON":
self.toSH("OFF")
elif sector == "G2":
self.toG2(action)
reset_check_mini_post_sh()
@@ -455,7 +465,9 @@ class GUIHeader(QWidget):
color = "green" if on_off == "ON" else self.pf_bgcolor()
for key, pf in self.pframe_matrix["PRE-G3"][3].items():
pf.setStyleSheet("background-color:{0};".format(color))
for key, pf in self.pframe_matrix["O2"][11].items():
pf.setStyleSheet("background-color:{0};".format(color))
def toSH(self, on_off: str = "ON"):
color = "green" if on_off == "ON" else self.pf_bgcolor()
@@ -463,12 +475,12 @@ class GUIHeader(QWidget):
pf.setStyleSheet("background-color:{0};".format(color))
for key, pf in self.pframe_matrix["PRE-SH"][3].items():
pf.setStyleSheet("background-color:{0};".format(color))
for i in range(0, 5):
pf = self.pframe_matrix["POST-BMA1"][8 - i][i + 2]
pf.setStyleSheet("background-color:{0};".format(color))
for i in range(7, 10):
pf = self.pframe_matrix["POST-BMA1"][3][i]
for i in range(3, 12):
pf = self.pframe_matrix["POST-BMA1"][15-i][i]
pf.setStyleSheet("background-color:{0};".format(color))
#for i in range(7, 10):
# pf = self.pframe_matrix["POST-BMA1"][3][i]
# pf.setStyleSheet("background-color:{0};".format(color))
self.toBMA1(on_off)
self.afterBMA1(on_off)
@@ -476,7 +488,7 @@ class GUIHeader(QWidget):
def afterBMA1(self, on_off: str = "ON"):
color = "green" if on_off == "ON" else self.pf_bgcolor()
for i in range(0, 3):
pf = self.pframe_matrix["POST-BMA1"][8][i]
pf = self.pframe_matrix["POST-BMA1"][13][i]
pf.setStyleSheet("background-color:{0};".format(color))
def toBMA1(self, on_off: str = "ON"):
@@ -501,22 +513,39 @@ class GUIHeader(QWidget):
self.afterBMA1(on_off)
def toPIF(self, on_off: str = "ON"):
color = "green" if on_off == "ON" else self.pf_bgcolor()
for i in range(0, 5):
pf = self.pframe_matrix["POST-SH"][8 - i][i + 2]
pf.setStyleSheet("background-color:{0};".format(color))
for i in range(7, 10):
pf = self.pframe_matrix["POST-SH"][3][i]
pf.setStyleSheet("background-color:{0};".format(color))
pf.setStyleSheet("background-color:{0};".format(color))
for key, pf in self.pframe_matrix["G2"][3].items():
pf.setStyleSheet("background-color:{0};".format(color))
for key, pf in self.pframe_matrix["PRE-O2"][3].items():
pf.setStyleSheet("background-color:{0};".format(color))
for key, pf in self.pframe_matrix["O2"][3].items():
pf.setStyleSheet("background-color:{0};".format(color))
#for key, pf in self.pframe_matrix["O2"][11].items():
# pf.setStyleSheet("background-color:{0};".format(color))
for key, pf in self.pframe_matrix["PRE-PIF"][3].items():
pf.setStyleSheet("background-color:{0};".format(color))
for i in range(5, 8):
pf = self.pframe_matrix["O2"][5][i]
pf.setStyleSheet("background-color:{0};".format(color))
pf = self.pframe_matrix["O2"][6][4]
pf.setStyleSheet("background-color:{0};".format(color))
pf = self.pframe_matrix["O2"][7][3]
pf.setStyleSheet("background-color:{0};".format(color))
pf = self.pframe_matrix["O2"][8][2]
pf.setStyleSheet("background-color:{0};".format(color))
pf = self.pframe_matrix["O2"][9][1]
pf.setStyleSheet("background-color:{0};".format(color))
pf = self.pframe_matrix["O2"][10][0]
pf.setStyleSheet("background-color:{0};".format(color))
self.toSHOverlap(on_off)
self.afterBMA1(on_off)
@@ -533,7 +562,7 @@ class GUIHeader(QWidget):
def toG1(self, on_off: str = "ON"):
color = "green" if on_off == "ON" else self.pf_bgcolor()
for key, pf in self.pframe_matrix["POST-BMA1"][8].items():
for key, pf in self.pframe_matrix["POST-BMA1"][13].items():
pf.setStyleSheet("background-color:{0};".format(color))
def toG2(self, on_off: str = "ON"):