Preselect selected runner when adding games (Fixes #408)

This commit is contained in:
Mathieu Comandon 2016-10-17 15:03:32 -07:00
parent 81dbe63294
commit e699f9b0c9
3 changed files with 14 additions and 7 deletions

View file

@ -166,7 +166,7 @@ class GameDialogCommon(object):
runner_dropdown = Gtk.ComboBox.new_with_model(runner_liststore)
runner_dropdown.set_id_column(1)
runner_index = 0
if self.game:
if self.runner_name:
for runner in runner_liststore:
if self.runner_name == str(runner[1]):
break
@ -412,7 +412,7 @@ class GameDialogCommon(object):
class AddGameDialog(Dialog, GameDialogCommon):
"""Add game dialog class."""
def __init__(self, parent, game=None, callback=None):
def __init__(self, parent, game=None, runner=None, callback=None):
super(AddGameDialog, self).__init__("Add a new game", parent=parent)
self.game = game
self.saved = False
@ -422,7 +422,7 @@ class AddGameDialog(Dialog, GameDialogCommon):
self.runner_name = game.runner_name
self.slug = game.slug
else:
self.runner_name = None
self.runner_name = runner
self.slug = None
self.game_config_id = self.get_config_id()

View file

@ -133,7 +133,8 @@ class InstallerDialog(Gtk.Window):
game_data = pga.get_game_by_field(self.game_ref, 'slug')
game = Game(game_data['id'])
AddGameDialog(
self.parent.window, game,
self.parent.window,
game=game,
callback=lambda: self.notify_install_success(game_data['id'])
)
elif dlg.result == dlg.NEW_INSTALLER:

View file

@ -57,6 +57,7 @@ class LutrisWindow(Gtk.Application):
self.game_selection_time = 0
self.game_launch_time = 0
self.last_selected_game = None
self.selected_runner = None
self.builder = Gtk.Builder()
self.builder.add_from_file(ui_filename)
@ -607,7 +608,10 @@ class LutrisWindow(Gtk.Application):
self.sidebar_treeview.update()
game = Game(self.view.selected_game)
AddGameDialog(self.window, game, callback=lambda: on_game_added(game))
AddGameDialog(self.window,
game=game,
runner=self.selected_runner,
callback=lambda: on_game_added(game))
def on_view_game_log_activate(self, widget):
if not self.running_game:
@ -623,6 +627,7 @@ class LutrisWindow(Gtk.Application):
"""Add a new game manually with the AddGameDialog."""
dialog = AddGameDialog(
self.window,
runner=self.selected_runner,
callback=lambda: self.add_game_to_view(dialog.game.id)
)
return True
@ -743,9 +748,10 @@ class LutrisWindow(Gtk.Application):
self.sidebar_paned.set_position(0)
def on_sidebar_changed(self, widget):
self.selected_runner = widget.get_selected_runner()
if self.current_view_type == 'grid':
self.view.filter_runner = widget.get_selected_runner()
self.view.filter_runner = self.selected_runner
self.view.invalidate_filter()
else:
self.game_store.filter_runner = widget.get_selected_runner()
self.game_store.filter_runner = self.selected_runner
self.game_store.modelfilter.refilter()