window: Bind size to GSettings

This commit is contained in:
Jamie Gravendeel
2025-11-30 21:35:57 +01:00
parent 801c6583af
commit 39162e72a3
4 changed files with 21 additions and 4 deletions

View File

@@ -17,9 +17,10 @@ gi.require_versions({
from gi.repository import Gio, GLib
from .config import LOCALEDIR, PKGDATADIR
from .config import APP_ID, LOCALEDIR, PKGDATADIR
DATA_DIR = Path(GLib.get_user_data_dir(), "cartridges")
state_settings = Gio.Settings.new(f"{APP_ID}.State")
_RESOURCES = ("data", "icons", "ui")

View File

@@ -4,8 +4,6 @@ using Adw 1;
template $Window: Adw.ApplicationWindow {
title: _("Cartridges");
default-width: 920;
default-height: 700;
ShortcutController {
Shortcut {

View File

@@ -10,7 +10,7 @@ from typing import Any
from gi.repository import Adw, Gdk, Gio, GLib, GObject, Gtk
from cartridges import games
from cartridges import games, state_settings
from cartridges.config import PREFIX, PROFILE
from cartridges.games import Game
@@ -54,6 +54,13 @@ class Window(Adw.ApplicationWindow):
if PROFILE == "development":
self.add_css_class("devel")
for key, name in {
"width": "default-width",
"height": "default-height",
"is-maximized": "maximized",
}.items():
state_settings.bind(key, self, name, Gio.SettingsBindFlags.DEFAULT)
# https://gitlab.gnome.org/GNOME/gtk/-/issues/7901
self.search_entry.set_key_capture_widget(self)
self.sorter.set_sort_func(self._sort_func)

View File

@@ -2,4 +2,15 @@
<schemalist gettext-domain="cartridges">
<schema id="@APP_ID@" path="@PREFIX@/">
</schema>
<schema id="@APP_ID@.State" path="@PREFIX@/State/">
<key name="width" type="i">
<default>920</default>
</key>
<key name="height" type="i">
<default>700</default>
</key>
<key name="is-maximized" type="b">
<default>false</default>
</key>
</schema>
</schemalist>