timers manager does not register signals but callbacks in idle manager

This commit is contained in:
iLLiCiTiT 2020-07-01 17:46:57 +02:00
parent 14d8d3c6a8
commit 31a0bfef18

View file

@ -30,7 +30,10 @@ class TimersManager(metaclass=Singleton):
self.log = Logger().get_logger(self.__class__.__name__) self.log = Logger().get_logger(self.__class__.__name__)
self.tray_widget = tray_widget self.tray_widget = tray_widget
self.main_widget = main_widget self.main_widget = main_widget
self.widget_user_idle = WidgetUserIdle(self)
self.idle_man = None
self.signal_handler = None
self.widget_user_idle = WidgetUserIdle(self, tray_widget)
def set_signal_times(self): def set_signal_times(self):
try: try:
@ -113,49 +116,59 @@ class TimersManager(metaclass=Singleton):
:param modules: All imported modules from TrayManager :param modules: All imported modules from TrayManager
:type modules: dict :type modules: dict
""" """
self.s_handler = SignalHandler(self)
if 'IdleManager' in modules: if 'IdleManager' in modules:
self.signal_handler = SignalHandler(self)
if self.set_signal_times() is True: if self.set_signal_times() is True:
self.register_to_idle_manager(modules['IdleManager']) self.register_to_idle_manager(modules['IdleManager'])
def time_callback(self, int_def):
if not self.signal_handler:
return
if int_def == 0:
self.signal_handler.signal_show_message.emit()
elif int_def == 1:
self.signal_handler.signal_change_label.emit()
elif int_def == 2:
self.signal_handler.signal_stop_timers.emit()
def register_to_idle_manager(self, man_obj): def register_to_idle_manager(self, man_obj):
self.idle_man = man_obj self.idle_man = man_obj
# Time when message is shown
self.idle_man.add_time_callback(
self.time_show_message,
lambda: self.time_callback(0)
)
# Times when idle is between show widget and stop timers # Times when idle is between show widget and stop timers
show_to_stop_range = range( show_to_stop_range = range(
self.time_show_message-1, self.time_stop_timer self.time_show_message - 1, self.time_stop_timer
) )
for num in show_to_stop_range: for num in show_to_stop_range:
self.idle_man.add_time_signal( self.idle_man.add_time_callback(
num, num, lambda: self.time_callback(1)
self.s_handler.signal_change_label
) )
# Times when widget is already shown and user restart idle # Times when widget is already shown and user restart idle
shown_and_moved_range = range( shown_and_moved_range = range(
self.time_stop_timer - self.time_show_message self.time_stop_timer - self.time_show_message
) )
for num in shown_and_moved_range: for num in shown_and_moved_range:
self.idle_man.add_time_signal( self.idle_man.add_time_callback(
num, num, lambda: self.time_callback(1)
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 # Time when timers are stopped
self.idle_man.add_time_signal( self.idle_man.add_time_callback(
self.time_stop_timer, self.time_stop_timer,
self.s_handler.signal_stop_timers lambda: self.time_callback(2)
) )
def change_label(self): def change_label(self):
if self.is_running is False: if self.is_running is False:
return return
if self.widget_user_idle.bool_is_showed is False: if not self.idle_man or self.widget_user_idle.bool_is_showed is False:
return
if not hasattr(self, 'idle_man'):
return return
if self.idle_man.idle_time > self.time_show_message: if self.idle_man.idle_time > self.time_show_message: