[five-or-more/arnaudb/code-improvements: 6/9] Do not share settings with FiveOrMoreApp.



commit 4e543a54edd7fe6c102b94377b6ad1aedd640183
Author: Arnaud Bonatti <arnaud bonatti gmail com>
Date:   Fri May 8 22:56:24 2020 +0200

    Do not share settings with FiveOrMoreApp.

 src/main.vala   | 12 ++----------
 src/window.vala | 22 +++++++++++++---------
 2 files changed, 15 insertions(+), 19 deletions(-)
---
diff --git a/src/main.vala b/src/main.vala
index 911bd1d..4d910b6 100644
--- a/src/main.vala
+++ b/src/main.vala
@@ -30,8 +30,6 @@ private class FiveOrMoreApp: Gtk.Application
     internal const string KEY_BACKGROUND_COLOR = "background-color";
     internal const string KEY_THEME = "ball-theme";
 
-    private Settings settings;
-
     private GameWindow window;
 
     private const GLib.ActionEntry action_entries[] =
@@ -64,8 +62,7 @@ private class FiveOrMoreApp: Gtk.Application
     {
         base.startup ();
 
-        settings = new Settings ("org.gnome.five-or-more");
-        window = new GameWindow (settings);
+        window = new GameWindow ();
         add_window (window);
 
         add_action_entries (action_entries, this);
@@ -144,12 +141,7 @@ private class FiveOrMoreApp: Gtk.Application
 
     protected override void shutdown ()
     {
-        settings.delay ();
-        settings.set_int ("window-width", window.window_width);
-        settings.set_int ("window-height", window.window_height);
-        settings.set_boolean ("window-is-maximized", window.window_maximized);
-        settings.apply ();
-
+        window.on_shutdown ();
         base.shutdown ();
     }
 }
diff --git a/src/window.vala b/src/window.vala
index d04d32d..a239919 100644
--- a/src/window.vala
+++ b/src/window.vala
@@ -35,11 +35,11 @@ private class GameWindow : ApplicationWindow
     [GtkChild]
     private Games.GridFrame grid_frame;
 
-    public GLib.Settings settings { private get; protected construct; }
+    private GLib.Settings settings = new GLib.Settings ("org.gnome.five-or-more");
     private bool window_tiled;
-    internal bool window_maximized { internal get; private set; }
-    internal int window_width { internal get; private set; }
-    internal int window_height { internal get; private set; }
+    private bool window_maximized;
+    private int window_width;
+    private int window_height;
 
     private Game? game = null;
     private ThemeRenderer? theme = null;
@@ -125,11 +125,6 @@ private class GameWindow : ApplicationWindow
         game.game_over.connect (score_cb);
     }
 
-    internal GameWindow (GLib.Settings settings)
-    {
-        Object (settings: settings);
-    }
-
     protected override bool window_state_event (Gdk.EventWindowState event)
     {
         if ((event.changed_mask & Gdk.WindowState.MAXIMIZED) != 0)
@@ -152,6 +147,15 @@ private class GameWindow : ApplicationWindow
         window_height = allocation.height;
     }
 
+    internal inline void on_shutdown ()
+    {
+        settings.delay ();
+        settings.set_int ("window-width", window_width);
+        settings.set_int ("window-height", window_height);
+        settings.set_boolean ("window-is-maximized", window_maximized);
+        settings.apply ();
+    }
+
     private void score_cb ()
     {
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]