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)