diff --git a/.quickly b/.quickly deleted file mode 100644 index e55b4141c..000000000 --- a/.quickly +++ /dev/null @@ -1,4 +0,0 @@ -project = lutris -template = ubuntu-application -lp_id = lutris -version = 11.10 diff --git a/bin/lutris b/bin/lutris index 7de35de93..514079641 100755 --- a/bin/lutris +++ b/bin/lutris @@ -47,7 +47,7 @@ except ImportError: from lutris.constants import CONFIG_EXTENSION, GAME_CONFIG_PATH from lutris.util.log import logger from lutris.installer import InstallerDialog -from lutris.config import check_config +from lutris.config import check_config, register_handler from lutris.game import LutrisGame from lutris.pga import get_games from lutris.gui.lutriswindow import LutrisWindow @@ -89,6 +89,7 @@ check_config(force_wipe=False) installer = False game = None +register_handler() signal.signal(signal.SIGINT, signal.SIG_DFL) GObject.threads_init() diff --git a/data/apps.lutris.gschema.xml b/data/apps.lutris.gschema.xml new file mode 100644 index 000000000..e725e26e9 --- /dev/null +++ b/data/apps.lutris.gschema.xml @@ -0,0 +1,20 @@ + + + + + 'lutris "%s"' + The command to handle lutris scheme URLs + The command to handle lutris scheme URLs. + + + false + Whether command to handle lutris scheme URLs needs a terminal + Whether command to handle lutris scheme URLs needs a terminal. + + + true + Whether command to handle lutris scheme URLs is enabled + Whether command to handle lutris scheme URLs is enabled. + + + diff --git a/lutris.desktop b/lutris.desktop index d1290faef..602aebc60 100644 --- a/lutris.desktop +++ b/lutris.desktop @@ -7,4 +7,4 @@ Exec=lutris %U Icon=lutris Terminal=false Type=Application -MimeType=application/x-lutris;x-scheme-handler/lutris; +MimeType=x-scheme-handler/lutris; diff --git a/lutris/config.py b/lutris/config.py index 2d0f8c5a4..d578a7570 100644 --- a/lutris/config.py +++ b/lutris/config.py @@ -18,28 +18,26 @@ """Handle the basic configuration of Lutris.""" import os +import sys import yaml import logging from os.path import join +from gi.repository import Gio + from lutris import pga from lutris.util.log import logger from lutris.util.strings import slugify -from lutris.gconf import GConfSetting from lutris.settings import PGA_DB, CONFIG_DIR, DATA_DIR, CACHE_DIR def register_handler(): """ Register the lutris: protocol to open with the application. """ logger.info("registering protocol") - defaults = (('/desktop/gnome/url-handlers/lutris/command', "lutris '%s'"), - ('/desktop/gnome/url-handlers/lutris/enabled', True), - ('/desktop/gnome/url-handlers/lutris/needs-terminal', False),) - - for key, value in defaults: - logger.debug("registering gconf key %s" % key) - setting = GConfSetting(key, type(value)) - setting.set_key(key, value, override_type=True) + executable = os.path.abspath(sys.argv[0]) + base_key = "desktop.gnome.url-handlers.lutris" + settings = Gio.Settings.new(base_key) + settings.set_string('command', executable) def check_config(force_wipe=False): diff --git a/lutris/downloader.py b/lutris/downloader.py index e76a47967..9b7917223 100644 --- a/lutris/downloader.py +++ b/lutris/downloader.py @@ -66,6 +66,5 @@ class Downloader(): Gio.Cancellable(), self.mount_cb, None) - else: GLib.idle_add(self.schedule_download) diff --git a/lutris/gui/lutriswindow.py b/lutris/gui/lutriswindow.py index cedc213a4..a25c00d30 100644 --- a/lutris/gui/lutriswindow.py +++ b/lutris/gui/lutriswindow.py @@ -3,6 +3,7 @@ import os import json + from gi.repository import Gtk, GLib #from lutris.util import log diff --git a/lutris/installer.py b/lutris/installer.py index 60b77c661..8162ad688 100644 --- a/lutris/installer.py +++ b/lutris/installer.py @@ -269,6 +269,8 @@ class ScriptInterpreter(object): if not os.path.exists(src): self.errors.append("I can't move %s, it does not exist" % src) return False + if not os.path.exists(dst): + os.makedirs(dst) target = os.path.join(dst, os.path.basename(src)) if os.path.exists(target): self.errors.append("Destination %s already exists" % target) diff --git a/lutris/settings.py b/lutris/settings.py index e7d1e66d4..c7c8b2897 100644 --- a/lutris/settings.py +++ b/lutris/settings.py @@ -32,6 +32,8 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . """ +## Default config options +KEEP_CACHED_ASSETS = True ## Paths CONFIG_DIR = os.path.join(BaseDirectory.xdg_config_home, 'lutris')