diff --git a/.gitignore b/.gitignore index 5b216fc09..3c5478ff6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +/data/ui/LutrisWindow.ui~ nbproject build .project diff --git a/data/ui/LutrisWindow.ui b/data/ui/LutrisWindow.ui index 4dc2d0d3c..89aee4d02 100644 --- a/data/ui/LutrisWindow.ui +++ b/data/ui/LutrisWindow.ui @@ -124,10 +124,10 @@ True False - + True False - Icons + Grid True True True @@ -141,7 +141,7 @@ List True True - iconview_menuitem + gridview_menuitem diff --git a/lutris/gui/lutriswindow.py b/lutris/gui/lutriswindow.py index 8307e33d1..26a49dd1b 100644 --- a/lutris/gui/lutriswindow.py +++ b/lutris/gui/lutriswindow.py @@ -26,16 +26,16 @@ from lutris.gui.config_dialogs import ( AddGameDialog, EditGameConfigDialog, SystemConfigDialog ) from lutris.gui.widgets import ( - GameTreeView, GameIconView, ContextualMenu + GameListView, GameGridView, ContextualMenu ) def load_view(view, games=[], filter_text=None, icon_type=None): - if view == 'icon': - view = GameIconView(games, filter_text=filter_text, + if view == 'grid': + view = GameGridView(games, filter_text=filter_text, icon_type=icon_type) elif view == 'list': - view = GameTreeView(games, filter_text=filter_text, + view = GameListView(games, filter_text=filter_text, icon_type=icon_type) return view @@ -66,7 +66,7 @@ class LutrisWindow(object): width = int(settings.read_setting('width') or 800) height = int(settings.read_setting('height') or 600) self.window_size = (width, height) - view_type = settings.read_setting('view_type') or settings.GAME_VIEW + view_type = self.get_view_type() self.icon_type = self.get_icon_type(view_type) filter_installed_setting = settings.read_setting( 'filter_installed' @@ -85,13 +85,13 @@ class LutrisWindow(object): self.main_box = self.builder.get_object('main_box') self.splash_box = self.builder.get_object('splash_box') # View menu - self.icon_view_menuitem = self.builder.get_object("iconview_menuitem") - self.icon_view_menuitem.set_active(view_type == 'icon') + self.grid_view_menuitem = self.builder.get_object("gridview_menuitem") + self.grid_view_menuitem.set_active(view_type == 'grid') self.list_view_menuitem = self.builder.get_object("listview_menuitem") self.list_view_menuitem.set_active(view_type == 'list') # View buttons - self.icon_view_btn = self.builder.get_object('switch_grid_view_btn') - self.icon_view_btn.set_active(view_type == 'icon') + self.grid_view_btn = self.builder.get_object('switch_grid_view_btn') + self.grid_view_btn.set_active(view_type == 'grid') self.list_view_btn = self.builder.get_object('switch_list_view_btn') self.list_view_btn.set_active(view_type == 'list') # Icon type menu @@ -101,7 +101,7 @@ class LutrisWindow(object): self.banner_menuitem = self.builder.get_object('banner_menuitem') self.banner_menuitem.set_active(self.icon_type == 'banner') self.icon_menuitem = self.builder.get_object('icon_menuitem') - self.icon_menuitem.set_active(self.icon_type == 'icon') + self.icon_menuitem.set_active(self.icon_type == 'grid') self.search_entry = self.builder.get_object('search_entry') @@ -157,8 +157,8 @@ class LutrisWindow(object): @property def current_view_type(self): - return 'icon' \ - if self.view.__class__.__name__ == "GameIconView" \ + return 'grid' \ + if self.view.__class__.__name__ == "GameGridView" \ else 'list' def switch_splash_screen(self): @@ -183,14 +183,20 @@ class LutrisWindow(object): self.view.connect("game-selected", self.game_selection_changed) self.window.connect("configure-event", self.get_size) + def get_view_type(self): + view_type = settings.read_setting('view_type') + if view_type in ['grid', 'list']: + return view_type + return settings.GAME_VIEW + def get_icon_type(self, view_type): """Return the icon style depending on the type of view.""" - if view_type == 'icon': - icon_type = settings.read_setting('icon_type_iconview') - default = settings.ICON_TYPE_ICONVIEW - elif view_type == 'list': + if view_type == 'list': icon_type = settings.read_setting('icon_type_listview') default = settings.ICON_TYPE_LISTVIEW + else: + icon_type = settings.read_setting('icon_type_gridview') + default = settings.ICON_TYPE_GRIDVIEW if icon_type not in ("banner_small", "banner", "icon"): icon_type = default return icon_type @@ -249,7 +255,7 @@ class LutrisWindow(object): def on_destroy(self, *args): """Signal for window close.""" - view_type = 'icon' if 'IconView' in str(type(self.view)) else 'list' + view_type = 'grid' if 'GridView' in str(type(self.view)) else 'list' settings.write_setting('view_type', view_type) width, height = self.window_size settings.write_setting('width', width) @@ -376,23 +382,23 @@ class LutrisWindow(object): EditGameConfigDialog(self, game) def on_viewmenu_toggled(self, menuitem): - view_type = 'icon' if menuitem.get_active() else 'list' + view_type = 'grid' if menuitem.get_active() else 'list' if view_type == self.current_view_type: return self.switch_view(view_type) - self.icon_view_btn.set_active(view_type == 'icon') + self.grid_view_btn.set_active(view_type == 'grid') self.list_view_btn.set_active(view_type == 'list') def on_viewbtn_toggled(self, widget): - view_type = 'icon' if widget.get_active() else 'list' + view_type = 'grid' if widget.get_active() else 'list' if view_type == self.current_view_type: return self.switch_view(view_type) - self.icon_view_menuitem.set_active(view_type == 'icon') + self.grid_view_menuitem.set_active(view_type == 'grid') self.list_view_menuitem.set_active(view_type == 'list') def switch_view(self, view_type): - """Switche between icon view and list view.""" + """Switch between grid view and list view.""" logger.debug("Switching view") self.icon_type = self.get_icon_type(view_type) self.view.destroy() @@ -420,8 +426,8 @@ class LutrisWindow(object): icon_type = menuitem.get_name() if icon_type == self.view.icon_type or not menuitem.get_active(): return - if self.current_view_type == 'icon': - settings.write_setting('icon_type_iconview', icon_type) + if self.current_view_type == 'grid': + settings.write_setting('icon_type_gridview', icon_type) elif self.current_view_type == 'list': settings.write_setting('icon_type_listview', icon_type) self.switch_view(self.current_view_type) diff --git a/lutris/gui/widgets.py b/lutris/gui/widgets.py index cf07603a6..68c6fc3ac 100644 --- a/lutris/gui/widgets.py +++ b/lutris/gui/widgets.py @@ -124,9 +124,9 @@ class ContextualMenu(Gtk.Menu): event.button, event.time) -class IconViewCellRenderer(Gtk.CellRendererText): +class GridViewCellRenderer(Gtk.CellRendererText): def __init__(self, width=None, *args, **kwargs): - super(IconViewCellRenderer, self).__init__(*args, **kwargs) + super(GridViewCellRenderer, self).__init__(*args, **kwargs) self.props.alignment = Pango.Alignment.CENTER self.props.wrap_mode = Pango.WrapMode.WORD self.props.xalign = 0.5 @@ -198,7 +198,7 @@ class GameView(object): self.remove_row(row.iter) def remove_row(self, model_iter): - """Remove a game from the treeview.""" + """Remove a game from the view.""" store = self.game_store.store store.remove(model_iter) @@ -224,7 +224,7 @@ class GameView(object): return try: view.current_path = view.get_path_at_pos(event.x, event.y) - if type(view) is GameIconView and view.current_path: + if type(view) is GameGridView and view.current_path: view.select_path(view.current_path) except ValueError: (_, path) = view.get_selection().get_selected() @@ -234,7 +234,7 @@ class GameView(object): self.contextual_menu.popup(event, game_row) -class GameTreeView(Gtk.TreeView, GameView): +class GameListView(Gtk.TreeView, GameView): """Show the main list of games.""" __gsignals__ = GameView.__gsignals__ @@ -244,7 +244,7 @@ class GameTreeView(Gtk.TreeView, GameView): self.game_store = GameStore(games, icon_type=icon_type, filter_text=self.filter_text) self.model = self.game_store.modelfilter.sort_new_with_model() - super(GameTreeView, self).__init__(self.model) + super(GameListView, self).__init__(self.model) self.set_rules_hint(True) # Icon column @@ -297,7 +297,7 @@ class GameTreeView(Gtk.TreeView, GameView): self.emit("game-selected") -class GameIconView(Gtk.IconView, GameView): +class GameGridView(Gtk.IconView, GameView): __gsignals__ = GameView.__gsignals__ icon_padding = 1 @@ -307,15 +307,15 @@ class GameIconView(Gtk.IconView, GameView): self.game_store = GameStore(games, icon_type=icon_type, filter_text=self.filter_text) self.model = self.game_store.modelfilter - super(GameIconView, self).__init__(model=self.model) + super(GameGridView, self).__init__(model=self.model) self.set_columns(1) self.set_column_spacing(1) self.set_pixbuf_column(COL_ICON) self.cell_width = BANNER_SIZE[0] if icon_type == "banner" \ else BANNER_SMALL_SIZE[0] - iconview_cell_renderer = IconViewCellRenderer(width=self.cell_width) - self.pack_end(iconview_cell_renderer, False) - self.add_attribute(iconview_cell_renderer, 'markup', COL_NAME) + gridview_cell_renderer = GridViewCellRenderer(width=self.cell_width) + self.pack_end(gridview_cell_renderer, False) + self.add_attribute(gridview_cell_renderer, 'markup', COL_NAME) self.set_item_padding(self.icon_padding) self.connect('item-activated', self.on_item_activated) diff --git a/lutris/settings.py b/lutris/settings.py index e40fe11e4..d68a5ce44 100644 --- a/lutris/settings.py +++ b/lutris/settings.py @@ -36,8 +36,8 @@ LIB64_URL = SITE_URL + "files/lib64/" # Default config options KEEP_CACHED_ASSETS = True -GAME_VIEW = 'icon' -ICON_TYPE_ICONVIEW = 'banner' +GAME_VIEW = 'grid' +ICON_TYPE_GRIDVIEW = 'banner' ICON_TYPE_LISTVIEW = 'icon' read_setting = sio.read_setting