[gnome-system-monitor] Use a tuple to store window state



commit d347dd13681b7f57b28bc609d94cbcc597049951
Author: Stefano Facchini <stefano facchini gmail com>
Date:   Wed Jul 31 11:46:16 2013 +0200

    Use a tuple to store window state
    
    It's faster to set a single gsettings tuple than four integers.
    
    Also, remove g_settings_sync() as it's automatic
    
    https://bugzilla.gnome.org/show_bug.cgi?id=649398

 src/org.gnome.gnome-system-monitor.gschema.xml.in |   29 ++------------------
 src/procman-app.cpp                               |   16 ++++-------
 2 files changed, 9 insertions(+), 36 deletions(-)
---
diff --git a/src/org.gnome.gnome-system-monitor.gschema.xml.in 
b/src/org.gnome.gnome-system-monitor.gschema.xml.in
index 718e544..b3f60a9 100644
--- a/src/org.gnome.gnome-system-monitor.gschema.xml.in
+++ b/src/org.gnome.gnome-system-monitor.gschema.xml.in
@@ -1,17 +1,8 @@
 <schemalist>
   <schema id="org.gnome.gnome-system-monitor" path="/org/gnome/gnome-system-monitor/">
-    <key name="width" type="i">
-      <default>440
-      </default>
-      <_summary>Main Window width
-      </_summary>
-    </key>
-
-    <key name="height" type="i">
-      <default>495
-      </default>
-      <_summary>Main Window height
-      </_summary>
+    <key name="window-state" type="(iiii)">
+      <default>(700, 500, 50, 50)</default>
+      <_summary>Main window size and position in the form (width, height, xpos, ypos)</_summary>
     </key>
 
     <key name="maximized" type="b">
@@ -21,20 +12,6 @@
       </_summary>
     </key>
 
-    <key name="x-position" type="i">
-      <default>0
-      </default>
-      <_summary>Main Window X position
-      </_summary>
-    </key>
-
-    <key name="y-position" type="i">
-      <default>0
-      </default>
-      <_summary>Main Window Y position
-      </_summary>
-    </key>
-
     <key name="show-dependencies" type="b">
       <default>false
       </default>
diff --git a/src/procman-app.cpp b/src/procman-app.cpp
index 68d5fe8..706e72b 100644
--- a/src/procman-app.cpp
+++ b/src/procman-app.cpp
@@ -209,10 +209,9 @@ ProcmanApp::load_settings()
 
     settings = g_settings_new (GSM_GSETTINGS_SCHEMA);
 
-    config.width = g_settings_get_int (settings, "width");
-    config.height = g_settings_get_int (settings, "height");
-    config.xpos = g_settings_get_int (settings, "x-position");
-    config.ypos = g_settings_get_int (settings, "y-position");
+    g_settings_get (settings, "window-state", "(iiii)",
+                    &config.width, &config.height, &config.xpos, &config.ypos);
+
     config.maximized = g_settings_get_boolean (settings, "maximized");
 
     g_signal_connect (G_OBJECT(settings), "changed::show-dependencies", 
G_CALLBACK(cb_show_dependencies_changed), this);
@@ -517,13 +516,10 @@ ProcmanApp::save_config ()
 
     config.maximized = gdk_window_get_state(gtk_widget_get_window (main_window)) & 
GDK_WINDOW_STATE_MAXIMIZED;
 
-    g_settings_set_int (settings, "width", config.width);
-    g_settings_set_int (settings, "height", config.height);
-    g_settings_set_int (settings, "x-position", config.xpos);
-    g_settings_set_int (settings, "y-position", config.ypos);
-    g_settings_set_boolean (settings, "maximized", config.maximized);
+    g_settings_set (settings, "window-state", "(iiii)",
+                    config.width, config.height, config.xpos, config.ypos);
 
-    g_settings_sync ();
+    g_settings_set_boolean (settings, "maximized", config.maximized);
 }
 
 int ProcmanApp::on_command_line(const Glib::RefPtr<Gio::ApplicationCommandLine>& command_line)


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