@@ -32,40 +32,27 @@ def __repr__(self) -> str:
3232
3333 def __init__ (self , parent : QtWidgets .QWidget , printer : Printer , ws , / ) -> None :
3434 super ().__init__ (parent )
35-
3635 self .panel = Ui_filamentStackedWidget ()
3736 self .panel .setupUi (self )
3837 self .setCurrentIndex (0 )
39-
4038 self .ws = ws
4139 self .printer = printer
4240 self .toolhead_count : int = 0
43-
4441 self .target_temp : int = 0
4542 self .current_temp : int = 0
46-
4743 self .popup = Popup (self )
48-
49-
5044 self .loadscreen = LoadScreen (self , LoadScreen .AnimationGIF .DEFAULT )
5145 self .addWidget (self .loadscreen )
52-
53-
5446 self .has_load_unload_objects = None
5547 self ._filament_state = self .FilamentStates .UNKNOWN
56- self ._sensor_states = {}
48+ self ._sensor_states = {}
5749 self .filament_type : Filament | None = None
58-
5950 self .panel .filament_page_load_btn .clicked .connect (
6051 partial (self .change_page , self .indexOf (self .panel .load_page ))
6152 )
62- self .panel .custom_filament_header_back_btn .clicked .connect (
63- self .back_button
64- )
65- # REFACTOR self.panel.load_custom_btn.clicked.connect(partial(self.change_page, 2))
53+ self .panel .custom_filament_header_back_btn .clicked .connect (self .back_button )
6654 self .panel .load_custom_btn .hide ()
6755 self .panel .load_header_back_button .clicked .connect (self .back_button )
68-
6956 self .panel .load_pla_btn .clicked .connect (
7057 partial (self .load_filament , toolhead = 0 , temp = 220 )
7158 )
@@ -84,79 +71,76 @@ def __init__(self, parent: QtWidgets.QWidget, printer: Printer, ws, /) -> None:
8471 self .panel .load_tpu_btn .clicked .connect (
8572 partial (self .load_filament , toolhead = 0 , temp = 230 )
8673 )
87-
8874 self .panel .filament_page_unload_btn .clicked .connect (
8975 lambda : self .unload_filament (toolhead = 0 , temp = 250 )
9076 )
9177 self .run_gcode .connect (self .ws .api .run_gcode )
92-
9378 self .printer .extruder_update .connect (self .on_extruder_update )
94-
9579 self .printer .unload_filament_update .connect (self .on_unload_filament )
9680 self .printer .load_filament_update .connect (self .on_load_filament )
97- self .printer .filament_switch_sensor_update .connect (self .on_filament_sensor_update )
98-
99- #IF nothings shows is bc of the connection between printer.py and this ,MAYbe the load and unload file itself with printer idk should work tho
81+ self .printer .filament_switch_sensor_update .connect (
82+ self .on_filament_sensor_update
83+ )
84+ self .printer .filament_motion_sensor_update .connect (
85+ self .on_filament_sensor_update
86+ )
10087
10188 @QtCore .pyqtSlot (str , str , bool , name = "on_filament_sensor_update" )
102- def on_filament_sensor_update (self , sensor_name : str , parameter : str , value : bool ):
89+ def on_filament_sensor_update (self , sensor_name : str , parameter : str , value : bool ):
90+ """Handles filament sensor updates"""
10391 if parameter == "filament_detected" :
10492 if not isinstance (value , bool ):
10593 self ._filament_state = self .FilamentStates .UNKNOWN
106- self .handle_filamment_state ()
94+ self .handle_filament_state ()
10795 return
108- self ._sensor_states [ sensor_name ] = value
96+ self ._sensor_states . update ({ sensor_name : value })
10997 if not self ._sensor_states :
11098 new_state = self .FilamentStates .UNKNOWN
111- elif all (self ._sensor_states .values ()):
99+ elif all (self ._sensor_states .values ()): # All sensors detect filament
112100 new_state = self .FilamentStates .LOADED
113- else :
101+ else : # No filament sensors detect filament
114102 new_state = self .FilamentStates .UNLOADED
115-
116103 if self ._filament_state != new_state :
117104 self ._filament_state = new_state
118- self .handle_filamment_state ()
119-
105+ self .handle_filament_state ()
120106
121107 @QtCore .pyqtSlot (str , str , float , name = "on_extruder_update" )
122108 def on_extruder_update (
123109 self , extruder_name : str , field : str , new_value : float
124110 ) -> None :
111+ """Handles extruder updates"""
125112 if not self .isVisible :
126113 return
127114
128115 if self .target_temp != 0 :
129116 if self .current_temp == self .target_temp :
130117 self .loadscreen .set_status_message ("Extruder heated up \n Please wait" )
131118 return
132-
133119 if field == "temperature" :
134- self .current_temp = round (new_value ,0 ) #somehow this works
135- self .loadscreen .set_status_message (f"Heating up ({ new_value } /{ self .target_temp } ) \n Please wait" )
136-
137-
138-
120+ self .current_temp = round (new_value , 0 ) # somehow this works
121+ self .loadscreen .set_status_message (
122+ f"Heating up ({ new_value } /{ self .target_temp } ) \n Please wait"
123+ )
139124 if field == "target" :
140- self .target_temp = round (new_value ,0 ) # somehow this works again
125+ self .target_temp = round (new_value , 0 ) # somehow this works again
141126 self .loadscreen .set_status_message ("Heating up \n Please wait" )
142127
143-
144128 @QtCore .pyqtSlot (bool , name = "on_load_filament" )
145- def on_load_filament (self ,status :bool ):
129+ def on_load_filament (self , status : bool ):
130+ """Handles load filament update"""
146131 if not self .isVisible :
147132 return
148-
149-
150133 if status :
151134 self .loadscreen .show ()
152135 else :
153136 self .current_temp = 0
154137 self .loadscreen .hide ()
155138 self ._filament_state = self .FilamentStates .LOADED
156- self .handle_filamment_state ()
139+ self .handle_filament_state ()
157140
158141 @QtCore .pyqtSlot (bool , name = "on_unload_filament" )
159- def on_unload_filament (self ,status :bool ):
142+ def on_unload_filament (self , status : bool ):
143+ """Handle unload filament update"""
160144 if not self .isVisible :
161145 return
162146
@@ -166,42 +150,50 @@ def on_unload_filament(self,status:bool):
166150 self .loadscreen .hide ()
167151 self .current_temp = 0
168152 self ._filament_state = self .FilamentStates .UNLOADED
169- self .handle_filamment_state ()
170-
171-
153+ self .handle_filament_state ()
172154
173155 @QtCore .pyqtSlot (int , int , name = "load_filament" )
174156 def load_filament (self , toolhead : int = 0 , temp : int = 220 ) -> None :
157+ """Issues a signal for load filament macro, handles states accordingly"""
175158 if not self .isVisible :
176159 return
177160
178161 if self ._filament_state == self .FilamentStates .UNKNOWN :
179- self .popup .new_message (message_type = Popup .MessageType .ERROR , message = "Unable to detect whether the filament is loaded or unloaded." ,)
180-
162+ self .popup .new_message (
163+ message_type = Popup .MessageType .ERROR ,
164+ message = "Unable to detect whether the filament is loaded or unloaded." ,
165+ )
166+
181167 if self ._filament_state == self .FilamentStates .LOADED :
182- self .popup .new_message (message_type = Popup .MessageType .ERROR , message = "Filament is already loaded." ,)
183- return
184-
185- self .run_gcode .emit (
186- f"LOAD_FILAMENT TOOLHEAD=load_toolhead TEMPERATURE={ temp } "
187- )
168+ self .popup .new_message (
169+ message_type = Popup .MessageType .ERROR ,
170+ message = "Filament is already loaded." ,
171+ )
172+ return
173+
174+ self .run_gcode .emit (f"LOAD_FILAMENT TOOLHEAD=load_toolhead TEMPERATURE={ temp } " )
188175
189176 @QtCore .pyqtSlot (str , int , name = "unload_filament" )
190177 def unload_filament (self , toolhead : int = 0 , temp : int = 220 ) -> None :
178+ """Issues unload filament macro, handles state accordingly"""
191179 if not self .isVisible :
192180 return
193-
194181 if self ._filament_state == self .FilamentStates .UNKNOWN :
195- self .popup .new_message (message_type = Popup .MessageType .ERROR , message = "Unable to detect whether the filament is loaded or unloaded." ,)
196-
182+ self .popup .new_message (
183+ message_type = Popup .MessageType .ERROR ,
184+ message = "Unable to detect whether the filament is loaded or unloaded." ,
185+ )
197186 if self ._filament_state == self .FilamentStates .UNLOADED :
198- self .popup .new_message (message_type = Popup .MessageType .ERROR , message = "Filament is already unloaded." ,)
199- return
200-
187+ self .popup .new_message (
188+ message_type = Popup .MessageType .ERROR ,
189+ message = "Filament is already unloaded." ,
190+ )
191+ return
201192 self .find_routine_objects ()
202193 self .run_gcode .emit (f"UNLOAD_FILAMENT TEMPERATURE={ temp } " )
203-
204- def handle_filamment_state (self ):
194+
195+ def handle_filament_state (self ):
196+ """Handles filament states"""
205197 if self ._filament_state == self .FilamentStates .LOADED :
206198 self .panel .filament_page_load_btn .setDisabled (True )
207199 self .panel .filament_page_load_btn .setDisabled (False )
@@ -212,41 +204,29 @@ def handle_filamment_state(self):
212204 self .panel .filament_page_load_btn .setDisabled (False )
213205 self .panel .filament_page_unload_btn .setDisabled (False )
214206
215-
216-
217207 @property
218208 def filament_state (self ):
209+ """Filament state property"""
219210 return self ._filament_state
220211
221212 def change_page (self , index ):
213+ """Requests to change page"""
222214 self .request_change_page .emit (1 , index )
223215
224216 def back_button (self ):
217+ """Requests going back a page"""
225218 self .request_back .emit ()
226219
227- def sizeHint (self ) -> QtCore .QSize :
228- return super ().sizeHint ()
229-
230220 def paintEvent (self , a0 : QtGui .QPaintEvent | None ) -> None :
221+ """Paints the widget"""
231222 if self .panel .load_page .isVisible () and self .toolhead_count == 1 :
232223 self .panel .load_header_page_title .setText ("Load Toolhead" )
233- if a0 is not None :
234- return super ().paintEvent (a0 )
235-
236- def removeWidget (self , w : QtWidgets .QWidget | None ) -> None :
237- if w is not None :
238- return super ().removeWidget (w )
239-
240- def resizeEvent (self , a0 : QtGui .QResizeEvent | None ) -> None :
241- if a0 is not None :
242- return super ().resizeEvent (a0 )
243224
244225 def find_routine_objects (self ):
226+ """Finds if objects necessary for loading and unloading exist"""
245227 if not self .printer :
246- return
247-
228+ return False
248229 _available_objects = self .printer .available_objects .copy ()
249-
250230 if "load_filament" in _available_objects .keys ():
251231 self .has_load_unload_objects = True
252232 return True
@@ -257,5 +237,4 @@ def find_routine_objects(self):
257237 return True
258238 if "gcode_macro UNLOAD_FILAMENT" in _available_objects .keys ():
259239 return True
260-
261240 return False
0 commit comments