Skip to content

Commit ea46384

Browse files
author
Guilherme Costa
committed
code cleanup and formatting
Signed-off-by: Guilherme Costa <guiherme.costa@blockstec.com>
1 parent 63bca8e commit ea46384

2 files changed

Lines changed: 71 additions & 82 deletions

File tree

‎BlocksScreen/lib/panels/widgets/sensorWidget.py‎

Lines changed: 46 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,7 @@ def __init__(self, parent, sensor_name: str):
5353
self.filament_state: SensorWidget.FilamentState = (
5454
SensorWidget.FilamentState.PRESENT
5555
)
56-
self.sensor_state: SensorWidget.SensorState = (
57-
SensorWidget.SensorState.ON
58-
)
56+
self.sensor_state: SensorWidget.SensorState = SensorWidget.SensorState.ON
5957
self._icon_label = None
6058
self._text_label = None
6159
self._text = self.name
@@ -68,7 +66,6 @@ def __init__(self, parent, sensor_name: str):
6866
)
6967
self.setupUI()
7068
self.toggle_button.stateChange.connect(self.toggle_sensor_state)
71-
7269

7370
@property
7471
def type(self) -> SensorType:
@@ -98,43 +95,40 @@ def text(self, new_text) -> None:
9895
if self._text_label is not None:
9996
self._text_label.setText(f"{new_text}")
10097
self._text = new_text
101-
98+
10299
@QtCore.pyqtSlot(FilamentState, name="change_fil_sensor_state")
103100
def change_fil_sensor_state(self, state: FilamentState):
101+
"""Invert the filament state in response to a Klipper update"""
104102
if not isinstance(state, SensorWidget.FilamentState):
105103
return
106104
self.filament_state = SensorWidget.FilamentState(not state.value)
107105
self.update()
108-
109-
106+
110107
def toggle_button_state(self, state: ToggleAnimatedButton.State) -> None:
108+
"""Called when the Klipper firmware reports an update to the filament sensor state"""
111109
if state.value != self.sensor_state.value:
112110
self.sensor_state = self.SensorState(state.value)
113-
self.toggle_button.state = ToggleAnimatedButton.State(self.sensor_state.value)
111+
self.toggle_button.state = ToggleAnimatedButton.State(
112+
self.sensor_state.value
113+
)
114114
self.repaint()
115-
116-
@QtCore.pyqtSlot(ToggleAnimatedButton.State, name="state-change")
115+
116+
@QtCore.pyqtSlot(ToggleAnimatedButton.State, name="state-change")
117117
def toggle_sensor_state(self, state: ToggleAnimatedButton.State) -> None:
118+
"""Emit the appropriate G-Code command to change the filament sensor state."""
118119
if state.value != self.sensor_state.value:
119120
self.sensor_state = self.SensorState(state.value)
120-
self.run_gcode_signal.emit(f"SET_FILAMENT_SENSOR SENSOR={self.text} ENABLE={int(self.sensor_state.value)}")
121+
self.run_gcode_signal.emit(
122+
f"SET_FILAMENT_SENSOR SENSOR={self.text} ENABLE={int(self.sensor_state.value)}"
123+
)
121124
self.repaint()
122-
125+
123126
def resizeEvent(self, a0: QtGui.QResizeEvent) -> None:
127+
"""Handle widget resize events."""
124128
return super().resizeEvent(a0)
125129

