Make saving work.
authorSalvatore Iovene <salvatore@iovene.com>
Mon, 7 Dec 2009 05:18:30 +0000 (07:18 +0200)
committerSalvatore Iovene <salvatore@iovene.com>
Mon, 7 Dec 2009 05:18:30 +0000 (07:18 +0200)
configure.ac
debian/control
debian/maemo-tweaks-modules.install
modules/Makefile.am
modules/maemo-tweaks-desktop-save.c
modules/maemo-tweaks-desktop.c

index 24e263f..8f058e6 100644 (file)
@@ -9,6 +9,10 @@ AM_PROG_CC_STDC
 AC_HEADER_STDC
 AC_PROG_LIBTOOL
 
+PKG_CHECK_MODULES(GLIB, glib-2.0)
+AC_SUBST(GLIB_LIBS)
+AC_SUBST(GLIB_CFLAGS)
+
 PKG_CHECK_MODULES(GTK, gtk+-2.0)
 AC_SUBST(GTK_LIBS)
 AC_SUBST(GTK_CFLAGS)
index 020f3ce..35c2c57 100644 (file)
@@ -1,7 +1,7 @@
 Source: maemo-tweaks
 Priority: optional
 Maintainer: Salvatore Iovene <salvatore@iovene.com>
-Build-Depends: debhelper (>= 4.1.0), cdbs, libgtk2.0-dev, libhildon1-dev, libosso-dev
+Build-Depends: debhelper (>= 4.1.0), cdbs, libgtk2.0-dev, libhildon1-dev, libosso-dev, libglib2.0-dev
 Standards-Version: 3.6.0
 
 Package: maemo-tweaks
index 5da1f12..4f2afb1 100644 (file)
@@ -18,3 +18,8 @@ libmaemo_tweaks_desktop_la_LIBADD = \
        $(GTK_LIBS)     \
        $(HILDON_LIBS)
 
+bin_PROGRAMS = maemo-tweaks-desktop-save
+maemo_tweaks_desktop_save_SOURCES = maemo-tweaks-desktop-save.c
+maemo_tweaks_desktop_save_LDADD = \
+       $(GLIB_LIBS)
+
index 9323ccf..3b56065 100644 (file)
@@ -2,6 +2,7 @@
  * vim:ts=4:sw=4:et:cindent:cino=(0
  */ 
 
+#include <stdlib.h>
 #include <glib.h>
 
 static gchar *groups[] =
@@ -19,20 +20,48 @@ int main (int argc, char *argv[])
 {
     GKeyFile *kf;
     gint i;
+    GError *error = NULL;
+    gchar *data;
+    gsize size;
 
     if (argc < 2)
     {
-        return -1;
+        exit (EXIT_FAILURE);;
     }
 
     kf = g_key_file_new ();
-    g_key_file_load_from_file (kf, TRANSITIONS, G_KEY_FILE_NONE, NULL);
+    if (!g_key_file_load_from_file (kf, TRANSITIONS,
+                                    G_KEY_FILE_KEEP_COMMENTS |
+                                    G_KEY_FILE_KEEP_TRANSLATIONS,
+                                    &error))
+    {
+        g_warning ("Error while reading %s: %s", TRANSITIONS, error->message);
+        g_error_free (error);
+        exit (EXIT_FAILURE);
+    }
+
+    for (i = 0; i < argc - 1; i++)
+    {
+        g_key_file_set_string (kf, groups[i], keys[i], argv[i+1]);
+    }
 
-    for (i = 1; i < argc; i++)
+    data = g_key_file_to_data (kf, &size, &error);
+    if (data == NULL)
     {
-        g_key_file_set_string (kf, groups[i], keys[i], argv[i]);
+        g_warning ("Error while writing keyfile data.");
+        g_error_free (error);
+        exit (EXIT_FAILURE);
     }
     
+    if (!g_file_set_contents (TRANSITIONS, data, size, &error))
+    {
+        g_warning ("Error writing %s", TRANSITIONS);
+        g_free (data);
+        g_error_free (error);
+        exit (EXIT_FAILURE);
+    }
+
+    g_free (data);
     g_key_file_free (kf);
 
     return 0;
index 39754c5..4aa1574 100644 (file)
@@ -221,13 +221,21 @@ maemo_tweaks_desktop_section_dispose (GObject *obj)
 
 static void _save (MaemoTweaksSection *section)
 {
-    gint active =
-        hildon_picker_button_get_active
-            (HILDON_PICKER_BUTTON
-             (MAEMO_TWEAKS_DESKTOP_SECTION (section)->snap_button));
-
-    g_key_file_set_integer (MAEMO_TWEAKS_DESKTOP_SECTION (section)->ini,
-                            "edit_mode", "snap_grid_size",
-                            snap_values [active]);
+    gchar *argv[2];
+    gint active;
+
+    active = hildon_picker_button_get_active
+        (HILDON_PICKER_BUTTON (MAEMO_TWEAKS_DESKTOP_SECTION
+                               (section)->snap_button));
+
+    argv[0] = g_strdup ("/usr/bin/maemo-tweaks-desktop-save");
+    argv[1] = g_strdup_printf ("%d", snap_values[active]);
+
+    g_spawn_sync ("/home/user", argv, NULL,
+                  G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL,
+                  NULL, NULL, NULL, NULL, NULL, NULL);
+
+    g_free (argv[0]);
+    g_free (argv[1]);
 }