#347 Take short or long breaks from tray

Correction: get_break() should not alter the break queue.
This commit is contained in:
AdamPS 2023-01-24 16:49:30 +00:00
parent 788e2b43af
commit 9a76aa4211
2 changed files with 17 additions and 10 deletions

View File

@ -167,7 +167,9 @@ class SafeEyesCore:
time.sleep(1) # Wait for 1 sec to ensure the sceduler is dead
self.running = True
utility.execute_main_thread(self.__fire_start_break, break_type)
if break_type is not None and self.break_queue.get_break().type != break_type:
self.break_queue.next(break_type)
utility.execute_main_thread(self.__fire_start_break)
def __scheduler_job(self):
"""
@ -243,8 +245,8 @@ class SafeEyesCore:
self.__wait_for(self.postpone_duration)
utility.execute_main_thread(self.__fire_start_break)
def __fire_start_break(self, break_type = None):
break_obj = self.break_queue.get_break(break_type)
def __fire_start_break(self):
break_obj = self.break_queue.get_break()
# Show the break screen
if not self.on_start_break.fire(break_obj):
# Plugins want to ignore this break
@ -260,13 +262,14 @@ class SafeEyesCore:
utility.start_thread(self.__postpone_break)
else:
self.start_break.fire(break_obj)
utility.start_thread(self.__start_break, break_obj = break_obj)
utility.start_thread(self.__start_break)
def __start_break(self, break_obj):
def __start_break(self):
"""
Start the break screen.
"""
self.context['state'] = State.BREAK
break_obj = self.break_queue.get_break()
countdown = break_obj.duration
total_break_time = countdown

View File

@ -114,11 +114,15 @@ class BreakQueue:
def get_break(self, break_type = None):
if self.__current_break is None:
self.__current_break = self.next(break_type)
elif break_type is not None and self.__current_break.type != break_type:
self.__current_break = self.next(break_type)
self.__current_break = self.next()
return self.__current_break
if break_type is None or self.__current_break.type == break_type:
return self.__current_break
if break_type == BreakType.LONG_BREAK:
return self.__long_queue[self.__current_long]
return self.__short_queue[self.__current_short]
def is_long_break(self):
return self.__current_break is not None and self.__current_break.type == BreakType.LONG_BREAK
@ -153,7 +157,7 @@ class BreakQueue:
def reset(self):
for break_object in self.__short_queue:
break_object.time = self.__short_break_time
for break_object in self.__long_queue:
break_object.time = self.__long_break_time