Fixing rebase fuck ups, round 2

This commit is contained in:
Mathieu Comandon 2017-06-18 20:16:27 -07:00
commit f7c2955e36
6 changed files with 52 additions and 6 deletions

View file

@ -8,6 +8,7 @@ from gi.repository import GLib, Gtk, Gdk, GObject
from lutris import api, pga, runtime, settings
from lutris.gui.widgets.download_progress import DownloadProgressBox
from lutris.gui.widgets.dialogs import Dialog
from lutris.gui.logwindow import LogTextView
from lutris.util import datapath
from lutris.util.log import logger
@ -391,3 +392,33 @@ class WebConnectDialog(Dialog):
if uri.startswith(self.service.redirect_uri):
self.service.request_token(uri)
self.destroy()
class InstallerSourceDialog(Gtk.Dialog):
"""Show install script source"""
def __init__(self, code, name, parent):
Gtk.Dialog.__init__(self, "Install script for {}".format(name), parent=parent)
self.set_size_request(500, 350)
self.set_border_width(0)
self.scrolled_window = Gtk.ScrolledWindow()
self.scrolled_window.set_hexpand(True)
self.scrolled_window.set_vexpand(True)
source_buffer = Gtk.TextBuffer()
source_buffer.set_text(code)
source_box = LogTextView(source_buffer, autoscroll=False)
self.get_content_area().add(self.scrolled_window)
self.scrolled_window.add(source_box)
close_button = Gtk.Button("OK")
close_button.connect('clicked', self.on_close)
self.get_content_area().add(close_button)
self.show_all()
def on_close(self, *args):
self.destroy()

View file

@ -12,7 +12,7 @@ from lutris.installer import interpreter
from lutris.installer.errors import ScriptingError
from lutris.game import Game
from lutris.gui.config_dialogs import AddGameDialog
from lutris.gui.dialogs import NoInstallerDialog, DirectoryDialog
from lutris.gui.dialogs import NoInstallerDialog, DirectoryDialog, InstallerSourceDialog
from lutris.gui.widgets.download_progress import DownloadProgressBox
from lutris.gui.widgets.common import FileChooserEntry
from lutris.gui.logwindow import LogTextView
@ -90,6 +90,7 @@ class InstallerDialog(Gtk.Window):
self.action_buttons.add(self.cancel_button)
self.eject_button = self.add_button("_Eject", self.on_eject_clicked)
self.source_button = self.add_button("_View source", self.on_source_clicked)
self.install_button = self.add_button("_Install", self.on_install_clicked)
self.continue_button = self.add_button("_Continue")
self.play_button = self.add_button("_Launch game", self.launch_game)
@ -140,6 +141,7 @@ class InstallerDialog(Gtk.Window):
self.close_button.hide()
self.play_button.hide()
self.install_button.hide()
self.source_button.hide()
self.eject_button.hide()
self.choose_installer()
@ -260,6 +262,7 @@ class InstallerDialog(Gtk.Window):
if self.continue_handler:
self.continue_button.disconnect(self.continue_handler)
self.continue_button.hide()
self.source_button.show()
self.install_button.grab_focus()
self.install_button.show()
@ -286,6 +289,7 @@ class InstallerDialog(Gtk.Window):
def on_install_clicked(self, button):
"""Let the interpreter take charge of the next stages."""
button.hide()
self.source_button.hide()
self.interpreter.check_runner_install()
def ask_user_for_file(self, message):
@ -531,6 +535,13 @@ class InstallerDialog(Gtk.Window):
self.interpreter.revert()
self.destroy()
# -------------
# View Source
# -------------
def on_source_clicked(self, _button):
InstallerSourceDialog(self.interpreter.script_pretty, self.interpreter.game_name, self)
# -------------
# Utility stuff
# -------------

View file

@ -3,7 +3,7 @@ from lutris.gui.widgets.dialogs import Dialog
class LogTextView(Gtk.TextView):
def __init__(self, buffer):
def __init__(self, buffer, autoscroll=True):
super().__init__()
self.set_buffer(buffer)
@ -12,7 +12,8 @@ class LogTextView(Gtk.TextView):
self.set_left_margin(10)
self.set_wrap_mode(Gtk.WrapMode.CHAR)
self.get_style_context().add_class('lutris-logview')
self.connect("size-allocate", self.autoscroll)
if autoscroll:
self.connect("size-allocate", self.autoscroll)
def autoscroll(self, *args):
adj = self.get_vadjustment()

View file

@ -803,5 +803,4 @@ class LutrisWindow(Gtk.ApplicationWindow):
self.selected_platform = platform
self.game_store.filter_runner = self.selected_runner
self.game_store.filter_platform = self.selected_platform
self.game_store.modelfilter.refilter()
self.invalidate_game_filter()

View file

@ -8,6 +8,8 @@ import platform
from gi.repository import GLib
from json import dumps
from lutris import pga
from lutris import settings
from lutris.game import Game
@ -66,7 +68,9 @@ class ScriptInterpreter(CommandsMixin):
self.script = installer.get('script')
if not self.script:
raise ScriptingError("This installer doesn't have a 'script' section")
self.script_pretty = dumps(self.script, indent=4)
self.runners_to_install = []
self.prev_states = [] # Previous states for the Steam installer

View file

@ -12,7 +12,7 @@ from lutris.util.log import logger
class Request(object):
def __init__(self, url, timeout=30, stop_request=None,
thread_queue=None, headers=None, cookies=None):
thread_queue=None, headers={}, cookies=None):
if not url:
raise ValueError('An URL is required!')