List view: changed runner icon to game icon.

Default icon size is now defined in the view type's class.
This commit is contained in:
Pascal Reinhard 2012-09-17 11:50:29 +02:00
parent 8f0f3064a2
commit 2155dc48e3
2 changed files with 16 additions and 9 deletions

View file

@ -8,3 +8,5 @@ tags
.ropeproject .ropeproject
*.pyc *.pyc
PYSMELLTAGS PYSMELLTAGS
.eric4project
lutris.e4p

View file

@ -93,12 +93,12 @@ def icon_to_pixbuf(icon_path, size=128):
return pixbuf return pixbuf
def get_pixbuf_for_game(game): def get_pixbuf_for_game(game, icon_size):
runner_icon_path = os.path.join(get_data_path(), 'media/runner_icons', runner_icon_path = os.path.join(get_data_path(), 'media/runner_icons',
'%s.png' % game['runner']) '%s.png' % game['runner'])
game_icon_path = os.path.join(DATA_DIR, "icons", "%s.png" % game['id']) game_icon_path = os.path.join(DATA_DIR, "icons", "%s.png" % game['id'])
game_pix = icon_to_pixbuf(game_icon_path) game_pix = icon_to_pixbuf(game_icon_path, icon_size)
runner_pix = icon_to_pixbuf(runner_icon_path, 24) runner_pix = icon_to_pixbuf(runner_icon_path, icon_size)
return game_pix, runner_pix return game_pix, runner_pix
@ -113,6 +113,9 @@ class GameView(object):
contextual_menu = None contextual_menu = None
filter_text = "" filter_text = ""
games = [] games = []
def __init__(self):
self.icon_size = 32
def initialize_store(self, games): def initialize_store(self, games):
self.games = games if games else [] self.games = games if games else []
@ -131,7 +134,7 @@ class GameView(object):
def add_game(self, game): def add_game(self, game):
"""Adds a game into the icon view""" """Adds a game into the icon view"""
store = self.get_model() store = self.get_model()
game_pix, runner_pix = get_pixbuf_for_game(game) game_pix, runner_pix = get_pixbuf_for_game(game, self.icon_size)
label = "%s \n<small>%s</small>" % \ label = "%s \n<small>%s</small>" % \
(game['name'], game['runner']) (game['name'], game['runner'])
store.get_model().append((game["id"], label, game_pix, store.get_model().append((game["id"], label, game_pix,
@ -167,18 +170,19 @@ class GameTreeView(Gtk.TreeView, GameView):
def __init__(self, games): def __init__(self, games):
super(GameTreeView, self).__init__() super(GameTreeView, self).__init__()
self.icon_size = 32
self.initialize_store(games) self.initialize_store(games)
# Icon column # Icon column
image_cell = Gtk.CellRendererPixbuf() image_cell = Gtk.CellRendererPixbuf()
column = Gtk.TreeViewColumn("Runner", image_cell, column = Gtk.TreeViewColumn("", image_cell,
pixbuf=COL_RUNNER_ICON) pixbuf=COL_ICON)
self.append_column(column) self.append_column(column)
# Name column # Name column
text_cell = Gtk.CellRendererText() text_cell = Gtk.CellRendererText()
text_cell.set_property("ellipsize", Pango.EllipsizeMode.END) text_cell.set_property("ellipsize", Pango.EllipsizeMode.END)
column = Gtk.TreeViewColumn("Game", text_cell, markup=COL_NAME) column = Gtk.TreeViewColumn("Name", text_cell, markup=COL_NAME)
self.append_column(column) self.append_column(column)
self.get_selection().set_mode(Gtk.SelectionMode.SINGLE) self.get_selection().set_mode(Gtk.SelectionMode.SINGLE)
@ -215,12 +219,13 @@ class GameIconView(Gtk.IconView, GameView):
def __init__(self, games): def __init__(self, games):
super(GameIconView, self).__init__() super(GameIconView, self).__init__()
self.set_item_width(150)
self.set_spacing(21)
self.icon_size = 128
self.initialize_store(games) self.initialize_store(games)
self.set_markup_column(COL_NAME) self.set_markup_column(COL_NAME)
self.set_pixbuf_column(COL_ICON) self.set_pixbuf_column(COL_ICON)
self.set_item_width(150)
self.set_spacing(21)
self.connect('item-activated', self.on_item_activated) self.connect('item-activated', self.on_item_activated)
self.connect('selection-changed', self.on_selection_changed) self.connect('selection-changed', self.on_selection_changed)