@@ -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 )
0 commit comments