From: Salvatore Iovene Date: Mon, 7 Dec 2009 05:18:30 +0000 (+0200) Subject: Make saving work. X-Git-Tag: 0.0.1~1^2~21 X-Git-Url: https://vcs.maemo.org/git/?p=tweakr;a=commitdiff_plain;h=37e8ad83f24a142409596c600c825e6b2d7841e6 Make saving work. --- diff --git a/configure.ac b/configure.ac index 24e263f..8f058e6 100644 --- a/configure.ac +++ b/configure.ac @@ -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) diff --git a/debian/control b/debian/control index 020f3ce..35c2c57 100644 --- a/debian/control +++ b/debian/control @@ -1,7 +1,7 @@ Source: maemo-tweaks Priority: optional Maintainer: Salvatore Iovene -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 diff --git a/debian/maemo-tweaks-modules.install b/debian/maemo-tweaks-modules.install index e49303c..8cff40f 100644 --- a/debian/maemo-tweaks-modules.install +++ b/debian/maemo-tweaks-modules.install @@ -1 +1,2 @@ usr/lib/maemo-tweaks/modules/*.so* +usr/bin/* diff --git a/modules/Makefile.am b/modules/Makefile.am index 5da1f12..4f2afb1 100644 --- a/modules/Makefile.am +++ b/modules/Makefile.am @@ -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) + diff --git a/modules/maemo-tweaks-desktop-save.c b/modules/maemo-tweaks-desktop-save.c index 9323ccf..3b56065 100644 --- a/modules/maemo-tweaks-desktop-save.c +++ b/modules/maemo-tweaks-desktop-save.c @@ -2,6 +2,7 @@ * vim:ts=4:sw=4:et:cindent:cino=(0 */ +#include #include 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; diff --git a/modules/maemo-tweaks-desktop.c b/modules/maemo-tweaks-desktop.c index 39754c5..4aa1574 100644 --- a/modules/maemo-tweaks-desktop.c +++ b/modules/maemo-tweaks-desktop.c @@ -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]); }