Example #1
0
	def get_pixbuf (self, size, framed, flags):
		cover = self.gameinfo.get_property("cover")
		cache = CoverDrawer()
		
		# Try to load/download the cover
		if cover:
			cached = CachedResource(Environement.save_cover_path())
			lcover = cached.get_resource(cover.get_front())
			
			try:
				pixbuf = GdkPixbuf.Pixbuf.new_from_file(lcover)
			except:
				pixbuf = None
			
			if pixbuf:
				if framed:
					return cache.get_framed_icon(pixbuf, size, size)
				else:
					return cache._get_icon(pixbuf, size, size)
		
		icon_theme = Gtk.IconTheme.get_default()
		
		#Try to load and return the icon.
		if self.gameinfo.get_property("icon"):
			icon_info = icon_theme.lookup_icon(self.gameinfo.get_property("icon").split(".")[0], size, flags)
			if icon_info:
				try:
					filename = icon_info.get_filename()
					pixbuf = GdkPixbuf.Pixbuf.new_from_file(filename)
				except:
					pixbuf = None
				
				if pixbuf:
					if framed:
						return cache.get_framed_icon(pixbuf, size, size)
					else:
						return cache._get_icon(pixbuf, size, size)
		
		return cache.make_default_icon(size, size)
Example #2
0
 def _update(self):
     info = self.game.get_info('*')
     
     # Set the cover
     cover_url = info.get_property('cover')
     cover_url = cover_url.get_front() if cover_url else None
     icon_name = info.get_property('icon')
     cover = self.coverdrawer.get_icon(cover_url, icon_name, self.cover_size, self.framed)
     self.ui.get_object('cover').set_from_pixbuf(cover)
     
     # Set the title
     title = info.get_property("title")
     title = title if title else "Unknown title"
     self.ui.get_object('title_label').set_markup(title)
     
     # Set the developers
     developers = info.get_developers ()
     developers = ", ".join(developers) if developers and len(developers) > 0 else "Unknown developers"
     self.ui.get_object('developers_label').set_markup(developers)
     
     # Set the release date
     date = info.get_property("release_date")
     if date and date.get_year ():
         year = str (date.get_year ())
         month = str (int (date.get_month ()))
         day = str (date.get_day ())
         
         self.ui.get_object('released_label_info').set_markup('/'.join ((day, month, year)))
     else:
         self.ui.get_object('released_label_info').set_markup('----')
     
     # Set the genres
     genres = info.get_genres()
     if genres and len(genres) > 0:
         self.ui.get_object('genres_label_info').set_markup(', '.join(genres))
     else:
         self.ui.get_object('genres_label_info').set_markup('----')
     
     # Set the play informations
     duration = self.playinfo.get_usage_duration ()
     last_play = self.playinfo.get_last_usage ()
     if duration > 0:
         self.ui.get_object('play_duration_label_info').set_markup(duration_to_string(duration))
         self.ui.get_object('last_play_label_info').set_markup(time_to_string(last_play))
     else:
         self.ui.get_object('play_duration_label_info').set_markup('--:--')
         self.ui.get_object('last_play_label_info').set_markup('--:--')
     
     # Set the screenshots
     screenshots = info.get_screenshots()
     for s in screenshots:
         cached = CachedResource(Environement.save_screenshots_path())
         s = cached.get_resource(s)
         self.screenshots.add_from_file(s)
     
     # Set the local players number
     players = info.get_property("local_players")
     if players:
         min = players.get_lower_endpoint ()
         max = players.get_upper_endpoint ()
         players = str(min) if min == max else str(min) + '-' + str(max)
         
         self.ui.get_object('local_players_info').set_markup(players)
     else:
         self.ui.get_object('local_players_info').set_markup('-')
     
     # Set the online players number
     online = info.get_property("online_players")
     if online:
         min = online.get_lower_endpoint ()
         max = online.get_upper_endpoint ()
         online = str(min) if min == max else str(min) + '-' + str(max)
         
         self.ui.get_object('online_players_info').set_markup(online)
     else:
         self.ui.get_object('online_players_info').set_markup('-')
     
     # Set the description
     description = info.get_property("description")
     if description:
         self.ui.get_object('description_label_info').set_markup(description)
     else:
         self.ui.get_object('description_label_info').set_markup('----')