file-roller r2248 - in trunk: . src
- From: paobac svn gnome org
- To: svn-commits-list gnome org
- Subject: file-roller r2248 - in trunk: . src
- Date: Tue, 15 Apr 2008 13:03:10 +0100 (BST)
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]