mirror of
https://github.com/lutris/lutris
synced 2024-10-14 11:42:36 +00:00
Preselect selected runner when adding games (Fixes #408)
This commit is contained in:
parent
81dbe63294
commit
e699f9b0c9
|
@ -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()
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in a new issue