Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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()