diff --git a/cartridges/__init__.py b/cartridges/__init__.py index 5dbe7e0..9708cb2 100644 --- a/cartridges/__init__.py +++ b/cartridges/__init__.py @@ -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") diff --git a/cartridges/ui/window.blp b/cartridges/ui/window.blp index e652aa9..7fb7369 100644 --- a/cartridges/ui/window.blp +++ b/cartridges/ui/window.blp @@ -4,8 +4,6 @@ using Adw 1; template $Window: Adw.ApplicationWindow { title: _("Cartridges"); - default-width: 920; - default-height: 700; ShortcutController { Shortcut { diff --git a/cartridges/ui/window.py b/cartridges/ui/window.py index 9f97281..c10af5b 100644 --- a/cartridges/ui/window.py +++ b/cartridges/ui/window.py @@ -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) diff --git a/data/page.kramo.Cartridges.gschema.xml.in b/data/page.kramo.Cartridges.gschema.xml.in index 4e1bf5d..994a571 100644 --- a/data/page.kramo.Cartridges.gschema.xml.in +++ b/data/page.kramo.Cartridges.gschema.xml.in @@ -2,4 +2,15 @@ + + + 920 + + + 700 + + + false + +