From 8718a6a1704c4db591f7df35afba95bc8e63a0f2 Mon Sep 17 00:00:00 2001 From: kramo <93832451+kra-mo@users.noreply.github.com> Date: Sat, 18 Feb 2023 21:16:57 +0100 Subject: [PATCH] Save window geometry --- data/hu.kramo.Cartridges.gschema.xml | 15 +++++++++++++-- src/main.py | 8 +++++++- src/window.blp | 2 -- src/window.py | 2 +- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/data/hu.kramo.Cartridges.gschema.xml b/data/hu.kramo.Cartridges.gschema.xml index b35be61..8503a75 100644 --- a/data/hu.kramo.Cartridges.gschema.xml +++ b/data/hu.kramo.Cartridges.gschema.xml @@ -22,7 +22,18 @@ "~/.var/app/com.usebottles.bottles/data/bottles/" - + + + + 1110 + + + 820 + + + false + + @@ -32,5 +43,5 @@ "a-z" - + diff --git a/src/main.py b/src/main.py index d4991c1..b0dfb2b 100644 --- a/src/main.py +++ b/src/main.py @@ -56,6 +56,12 @@ class CartridgesApplication(Adw.Application): if not self.win: self.win = CartridgesWindow(application=self) + # Save window geometry + state_settings = Gio.Settings(schema_id="hu.kramo.Cartridge.State") + state_settings.bind("width", self.win, "default-width", Gio.SettingsBindFlags.DEFAULT) + state_settings.bind("height", self.win, "default-height", Gio.SettingsBindFlags.DEFAULT) + state_settings.bind("is-maximized", self.win, "maximized", Gio.SettingsBindFlags.DEFAULT) + self.win.present() # Create actions for the main window @@ -68,7 +74,7 @@ class CartridgesApplication(Adw.Application): self.win.sort = Gio.SimpleAction.new_stateful("sort_by", GLib.VariantType.new("s"), GLib.Variant("s", "a-z")) self.win.add_action(self.win.sort) self.win.sort.connect("activate", self.win.on_sort_action) - self.win.on_sort_action(self.win.sort, self.win.schema.get_value("sort-mode")) + self.win.on_sort_action(self.win.sort, state_settings.get_value("sort-mode")) def on_about_action(self, widget, callback=None): about = Adw.AboutWindow(transient_for=self.win, diff --git a/src/window.blp b/src/window.blp index 1af916b..c59ed09 100644 --- a/src/window.blp +++ b/src/window.blp @@ -27,8 +27,6 @@ Adw.StatusPage hidden_notice_empty { template CartridgesWindow : Adw.ApplicationWindow { title: _("Cartridges"); - default-width: 1110; - default-height: 820; Adw.ToastOverlay toast_overlay { Stack stack { diff --git a/src/window.py b/src/window.py index 9bb4754..0a76fd8 100644 --- a/src/window.py +++ b/src/window.py @@ -325,7 +325,7 @@ class CartridgesWindow(Adw.ApplicationWindow): elif state == "last_played": sort_func = self.last_played_sort - self.schema.set_string("sort-mode", state) + Gio.Settings(schema_id="hu.kramo.Cartridge.State").set_string("sort-mode", state) self.library.set_sort_func(sort_func) self.hidden_library.set_sort_func(sort_func)