126130
def paintEvent(self, a0: QtGui.QPaintEvent) -> None:
127131
"""Re-implemented method, paint widget"""
128-
# if (
129-
# self._scaled_select_on_pixmap is not None
130-
# and self._scaled_select_off_pixmap is not None
131-
# ): # Update the toggle button pixmap which indicates the sensor state
132-
# self._button_icon_label.setPixmap(
133-
# self._scaled_select_on_pixmap
134-
# if self.sensor_state == SensorWidget.SensorState.ON
135-
# else self._scaled_select_off_pixmap
136-
# )
137-
138132
style_painter = QtWidgets.QStylePainter(self)
139133
style_painter.setRenderHint(style_painter.RenderHint.Antialiasing, True)
140134
style_painter.setRenderHint(
@@ -153,23 +147,21 @@ def paintEvent(self, a0: QtGui.QPaintEvent) -> None:
153147
_font.setPointSize(20)
154148
style_painter.setFont(_font)
155149

156-
label_name = self._text_label_name_
157-
label_detected = self._text_label_detected
158-
label_state = self._text_label_state
150+
label_name = self._text_label_name_
151+
label_detected = self._text_label_detected
152+
label_state = self._text_label_state
159153

160154
palette = label_name.palette()
161-
palette.setColor(
162-
palette.ColorRole.WindowText, QtGui.QColorConstants.White
163-
)
155+
palette.setColor(palette.ColorRole.WindowText, QtGui.QColorConstants.White)
164156
style_painter.drawItemText(
165157
label_name.geometry(),
166158
label_name.alignment(),
167159
palette,
168160
True,
169161
label_name.text(),
170-
QtGui.QPalette.ColorRole.WindowText
162+
QtGui.QPalette.ColorRole.WindowText,
171163
)
172-
164+
173165
_font.setPointSize(16)
174166
style_painter.setFont(_font)
175167
filament_text = self.filament_state.name.capitalize()
@@ -180,9 +172,9 @@ def paintEvent(self, a0: QtGui.QPaintEvent) -> None:
180172
palette,
181173
True,
182174
f"Filament: {tab_spacer}{filament_text}",
183-
QtGui.QPalette.ColorRole.WindowText
175+
QtGui.QPalette.ColorRole.WindowText,
184176
)
185-
177+
186178
sensor_state_text = self.sensor_state.name.capitalize()
187179
tab_spacer += 3 * "\t"
188180
style_painter.drawItemText(
@@ -191,7 +183,7 @@ def paintEvent(self, a0: QtGui.QPaintEvent) -> None:
191183
palette,
192184
True,
193185
f"Enable: {tab_spacer}{sensor_state_text}",
194-
QtGui.QPalette.ColorRole.WindowText
186+
QtGui.QPalette.ColorRole.WindowText,
195187
)
196188
style_painter.end()
197189

@@ -203,14 +195,12 @@ def _setupUI(self):
203195
self.sensor_vertical_layout = QtWidgets.QVBoxLayout()
204196
self.sensor_vertical_layout.setObjectName("sensorVerticalLayout")
205197
self._icon_label = BlocksLabel(self)
206-
size_policy.setHeightForWidth(
207-
self._icon_label.sizePolicy().hasHeightForWidth()
208-
)
198+
size_policy.setHeightForWidth(self._icon_label.sizePolicy().hasHeightForWidth())
209199
parent_width = self.parentWidget().width()
210200
self._icon_label.setSizePolicy(size_policy)
211201
self._icon_label.setMinimumSize(120, 100)
212202
self._icon_label.setMinimumSize(120, 100)
213-
203+
214204
self._icon_label.setPixmap(
215205
self.icon_pixmap_fp
216206
if self.filament_state == self.FilamentState.PRESENT
@@ -236,10 +226,9 @@ def _setupUI(self):
236226
)
237227
self._text_label_detected.setMinimumSize(parent_width, 20)
238228

