def update_ui(self): self.set_styles() """ update the ui and install a timeout to redraw when the ui should be updated next this is if the day ends and the day starts """ if(self._timeout_redraw != -1): gobject.source_remove(self._timeout_redraw) nextdraw_micro = get_timeout_add_time(datetime.datetime.combine(self.date,datetime.time())) if(nextdraw_micro > 0): self._timeout_redraw = gobject.timeout_add(nextdraw_micro, self.update_ui) nextdraw_micro = get_timeout_add_time( datetime.datetime.combine(self.date,datetime.time()) + datetime.timedelta(days=1) ) if(nextdraw_micro > 0): self._timeout_redraw = gobject.timeout_add(nextdraw_micro, self.update_ui) gobject.idle_add(self.queue_draw) return False
def update_ui(self): if(self._timeout_redraw != -1): gobject.source_remove(self._timeout_redraw) if self.event.is_visible(): self.show() else: self.hide() return if(not self.event.is_today()): self.time_info.hide() else: self.time_info.show() if(not self.event.is_all_day()): ppart = "" t = template #if self.event.is_now(): # progress = self.event.get_progress() # ppart = "%s " % PROGRESS_INCICATOR[int(progress*len(PROGRESS_INCICATOR))] if self.event.is_past(): #print "%s is in the past for today" % self.event t = template_past self.time_label.set_markup(t % (ppart,self.start_time)) self.name_label.set_markup('%s' % self.get_title_string()) self.time_info.set_markup(self.getDurationMarkup()) #determine the next update time if(self.event.is_past()): nud = -1 if(self.event.is_now()): nud = self.event.get_next_end() """ if(not self.event.is_all_day()): progress = self.event.get_progress() #print len(PROGRESS_INCICATOR) #print progress step = 1+ int(progress*len(PROGRESS_INCICATOR)) update_interval = datetime.timedelta(seconds=self.event.get_dur_sec() / float(len(PROGRESS_INCICATOR))) #print "updates are every %s" % update_interval #print "now we are at position %s" % step nud = self.event.start_time + update_interval * step """ else: nud = self.event.start_time milli = get_timeout_add_time( nud ) if(milli > 0): #print "Installing timeout for %s: %s" % (self.event,nud) self._timeout_redraw = gobject.timeout_add(milli+50, self.update_ui) dtext = [] if(self.event.is_all_day()): if(self.event.duration.days >= 1): time_i = ("<small>%s</small>" % _("<i>until %s</i>") % (getDateLong(self.event.end_time))) else: time_i = ("<small><i>%s - %s</i></small>" % (self.getHourMinuteMarkup(self.event.start_time), self.getHourMinuteMarkup(self.event.end_time))) dtext.append("<b>%s</b> %s" % (gobject.markup_escape_text(self.event.title),time_i )) if(self.event.place): dtext.append("<b>%s:</b> %s" %(_("Where"), gobject.markup_escape_text(self.event.place))) pass if(self.event.comment): dtext.append("<i>%s</i>" % ( gobject.markup_escape_text(self.event.comment)) ) pass dtext.append("<b>%s:</b> <i>%s</i>" % (_("Calendar"), gobject.markup_escape_text(self.event.calendar.get_name()))) #dtext.append("<tt>%s</tt>" % gobject.markup_escape_text(self.event.debug_info())) self.dtext = "\n".join(dtext) if self.details_label: self.details_label.set_markup(self.dtext) return False