def update_time_status(self): now = int(time.time()) melapsed_time = now - self.start_time self.dbus_manager.elapsed_time_changed(melapsed_time) time_elapsed_str = "%0.2d:%0.2d:%0.2d" % humanize_time(melapsed_time) if self.time: mleft_time = self.time - melapsed_time if mleft_time <= 0: self.check_more_time() return self.dbus_manager.left_time_changed(mleft_time) time_left_str = "%0.2d:%0.2d:%0.2d" % humanize_time(mleft_time) time_left_per = float(mleft_time) / float(self.time) time_elapsed_per = float(melapsed_time) / float(self.time) if time_left_per <= 0.1 and pynotify: #TODO: Change if not self.notification: self.notification = pynotify.Notification(_("Time is running out"), _("With just %s\n" "Save your work session that soon will be finalized") % time_left_str, "dialog-warning") self.notification.set_urgency(pynotify.URGENCY_CRITICAL) self.notification.set_timeout(1000) self.notification.attach_to_status_icon(self.tray_icon) self.notification.show() else: self.notification.update(_("Time is running out"), _("With just %s\n" "Save your work session that soon will be finalized") % time_left_str, "dialog-warning") self.notification.set_urgency(pynotify.URGENCY_CRITICAL) self.notification.set_timeout(1000) self.notification.show() else: time_left_str = _("None") time_left_per = 0 time_elapsed_per = 0 self.elapsed_pb.set_text(time_elapsed_str) self.elapsed_pb.set_fraction(time_elapsed_per) self.remaining_pb.set_text(time_left_str) self.remaining_pb.set_fraction(time_left_per) self.update_time_handler_id = gobject.timeout_add(1000, self.update_time_status)
def unblock(self, time): # Execute a pre unblock script self.script_manager.pre_unblock() self.blocked = False self.reset_widgets() self.elapsed_time = 0 self.left_time = 0 self.update_time = None self.time = time self.show_window_menu.set_active(True) self.main_window.show() if self.time: time_str = "%0.2d:%0.2d:%0.2d" % humanize_time(self.time) self.time_str.set_text(time_str) else: self.time_str.set_text(_("Unlimited")) if self.cleanup_apps_id > 0: gobject.source_remove(self.cleanup_apps_id) self.cleanup_apps_id = 0 self.start_monitory_status() self.login_window.unlock(None) # execute a pos unblock script self.script_manager.pos_unblock()