window: Bind size to GSettings
This commit is contained in:
@@ -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")
|
||||
|
||||
|
||||
@@ -4,8 +4,6 @@ using Adw 1;
|
||||
|
||||
template $Window: Adw.ApplicationWindow {
|
||||
title: _("Cartridges");
|
||||
default-width: 920;
|
||||
default-height: 700;
|
||||
|
||||
ShortcutController {
|
||||
Shortcut {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user