239-
240229
self._text_label_detected.setPalette(palette)
241230
self._text_label_detected.setText(f"Filament: {self.filament_state}")
242-
231+
243232
self._text_label_state = QtWidgets.QLabel(parent=self)
244233
size_policy.setHeightForWidth(
245234
self._text_label_state.sizePolicy().hasHeightForWidth()
@@ -248,19 +237,29 @@ def _setupUI(self):
248237

249238
self._text_label_state.setPalette(palette)
250239
self._text_label_state.setText(f"Enable: {self.sensor_state.name}")
251-
240+
252241
self._icon_label.setSizePolicy(size_policy)
253242
self.toggle_button = ToggleAnimatedButton(self)
254-
self.toggle_button.setMinimumSize(100,50)
243+
self.toggle_button.setMinimumSize(100, 50)
255244
self.toggle_button.state = ToggleAnimatedButton.State.ON
256245

257-
self.sensor_vertical_layout.addWidget(self._icon_label, alignment=QtCore.Qt.AlignmentFlag.AlignCenter)
258-
self.sensor_vertical_layout.addWidget(self._text_label_name_,alignment=QtCore.Qt.AlignmentFlag.AlignCenter)
246+
self.sensor_vertical_layout.addWidget(
247+
self._icon_label, alignment=QtCore.Qt.AlignmentFlag.AlignCenter
248+
)
249+
self.sensor_vertical_layout.addWidget(
250+
self._text_label_name_, alignment=QtCore.Qt.AlignmentFlag.AlignCenter
251+
)
259252
self.sensor_vertical_layout.addStretch()
260-
self.sensor_vertical_layout.addWidget(self._text_label_state,alignment=QtCore.Qt.AlignmentFlag.AlignLeft)
253+
self.sensor_vertical_layout.addWidget(
254+
self._text_label_state, alignment=QtCore.Qt.AlignmentFlag.AlignLeft
255+
)
261256
self.sensor_vertical_layout.addStretch()
262-
self.sensor_vertical_layout.addWidget(self._text_label_detected,alignment=QtCore.Qt.AlignmentFlag.AlignLeft)
257+
self.sensor_vertical_layout.addWidget(
258+
self._text_label_detected, alignment=QtCore.Qt.AlignmentFlag.AlignLeft
259+
)
263260
self.sensor_vertical_layout.addStretch()
264-
self.sensor_vertical_layout.addWidget(self.toggle_button,alignment=QtCore.Qt.AlignmentFlag.AlignCenter)
265-
261+
self.sensor_vertical_layout.addWidget(
262+
self.toggle_button, alignment=QtCore.Qt.AlignmentFlag.AlignCenter
263+
)
264+
266265
self.setLayout(self.sensor_vertical_layout)

‎BlocksScreen/lib/panels/widgets/sensorsPanel.py‎

Lines changed: 25 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,16 @@ class SensorsWindow(QtWidgets.QWidget):
1717
request_back: typing.ClassVar[QtCore.pyqtSignal] = QtCore.pyqtSignal(
1818
name="request_back"
1919
)
20+
2021
def __init__(self, parent):
2122
super(SensorsWindow, self).__init__(parent)
2223
self.model = EntryListModel()
2324
self.entry_delegate = EntryDelegate()
2425
self.sensor_tracking_widget = {}
2526
self.current_widget = None
2627
self.sensor_list: list[SensorWidget] = []
27-
self.setupUi()
28-
self.setAttribute(
29-
QtCore.Qt.WidgetAttribute.WA_TranslucentBackground, True
30-
)
28+
self._setupUi()
29+
self.setAttribute(QtCore.Qt.WidgetAttribute.WA_TranslucentBackground, True)
3130
self.setAttribute(QtCore.Qt.WidgetAttribute.WA_AcceptTouchEvents, True)
3231
self.setTabletTracking(True)
3332
self.fs_back_button.clicked.connect(self.request_back)
@@ -38,20 +37,21 @@ def reset_view_model(self) -> None:
3837
"""
3938
self.model.clear()
4039
self.entry_delegate.clear()
41-
40+
4241
@QtCore.pyqtSlot(dict, name="handle_available_fil_sensors")
4342
def handle_available_fil_sensors(self, sensors: dict) -> None:
44-
"""Handle available filament sensors, create `SensorWidget` for each detected
45-
sensor
46-
"""
43+
"""Handle available filament sensors, create `SensorWidget` for each detected sensor"""
4744
if not isinstance(sensors, dict):
4845
return
4946
self.reset_view_model()
5047
filtered_sensors = list(
51-
filter(
52-
lambda printer_obj: str(printer_obj).startswith("filament_switch_sensor")
53-
or str(printer_obj).startswith("filament_motion_sensor") or str(printer_obj).startswith("cutter_sensor"),
54-
sensors.keys(),
48+
filter(
49+
lambda printer_obj: str(printer_obj).startswith(
50+
"filament_switch_sensor"
51+
)
52+
or str(printer_obj).startswith("filament_motion_sensor")
53+
or str(printer_obj).startswith("cutter_sensor"),
54+
sensors.keys(),
5555
)
5656
)
5757
if filtered_sensors:
@@ -61,26 +61,22 @@ def handle_available_fil_sensors(self, sensors: dict) -> None:
6161
else:
6262
self.no_update_placeholder.show()
6363

64-
65-
6664
@QtCore.pyqtSlot(str, str, bool, name="handle_fil_state_change")
6765
def handle_fil_state_change(
6866
self, sensor_name: str, parameter: str, value: bool
6967
) -> None:
68+
"""Handle Klipper signals for filament sensor changes"""
7069
_item = self.sensor_tracking_widget.get(sensor_name)
7170
if _item:
7271
if parameter == "filament_detected":
73-
state = SensorWidget.FilamentState(not value)
74-
_item.change_fil_sensor_state(
75-
state
76-
)
72+
state = SensorWidget.FilamentState(not value)
73+
_item.change_fil_sensor_state(state)
7774
elif parameter == "enabled":
7875
_item.toggle_button_state(SensorWidget.SensorState(value))
79-
76+
8077
def showEvent(self, event: QtGui.QShowEvent | None) -> None:
8178
"""Re-add clients to update list"""
8279
return super().showEvent(event)
83-
8480

8581
@QtCore.pyqtSlot(ListItem, name="on-item-clicked")
8682
def on_item_clicked(self, item: ListItem) -> None:
@@ -89,18 +85,17 @@ def on_item_clicked(self, item: ListItem) -> None:
8985
"""
9086
if not item:
9187
return
92-
88+
9389
if self.current_widget:
9490
self.current_widget.hide()
95-
91+
9692
name_id = item.text
9793
current_widget = self.sensor_tracking_widget.get(name_id)
9894
if current_widget is None:
9995
return
10096
self.current_widget = current_widget
10197
self.current_widget.show()
10298

103-
10499
def create_sensor_widget(self, name: str) -> SensorWidget:
105100
"""Creates a sensor row to be added to the QListWidget
106101
@@ -110,7 +105,6 @@ def create_sensor_widget(self, name: str) -> SensorWidget:
110105
_item_widget = SensorWidget(self.infobox_frame, name)
111106
self.info_box_layout.addWidget(_item_widget)
112107

113-
114108
if self.current_widget:
115109
_item_widget.hide()
116110
else:
@@ -122,23 +116,21 @@ def create_sensor_widget(self, name: str) -> SensorWidget:
122116
right_text="",
123117
right_icon=self.pixmap,
124118
left_icon=None,
125-
callback= None,
119+
callback=None,
126120
selected=False,
127121
allow_check=False,
128122
_lfontsize=17,
129123
_rfontsize=12,
130124
height=80,
131-
notificate=False
125+
notificate=False,
132126
)
133127
_item_widget.run_gcode_signal.connect(self.run_gcode_signal)
134128
self.sensor_tracking_widget[name_id] = _item_widget
135129
self.model.add_item(item)
136-
130+
137131
return _item_widget
138132

139-
def paintEvent(self, a0: QtGui.QPaintEvent) -> None: ...
140-
141-
def setupUi(self) -> None:
133+
def _setupUi(self) -> None:
142134
"""Setup UI for updatePage"""
143135
font_id = QtGui.QFontDatabase.addApplicationFont(
144136
":/font/media/fonts for text/Momcake-Bold.ttf"
@@ -320,9 +312,7 @@ def setupUi(self) -> None:
320312
)
321313
self.fs_sensors_list.setAutoScroll(False)
322314
self.fs_sensors_list.setProperty("showDropIndicator", False)
323-
self.fs_sensors_list.setDefaultDropAction(
324-
QtCore.Qt.DropAction.IgnoreAction
325-
)
315+
self.fs_sensors_list.setDefaultDropAction(QtCore.Qt.DropAction.IgnoreAction)
326316
self.fs_sensors_list.setAlternatingRowColors(False)
327317
self.fs_sensors_list.setSelectionMode(
328318
QtWidgets.QAbstractItemView.SelectionMode.NoSelection
@@ -350,7 +340,7 @@ def setupUi(self) -> None:
350340
self.sensor_buttons_frame.setLayout(self.sensor_buttons_layout)
351341

352342
self.main_content_layout.addWidget(self.sensor_buttons_frame, 0)
353-
343+
354344
self.infobox_frame = BlocksCustomFrame()
355345
self.infobox_frame.setMinimumSize(QtCore.QSize(250, 300))
356346
self.infobox_frame.setMaximumSize(QtCore.QSize(450, 500))
@@ -379,4 +369,4 @@ def setupUi(self) -> None:
379369
self.infobox_frame.setLayout(self.info_box_layout)
380370
self.main_content_layout.addWidget(self.infobox_frame, 1)
381371
self.update_page_content_layout.addLayout(self.main_content_layout, 1)
382-
self.setLayout(self.update_page_content_layout)
372+
self.setLayout(self.update_page_content_layout)

0 commit comments

Comments
 (0)