file-roller r2248 - in trunk: . src



Author: paobac
Date: Tue Apr 15 13:03:10 2008
New Revision: 2248
URL: http://svn.gnome.org/viewvc/file-roller?rev=2248&view=rev

Log:
2008-04-15  Paolo Bacchilega  <paobac svn gnome org>

	* src/main.c: 
	* src/file-utils.h: 
	* src/file-utils.c: added g_key_file_save
	* src/dlg-add-folder.c: 
	
	use g_key_file instead of gnome_config for loading/saving sessions.


Modified:
   trunk/ChangeLog
   trunk/src/dlg-add-folder.c
   trunk/src/file-utils.c
   trunk/src/file-utils.h
   trunk/src/main.c

Modified: trunk/src/dlg-add-folder.c
==============================================================================
--- trunk/src/dlg-add-folder.c	(original)
+++ trunk/src/dlg-add-folder.c	Tue Apr 15 13:03:10 2008
@@ -585,9 +585,6 @@
 	gboolean    recursive;
 	gboolean    no_symlinks;
 	GKeyFile   *key_file;
-	char       *file_data;
-	gsize       size;
-	GError     *error = NULL;
 	
 	get_options_from_widgets (data,
 				  &base_dir,
@@ -609,32 +606,8 @@
 	g_key_file_set_boolean (key_file, "Options", "recursive", recursive);
 	g_key_file_set_boolean (key_file, "Options", "no_symlinks", no_symlinks);
 	
-	file_data = g_key_file_to_data (key_file, &size, &error);
-	if (error != NULL) {
-		g_warning ("Could not save options: %s\n", error->message);
-		g_clear_error (&error);
-	}
-	else { 
-		GFileOutputStream *stream;
-		
-		stream = g_file_replace (options_file, NULL, FALSE, 0, NULL, &error);
-		if (stream == NULL) {
-			g_warning ("Could not save options: %s\n", error->message);
-			g_clear_error (&error);
-		}
-		else if (! g_output_stream_write_all (G_OUTPUT_STREAM (stream), file_data, size, NULL, NULL, &error)) {
-			g_warning ("Could not save options: %s\n", error->message);
-			g_clear_error (&error);
-		}
-		else if (! g_output_stream_close (G_OUTPUT_STREAM (stream), NULL, &error)) {
-			g_warning ("Could not save options: %s\n", error->message);
-			g_clear_error (&error);
-		}
-		
-		g_object_unref (stream);
-	}
-	
-	g_free (file_data);
+	g_key_file_save (key_file, options_file);
+
 	g_key_file_free (key_file);
 	g_free (base_dir);
 	g_free (filename);	

Modified: trunk/src/file-utils.c
==============================================================================
--- trunk/src/file-utils.c	(original)
+++ trunk/src/file-utils.c	Tue Apr 15 13:03:10 2008
@@ -1199,3 +1199,40 @@
 		r = g_list_prepend (r, g_file_new_for_uri ((char*)scan->data));
 	return g_list_reverse (r);
 }
+
+
+void
+g_key_file_save (GKeyFile *key_file, 
+	         GFile    *file)
+{
+	char   *file_data;
+	gsize   size;
+	GError *error = NULL;
+	
+	file_data = g_key_file_to_data (key_file, &size, &error);
+	if (error != NULL) {
+		g_warning ("Could not save options: %s\n", error->message);
+		g_clear_error (&error);
+	}
+	else { 
+		GFileOutputStream *stream;
+		
+		stream = g_file_replace (file, NULL, FALSE, 0, NULL, &error);
+		if (stream == NULL) {
+			g_warning ("Could not save options: %s\n", error->message);
+			g_clear_error (&error);
+		}
+		else if (! g_output_stream_write_all (G_OUTPUT_STREAM (stream), file_data, size, NULL, NULL, &error)) {
+			g_warning ("Could not save options: %s\n", error->message);
+			g_clear_error (&error);
+		}
+		else if (! g_output_stream_close (G_OUTPUT_STREAM (stream), NULL, &error)) {
+			g_warning ("Could not save options: %s\n", error->message);
+			g_clear_error (&error);
+		}
+		
+		g_object_unref (stream);
+	}
+	
+	g_free (file_data);
+}

Modified: trunk/src/file-utils.h
==============================================================================
--- trunk/src/file-utils.h	(original)
+++ trunk/src/file-utils.h	Tue Apr 15 13:03:10 2008
@@ -116,5 +116,7 @@
 GList *             gio_file_list_dup               (GList *l);
 void                gio_file_list_free              (GList *l);
 GList *             gio_file_list_new_from_uri_list (GList *uris);
