Replace subtitles with paths in settings

This commit is contained in:
kramo
2023-05-21 12:46:49 +02:00
parent 1b5080b0c6
commit 1db5a15c33
2 changed files with 31 additions and 12 deletions

View File

@@ -76,9 +76,8 @@ template $PreferencesWindow : Adw.PreferencesWindow {
title: _("Steam"); title: _("Steam");
show-enable-switch: true; show-enable-switch: true;
Adw.ActionRow { Adw.ActionRow steam_action_row {
title: _("Steam Install Location"); title: _("Steam Install Location");
subtitle: _("The data directory for your Steam installation");
Button steam_file_chooser_button { Button steam_file_chooser_button {
icon-name: "folder-symbolic"; icon-name: "folder-symbolic";
@@ -91,9 +90,8 @@ template $PreferencesWindow : Adw.PreferencesWindow {
title: _("Lutris"); title: _("Lutris");
show-enable-switch: true; show-enable-switch: true;
Adw.ActionRow { Adw.ActionRow lutris_action_row {
title: _("Lutris Install Location"); title: _("Lutris Install Location");
subtitle: _("Directory to use when importing games");
Button lutris_file_chooser_button { Button lutris_file_chooser_button {
icon-name: "folder-symbolic"; icon-name: "folder-symbolic";
@@ -101,9 +99,8 @@ template $PreferencesWindow : Adw.PreferencesWindow {
} }
} }
Adw.ActionRow { Adw.ActionRow lutris_cache_action_row {
title: _("Lutris Cache Location"); title: _("Lutris Cache Location");
subtitle: _("Directory to use when importing game covers");
Button lutris_cache_file_chooser_button { Button lutris_cache_file_chooser_button {
icon-name: "folder-symbolic"; icon-name: "folder-symbolic";
@@ -125,9 +122,8 @@ template $PreferencesWindow : Adw.PreferencesWindow {
title: _("Heroic"); title: _("Heroic");
show-enable-switch: true; show-enable-switch: true;
Adw.ActionRow { Adw.ActionRow heroic_action_row {
title: _("Heroic Install Location"); title: _("Heroic Install Location");
subtitle: _("Directory to use when importing games");
Button heroic_file_chooser_button { Button heroic_file_chooser_button {
icon-name: "folder-symbolic"; icon-name: "folder-symbolic";
@@ -167,9 +163,8 @@ template $PreferencesWindow : Adw.PreferencesWindow {
title: _("Bottles"); title: _("Bottles");
show-enable-switch: true; show-enable-switch: true;
Adw.ActionRow { Adw.ActionRow bottles_action_row {
title: _("Bottles Install Location"); title: _("Bottles Install Location");
subtitle: _("Directory to use when importing games");
Button bottles_file_chooser_button { Button bottles_file_chooser_button {
icon-name: "folder-symbolic"; icon-name: "folder-symbolic";
@@ -182,9 +177,8 @@ template $PreferencesWindow : Adw.PreferencesWindow {
title: _("itch"); title: _("itch");
show-enable-switch: true; show-enable-switch: true;
Adw.ActionRow { Adw.ActionRow itch_action_row {
title: _("itch Install Location"); title: _("itch Install Location");
subtitle: _("Directory to use when importing games");
Button itch_file_chooser_button { Button itch_file_chooser_button {
icon-name: "folder-symbolic"; icon-name: "folder-symbolic";

View File

@@ -18,6 +18,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
import os import os
import re
from pathlib import Path from pathlib import Path
from gi.repository import Adw, Gio, GLib, Gtk from gi.repository import Adw, Gio, GLib, Gtk
@@ -47,23 +48,29 @@ class PreferencesWindow(Adw.PreferencesWindow):
remove_all_games_button = Gtk.Template.Child() remove_all_games_button = Gtk.Template.Child()
steam_expander_row = Gtk.Template.Child() steam_expander_row = Gtk.Template.Child()
steam_action_row = Gtk.Template.Child()
steam_file_chooser_button = Gtk.Template.Child() steam_file_chooser_button = Gtk.Template.Child()
lutris_expander_row = Gtk.Template.Child() lutris_expander_row = Gtk.Template.Child()
lutris_action_row = Gtk.Template.Child()
lutris_file_chooser_button = Gtk.Template.Child() lutris_file_chooser_button = Gtk.Template.Child()
lutris_cache_action_row = Gtk.Template.Child()
lutris_cache_file_chooser_button = Gtk.Template.Child() lutris_cache_file_chooser_button = Gtk.Template.Child()
lutris_import_steam_switch = Gtk.Template.Child() lutris_import_steam_switch = Gtk.Template.Child()
heroic_expander_row = Gtk.Template.Child() heroic_expander_row = Gtk.Template.Child()
heroic_action_row = Gtk.Template.Child()
heroic_file_chooser_button = Gtk.Template.Child() heroic_file_chooser_button = Gtk.Template.Child()
heroic_import_epic_switch = Gtk.Template.Child() heroic_import_epic_switch = Gtk.Template.Child()
heroic_import_gog_switch = Gtk.Template.Child() heroic_import_gog_switch = Gtk.Template.Child()
heroic_import_sideload_switch = Gtk.Template.Child() heroic_import_sideload_switch = Gtk.Template.Child()
bottles_expander_row = Gtk.Template.Child() bottles_expander_row = Gtk.Template.Child()
bottles_action_row = Gtk.Template.Child()
bottles_file_chooser_button = Gtk.Template.Child() bottles_file_chooser_button = Gtk.Template.Child()
itch_expander_row = Gtk.Template.Child() itch_expander_row = Gtk.Template.Child()
itch_action_row = Gtk.Template.Child()
itch_file_chooser_button = Gtk.Template.Child() itch_file_chooser_button = Gtk.Template.Child()
sgdb_key_group = Gtk.Template.Child() sgdb_key_group = Gtk.Template.Child()
@@ -121,6 +128,8 @@ class PreferencesWindow(Adw.PreferencesWindow):
if lutris_cache_exists(self.win, path): if lutris_cache_exists(self.win, path):
self.import_changed = True self.import_changed = True
self.set_subtitle(self, "lutris-cache")
else: else:
create_dialog( create_dialog(
self.win, self.win,
@@ -130,6 +139,8 @@ class PreferencesWindow(Adw.PreferencesWindow):
_("Set Location"), _("Set Location"),
).connect("response", response) ).connect("response", response)
self.set_subtitle(self, "lutris-cache")
self.lutris_cache_file_chooser_button.connect( self.lutris_cache_file_chooser_button.connect(
"clicked", self.choose_folder, set_cache_dir "clicked", self.choose_folder, set_cache_dir
) )
@@ -242,6 +253,16 @@ class PreferencesWindow(Adw.PreferencesWindow):
self.add_toast(self.toast) self.add_toast(self.toast)
def set_subtitle(self, win, source_id):
getattr(win, f'{source_id.replace("-", "_")}_action_row').set_subtitle(
# Remove the path if the dir is picked via the Faltpak portal
re.sub(
"/run/user/\\d*/doc/......../",
"",
str(Path(win.schema.get_string(f"{source_id}-location")).expanduser()),
)
)
def create_preferences(self, win, source_id, name, config=False): def create_preferences(self, win, source_id, name, config=False):
def set_dir(_source, result, *_args): def set_dir(_source, result, *_args):
try: try:
@@ -255,6 +276,8 @@ class PreferencesWindow(Adw.PreferencesWindow):
if globals()[f"{source_id}_installed"](win, path): if globals()[f"{source_id}_installed"](win, path):
self.import_changed = True self.import_changed = True
self.set_subtitle(win, source_id)
else: else:
create_dialog( create_dialog(
win, win,
@@ -267,6 +290,8 @@ class PreferencesWindow(Adw.PreferencesWindow):
_("Set Location"), _("Set Location"),
).connect("response", response) ).connect("response", response)
self.set_subtitle(win, source_id)
win.schema.bind( win.schema.bind(
source_id, source_id,
getattr(win, f"{source_id}_expander_row"), getattr(win, f"{source_id}_expander_row"),