From fc01a4240bef74ead01734b38eca60f77f89f22d Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Fri, 22 Mar 2019 19:31:19 +0100 Subject: [PATCH] timers manager tries to load presets before add to idle manager --- .../services/timers_manager/timers_manager.py | 65 ++++++++++++------- 1 file changed, 41 insertions(+), 24 deletions(-) diff --git a/pype/services/timers_manager/timers_manager.py b/pype/services/timers_manager/timers_manager.py index e6c1c4f18a..5d324ef453 100644 --- a/pype/services/timers_manager/timers_manager.py +++ b/pype/services/timers_manager/timers_manager.py @@ -1,6 +1,7 @@ from Qt import QtCore from .widget_user_idle import WidgetUserIdle from pypeapp.lib.config import get_presets +from pypeapp import Logger class Singleton(type): @@ -20,17 +21,22 @@ class TimersManager(metaclass=Singleton): last_task = None def __init__(self, tray_widget, main_widget): + self.log = Logger().get_logger(self.__class__.__name__) self.tray_widget = tray_widget self.main_widget = main_widget self.widget_user_idle = WidgetUserIdle(self) - self.set_signal_times() def set_signal_times(self): - timer_info = get_presets()['services']['timers_manager']['timer'] - full_time = int(timer_info['full_time'])*60 - message_time = int(timer_info['message_time'])*60 - self.time_show_message = full_time - message_time - self.time_stop_timer = full_time + try: + timer_info = get_presets()['services']['timers_manager']['timer'] + full_time = int(timer_info['full_time'])*60 + message_time = int(timer_info['message_time'])*60 + self.time_show_message = full_time - message_time + self.time_stop_timer = full_time + return True + except Exception: + self.log.warning('Was not able to load presets for TimersManager') + return False def add_module(self, module): self.modules.append(module) @@ -76,28 +82,39 @@ class TimersManager(metaclass=Singleton): self.s_handler = SignalHandler(self) if 'IdleManager' in modules: - self.idle_man = modules['IdleManager'] - # Times when idle is between show widget and stop timers - for num in range(self.time_show_message-1, self.time_stop_timer): - self.idle_man.add_time_signal( - num, - self.s_handler.signal_change_label - ) - # Times when widget is already shown and user restart idle - for num in range(self.time_stop_timer - self.time_show_message): - self.idle_man.add_time_signal( - num, - self.s_handler.signal_change_label - ) - # Time when message is shown + if self.set_signal_times() is True: + self.register_to_idle_manager(modules['IdleManager']) + + def register_to_idle_manager(self, man_obj): + self.idle_man = man_obj + # Times when idle is between show widget and stop timers + show_to_stop_range = range( + self.time_show_message-1, self.time_stop_timer + ) + for num in show_to_stop_range: self.idle_man.add_time_signal( - self.time_show_message, - self.s_handler.signal_show_message + num, + self.s_handler.signal_change_label ) - # Time when timers are stopped + # Times when widget is already shown and user restart idle + shown_and_moved_range = range( + self.time_stop_timer - self.time_show_message + ) + for num in shown_and_moved_range: self.idle_man.add_time_signal( - self.time_stop_timer, self.s_handler.signal_stop_timers + num, + self.s_handler.signal_change_label ) + # Time when message is shown + self.idle_man.add_time_signal( + self.time_show_message, + self.s_handler.signal_show_message + ) + # Time when timers are stopped + self.idle_man.add_time_signal( + self.time_stop_timer, + self.s_handler.signal_stop_timers + ) def change_label(self): if self.is_running is False: