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