+void                g_key_file_save                 (GKeyFile *key_file, 
+						     GFile    *file);
 
 #endif /* FILE_UTILS_H */

Modified: trunk/src/main.c
==============================================================================
--- trunk/src/main.c	(original)
+++ trunk/src/main.c	Tue Apr 15 13:03:10 2008
@@ -25,7 +25,6 @@
 
 #include <gio/gio.h>
 #include <glade/glade.h>
-#include <libgnome/gnome-config.h>
 #include <libgnomeui/libgnomeui.h>
 #include "file-utils.h"
 #include "glib-utils.h"
@@ -581,39 +580,52 @@
 static const char *program_argv0 = NULL;
 
 
-static void
-save_session (GnomeClient *client)
+static char *
+get_real_path_for_prefix (const char *prefix)
 {
-	const char  *prefix;
-	GList        *scan;
-	int          i = 0;
+	return g_strconcat (g_get_home_dir (), "/.gnome2/", prefix, NULL);
+}
 
-	prefix = gnome_client_get_config_prefix (client);
-	gnome_config_push_prefix (prefix);
 
+static void
+save_session (GnomeClient *client)
+{
+	GKeyFile *key_file;
+	GList    *scan;
+	int       i;
+	char     *path;
+	GFile    *file;
+	
+	key_file = g_key_file_new ();
+	i = 0;
 	for (scan = WindowList; scan; scan = scan->next) {
 		FrWindow *window = scan->data;
 		char     *key;
 
-		key = g_strdup_printf ("Session/archive%d", i);
-		if ((window->archive == NULL) || (window->archive->file == NULL))
-			gnome_config_set_string (key, "");
+		key = g_strdup_printf ("archive%d", i);
+		if ((window->archive == NULL) || (window->archive->file == NULL)) {
+			g_key_file_set_string (key_file, "Sessione", key, "");
+		}
 		else {
 			char *uri;
 			
 			uri = g_file_get_uri (window->archive->file);
-			gnome_config_set_string (key, uri);
+			g_key_file_set_string (key_file, "Sessione", key, uri);
 			g_free (uri);
 		}
 		g_free (key);
 
 		i++;
 	}
-
-	gnome_config_set_int ("Session/archives", i);
-
-	gnome_config_pop_prefix ();
-	gnome_config_sync ();
+	g_key_file_set_integer (key_file, "Sessione", "archives", i); 
+	
+	path = get_real_path_for_prefix (gnome_client_get_config_prefix (client));
+	file = g_file_new_for_path (path);
+	g_key_file_save (key_file, file);
+	
+	g_object_unref (file);
+	g_free (path);
+	g_key_file_free (key_file);
 }
 
 
@@ -638,7 +650,7 @@
 
 	argv[0] = "rm";
 	argv[1] = "-rf";
-	argv[2] = gnome_config_get_real_path (prefix);
+	argv[2] = get_real_path_for_prefix (prefix);
 	argv[3] = NULL;
 	gnome_client_set_discard_command (client, 3, argv);
 
@@ -701,18 +713,22 @@
 gboolean
 load_session (void)
 {
-	int i, n;
-
-	gnome_config_push_prefix (gnome_client_get_config_prefix (master_client));
+	char     *path;
+	GKeyFile *key_file;
+	int       i, n;
+
+	path = get_real_path_for_prefix (gnome_client_get_config_prefix (master_client));
+	key_file = g_key_file_new ();
+	g_key_file_load_from_file (key_file, path, 0, NULL);
 
-	n = gnome_config_get_int ("Session/archives");
+	n = g_key_file_get_integer (key_file, "Session", "archives", NULL);
 	for (i = 0; i < n; i++) {
 		GtkWidget *window;
 		char      *key;
 		char      *filename;
 
-		key = g_strdup_printf ("Session/archive%d", i);
-		filename = gnome_config_get_string (key);
+		key = g_strdup_printf ("archive%d", i);
+		filename = g_key_file_get_string (key_file, "Session", key, NULL);
 		g_free (key);
 
 		window = fr_window_new ();
@@ -723,7 +739,8 @@
 		g_free (filename);
 	}
 
-	gnome_config_pop_prefix ();
+	g_key_file_free (key_file);
+	g_free (path);
 
 	return TRUE;
 }



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