job_status: simplify timeouts because sometimes it didn't work, also do not autoclose by default because there may be offsets to be saved

This commit is contained in:
alfrix
2022-05-19 14:46:26 -03:00
committed by Alfredo Monclus
parent c91deda220
commit 7b4a24d079
2 changed files with 13 additions and 13 deletions

View File

@@ -20,11 +20,11 @@ invert_x: False
invert_y: False invert_y: False
invert_z: False invert_z: False
# Time (seconds) before the Job Status page reverts to main menu after a successful job # Time in seconds before the Job Status page closes itself after a successful job/print
job_complete_timeout: 30 # 0 means disabled
job_complete_timeout: 0
# Time (seconds) before the Job Status page reverts to main menu after a successful job. # Time in seconds before the Job Status closes itself if an error is encountered
# If this option is 0, the user must click on a button to go back to the main menu.
job_error_timeout: 0 job_error_timeout: 0
# Specify the language # Specify the language

View File

@@ -16,13 +16,13 @@ def create_panel(*args):
class JobStatusPanel(ScreenPanel): class JobStatusPanel(ScreenPanel):
is_paused = False is_paused = False
filename = state_timeout = prev_pos = prev_gpos = vel_timeout = animation_timeout = None filename = state_timeout = prev_pos = prev_gpos = vel_timeout = animation_timeout = close_timeout = None
file_metadata = labels = {} file_metadata = labels = {}
state = "standby" state = "standby"
timeleft_type = "auto" timeleft_type = "auto"
progress = zoffset = flowrate = vel = 0 progress = zoffset = flowrate = vel = 0
main_status_displayed = True main_status_displayed = True
close_timeouts = velstore = flowstore = [] velstore = flowstore = []
def __init__(self, screen, title, back=False): def __init__(self, screen, title, back=False):
super().__init__(screen, title, False) super().__init__(screen, title, False)
@@ -490,9 +490,9 @@ class JobStatusPanel(ScreenPanel):
return False return False
def remove_close_timeout(self): def remove_close_timeout(self):
for to in self.close_timeouts: if self.close_timeout is not None:
GLib.source_remove(to) GLib.source_remove(self.close_timeout)
self.close_timeouts.remove(to) self.close_timeout = None
def enable_button(self, *args): def enable_button(self, *args):
for arg in args: for arg in args:
@@ -750,9 +750,9 @@ class JobStatusPanel(ScreenPanel):
self.set_state("complete") self.set_state("complete")
self._screen.wake_screen() self._screen.wake_screen()
self.remove_close_timeout() self.remove_close_timeout()
timeout = self._config.get_main_config().getint("job_complete_timeout", 30) timeout = self._config.get_main_config().getint("job_complete_timeout", 0)
if timeout != 0: if timeout != 0:
self.close_timeouts.append(GLib.timeout_add_seconds(timeout, self.close_panel)) self.close_timeout = GLib.timeout_add_seconds(timeout, self.close_panel)
return False return False
elif ps['state'] == "error": elif ps['state'] == "error":
logging.debug("Error!") logging.debug("Error!")
@@ -763,7 +763,7 @@ class JobStatusPanel(ScreenPanel):
self.remove_close_timeout() self.remove_close_timeout()
timeout = self._config.get_main_config().getint("job_error_timeout", 0) timeout = self._config.get_main_config().getint("job_error_timeout", 0)
if timeout != 0: if timeout != 0:
self.close_timeouts.append(GLib.timeout_add_seconds(timeout, self.close_panel)) self.close_timeout = GLib.timeout_add_seconds(timeout, self.close_panel)
return False return False
elif ps['state'] == "cancelled": elif ps['state'] == "cancelled":
# Print was cancelled # Print was cancelled
@@ -772,7 +772,7 @@ class JobStatusPanel(ScreenPanel):
self.remove_close_timeout() self.remove_close_timeout()
timeout = self._config.get_main_config().getint("job_cancelled_timeout", 0) timeout = self._config.get_main_config().getint("job_cancelled_timeout", 0)
if timeout != 0: if timeout != 0:
self.close_timeouts.append(GLib.timeout_add_seconds(timeout, self.close_panel)) self.close_timeout = GLib.timeout_add_seconds(timeout, self.close_panel)
return False return False
elif ps['state'] == "paused": elif ps['state'] == "paused":
self.set_state("paused") self.set_state("paused")