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)
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('----')