From bf8f7ecae3825f62ee57675a81e51912961b780c Mon Sep 17 00:00:00 2001
From: Bruce Cowan <bruce@bcowan.me.uk>
Date: Sun, 8 Jan 2023 12:41:01 +0000
Subject: [PATCH] Save window size

---
 data/gtk/window.blp                 |  4 +---
 data/uk.me.bcowan.Rugby.gschema.xml | 14 +++++++++++++-
 src/rugby-app-window.c              | 13 ++++++++++++-
 3 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/data/gtk/window.blp b/data/gtk/window.blp
index b6c608c..21f1e3f 100644
--- a/data/gtk/window.blp
+++ b/data/gtk/window.blp
@@ -1,4 +1,4 @@
-// SPDX-FileCopyrightText: 2022 Bruce Cowan <bruce@bcowan.me.uk>
+// SPDX-FileCopyrightText: 2022-2023 Bruce Cowan <bruce@bcowan.me.uk>
 //
 // SPDX-License-Identifier: GPL-3.0-or-later
 
@@ -7,8 +7,6 @@ using Adw 1;
 
 template RugbyAppWindow : Adw.ApplicationWindow {
   title: "Rugby";
-  default-height: 600;
-  default-width: 400;
 
   Box {
     orientation: vertical;
diff --git a/data/uk.me.bcowan.Rugby.gschema.xml b/data/uk.me.bcowan.Rugby.gschema.xml
index f159c5b..30a0b6f 100644
--- a/data/uk.me.bcowan.Rugby.gschema.xml
+++ b/data/uk.me.bcowan.Rugby.gschema.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  SPDX-FileCopyrightText: 2020 Bruce Cowan <bruce@bcowan.me.uk>
+  SPDX-FileCopyrightText: 2020-2023 Bruce Cowan <bruce@bcowan.me.uk>
 
   SPDX-License-Identifier: GPL-3.0-or-later
 -->
@@ -22,4 +22,16 @@
       <description>Number of points for a kick (drop goal or penalty)</description>
     </key>
   </schema>
+  <schema id="uk.me.bcowan.Rugby.window" path="/uk/me/bcowan/Rugby/window/">
+    <key name="height" type="i">
+      <default>600</default>
+      <summary>Window height</summary>
+      <description>The height of the window</description>
+    </key>
+    <key name="width" type="i">
+      <default>400</default>
+      <summary>Window width</summary>
+      <description>The width of the window</description>
+    </key>
+  </schema>
 </schemalist>
diff --git a/src/rugby-app-window.c b/src/rugby-app-window.c
index dd0ad44..b1029ee 100644
--- a/src/rugby-app-window.c
+++ b/src/rugby-app-window.c
@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: 2017-2022 Bruce Cowan <bruce@bcowan.me.uk>
+ * SPDX-FileCopyrightText: 2017-2023 Bruce Cowan <bruce@bcowan.me.uk>
  *
  * SPDX-License-Identifier: GPL-3.0-or-later
  */
@@ -23,6 +23,8 @@ struct _RugbyAppWindow
     GtkWidget *empty_page;
     GtkWidget *list_page;
 
+    GSettings *win_settings;
+
     GtkCustomFilter *try_filter;
 };
 
@@ -123,6 +125,7 @@ static void
 rugby_app_window_dispose (GObject *object)
 {
     gtk_widget_dispose_template (GTK_WIDGET (object), RUGBY_TYPE_APP_WINDOW);
+    g_clear_object (&RUGBY_APP_WINDOW (object)->win_settings);
 
     G_OBJECT_CLASS (rugby_app_window_parent_class)->dispose (object);
 }
@@ -181,6 +184,14 @@ rugby_app_window_init (RugbyAppWindow *self)
                                      win_entries,
                                      G_N_ELEMENTS (win_entries),
                                      self);
+
+    self->win_settings = g_settings_new ("uk.me.bcowan.Rugby.window");
+    g_settings_bind (self->win_settings, "height",
+                     self, "default-height",
+                     G_SETTINGS_BIND_DEFAULT);
+    g_settings_bind (self->win_settings, "width",
+                     self, "default-width",
+                     G_SETTINGS_BIND_DEFAULT);
 }
 
 static void
-- 
GitLab