@@ -198,8 +198,8 @@ def start_stop_xampp(self, widget):
198
198
else :
199
199
widget .set_label ('Starting...' )
200
200
self .start_service ()
201
- # Update Status after 10 seconds
202
- GLib .timeout_add_seconds (10 , self .update_status , widget )
201
+ # Update Status after 5 seconds
202
+ GLib .timeout_add_seconds (5 , self .update_status , widget , None , None , True )
203
203
204
204
def restart_xampp (self , widget ):
205
205
# Disable Start/Stop & Services Menu Items
@@ -236,8 +236,9 @@ def toggle_service(self, widget, service):
236
236
# Update Status after 10 seconds
237
237
GLib .timeout_add_seconds (10 , self .update_status , widget , label , service )
238
238
239
- def update_status (self , widget , widget_label = None , service = None ):
239
+ def update_status (self , widget , widget_label = None , service = None , loop = False ):
240
240
# Update Xampp Status
241
+ old_status = self .status
241
242
self .status = self .get_xampp_status ()
242
243
if service is not None :
243
244
# Update Widget
@@ -272,8 +273,18 @@ def update_status(self, widget, widget_label = None, service = None):
272
273
self .startStopItem .set_label ('Start' )
273
274
self .startStopItem .set_sensitive (True )
274
275
self .restartItem .set_sensitive (False )
276
+ # Check if status changed
277
+ if not loop or self .status_changed (old_status ):
278
+ return False # Do not loop
279
+ else :
280
+ return True # Loop
281
+
282
+ def status_changed (self , old_status ):
283
+ for service in self .services :
284
+ if self .status [service ] != old_status [service ]:
285
+ return True
275
286
276
- return False # Do not loop
287
+ return False
277
288
278
289
def start_service (self , service_name = '' ):
279
290
subprocess .Popen (self .pkexec_args + [self .xampp_bin , 'start' + service_name ])
0 commit comments