Display next long break #374
This commit is contained in:
parent
0cce71070b
commit
9d30def057
|
@ -77,6 +77,7 @@
|
|||
"version": "0.0.3",
|
||||
"settings": {
|
||||
"show_time_in_tray": false,
|
||||
"show_long_time_in_tray": false,
|
||||
"allow_disabling": true,
|
||||
"disable_options": [{
|
||||
"time": 30,
|
||||
|
|
|
@ -131,6 +131,16 @@ class SafeEyesCore:
|
|||
logging.debug("Postpone the break for %d seconds", self.postpone_duration)
|
||||
self.context['postponed'] = True
|
||||
|
||||
def get_break_time(self, break_type = None):
|
||||
"""
|
||||
Returns the next break time
|
||||
"""
|
||||
break_obj = self.break_queue.get_break(break_type)
|
||||
if not break_obj:
|
||||
return False
|
||||
time = self.scheduled_next_break_time + datetime.timedelta(minutes=break_obj.time - self.break_queue.get_break().time)
|
||||
return time
|
||||
|
||||
def take_break(self, break_type = None):
|
||||
"""
|
||||
Calling this method stops the scheduler and show the next break screen
|
||||
|
|
|
@ -120,8 +120,12 @@ class BreakQueue:
|
|||
return self.__current_break
|
||||
|
||||
if break_type == BreakType.LONG_BREAK:
|
||||
if self.__long_queue is None:
|
||||
return None;
|
||||
return self.__long_queue[self.__current_long]
|
||||
|
||||
if self.__short_queue is None:
|
||||
return None;
|
||||
return self.__short_queue[self.__current_short]
|
||||
|
||||
def is_long_break(self):
|
||||
|
|
|
@ -18,6 +18,12 @@
|
|||
"type": "BOOL",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"id": "show_long_time_in_tray",
|
||||
"label": "Show only long breaks for tray icon time",
|
||||
"type": "BOOL",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"id": "allow_disabling",
|
||||
"label": "Allow disabling Safe Eyes",
|
||||
|
@ -48,4 +54,4 @@
|
|||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,6 +57,7 @@ class TrayIcon:
|
|||
self.on_disable = context['api']['disable_safeeyes']
|
||||
self.take_break = context['api']['take_break']
|
||||
self.has_breaks = context['api']['has_breaks']
|
||||
self.get_break_time = context['api']['get_break_time']
|
||||
self.plugin_config = plugin_config
|
||||
self.date_time = None
|
||||
self.active = True
|
||||
|
@ -126,7 +127,7 @@ class TrayIcon:
|
|||
# Add the sub menu to the enable/disable menu
|
||||
self.item_disable.set_submenu(self.sub_menu_disable)
|
||||
|
||||
# Settings menu item
|
||||
# Manual break menu item
|
||||
self.item_manual_break = Gtk.MenuItem()
|
||||
|
||||
self.sub_menu_manual_next_break = Gtk.MenuItem()
|
||||
|
@ -215,7 +216,7 @@ class TrayIcon:
|
|||
self.indicator.set_label('', '')
|
||||
self.indicator.set_icon("io.github.slgobinath.SafeEyes-disabled")
|
||||
else:
|
||||
self.item_info.set_label(_('No Breaks Available'))
|
||||
self.item_info.set_label(_('No breaks available'))
|
||||
self.indicator.set_label('', '')
|
||||
self.indicator.set_icon("io.github.slgobinath.SafeEyes-disabled")
|
||||
self.item_info.set_sensitive(breaks_found and self.active)
|
||||
|
@ -282,13 +283,25 @@ class TrayIcon:
|
|||
"""
|
||||
A private method to be called within this class to update the next break information using self.dateTime.
|
||||
"""
|
||||
formatted_time = utility.format_time(self.date_time)
|
||||
message = _('Next break at %s') % (formatted_time)
|
||||
formatted_time = utility.format_time(self.get_break_time())
|
||||
long_time = self.get_break_time(BreakType.LONG_BREAK)
|
||||
|
||||
if long_time:
|
||||
long_time = utility.format_time(long_time)
|
||||
if long_time == formatted_time:
|
||||
message = _('Next long break at %s') % (long_time)
|
||||
else:
|
||||
message = _('Next breaks at %s/%s') % (formatted_time, long_time)
|
||||
else:
|
||||
message = _('Next break at %s') % (formatted_time)
|
||||
|
||||
# Update the menu item label
|
||||
utility.execute_main_thread(self.item_info.set_label, message)
|
||||
|
||||
# Update the tray icon label
|
||||
if self.plugin_config.get('show_time_in_tray', False):
|
||||
self.indicator.set_label(formatted_time, '')
|
||||
show_long = long_time and self.plugin_config.get('show_long_time_in_tray', False)
|
||||
self.indicator.set_label(long_time if show_long else formatted_time, '')
|
||||
else:
|
||||
self.indicator.set_label('', '')
|
||||
|
||||
|
|
|
@ -96,6 +96,7 @@ class SafeEyes:
|
|||
self.context['api']['take_break'] = self.take_break
|
||||
self.context['api']['has_breaks'] = self.safe_eyes_core.has_breaks
|
||||
self.context['api']['postpone'] = self.safe_eyes_core.postpone
|
||||
self.context['api']['get_break_time'] = self.safe_eyes_core.get_break_time
|
||||
self.plugins_manager.init(self.context, self.config)
|
||||
atexit.register(self.persist_session)
|
||||
|
||||
|
|
Loading…
Reference in New Issue