anjuta r4489 - in trunk: . libanjuta
- From: jhs svn gnome org
- To: svn-commits-list gnome org
- Subject: anjuta r4489 - in trunk: . libanjuta
- Date: Sat, 27 Dec 2008 10:34:19 +0000 (UTC)
Author: jhs
Date: Sat Dec 27 10:34:19 2008
New Revision: 4489
URL: http://svn.gnome.org/viewvc/anjuta?rev=4489&view=rev
Log:
2008-12-27 Carl-Anton Ingmarsson <ca ingmarsson gmail com>
* libanjuta/anjuta-session.c (anjuta_session_finalize),
(anjuta_session_new), (anjuta_session_sync),
(anjuta_session_clear), (anjuta_session_clear_section),
(anjuta_session_set_int), (anjuta_session_set_float),
(anjuta_session_set_string), (anjuta_session_set_string_list),
(anjuta_session_get_int), (anjuta_session_get_float),
(anjuta_session_get_string), (anjuta_session_get_string_list):
#565650 â Port anjuta-session from gnome-config to GKeyfile
Modified:
trunk/ChangeLog
trunk/libanjuta/anjuta-session.c
Modified: trunk/libanjuta/anjuta-session.c
==============================================================================
--- trunk/libanjuta/anjuta-session.c (original)
+++ trunk/libanjuta/anjuta-session.c Sat Dec 27 10:34:19 2008
@@ -29,13 +29,13 @@
#include <stdlib.h>
#include <string.h>
-#include <libgnome/gnome-config.h>
#include "anjuta-session.h"
#include "anjuta-utils.h"
struct _AnjutaSessionPriv {
gchar *dir_path;
+ GKeyFile *key_file;
};
static gpointer *parent_class = NULL;
@@ -47,6 +47,7 @@
cobj = ANJUTA_SESSION (object);
g_free (cobj->priv->dir_path);
+ g_key_file_free (cobj->priv->key_file);
g_free (cobj->priv);
G_OBJECT_CLASS(parent_class)->finalize(object);
@@ -82,12 +83,21 @@
anjuta_session_new (const gchar *session_directory)
{
AnjutaSession *obj;
+ gchar *filename;
g_return_val_if_fail (session_directory != NULL, NULL);
g_return_val_if_fail (g_path_is_absolute (session_directory), NULL);
obj = ANJUTA_SESSION (g_object_new (ANJUTA_TYPE_SESSION, NULL));
obj->priv->dir_path = g_strdup (session_directory);
+
+ obj->priv->key_file = g_key_file_new ();
+
+ filename = anjuta_session_get_session_filename (obj);
+ g_key_file_load_from_file (obj->priv->key_file, filename,
+ G_KEY_FILE_NONE, NULL);
+ g_free (filename);
+
return obj;
}
@@ -124,18 +134,6 @@
"anjuta.session", NULL);
}
-static gchar*
-anjuta_session_get_key_path (AnjutaSession *session, const gchar *section,
- const gchar *key)
-{
- gchar *key_path, *filename;
-
- filename = anjuta_session_get_session_filename (session);
- key_path = g_strdup_printf ("=%s=/%s/%s", filename, section, key);
- g_free (filename);
- return key_path;
-}
-
/**
* anjuta_session_sync:
* @session: an #AnjutaSession object
@@ -145,16 +143,16 @@
void
anjuta_session_sync (AnjutaSession *session)
{
- gchar *filename;
- gchar *path;
+ gchar *filename, *data;
g_return_if_fail (ANJUTA_IS_SESSION (session));
filename = anjuta_session_get_session_filename (session);
- path = g_strdup_printf ("=%s=", filename);
- gnome_config_sync_file (path);
+ data = g_key_file_to_data (session->priv->key_file, NULL, NULL);
+ g_file_set_contents (filename, data, -1, NULL);
+
g_free (filename);
- g_free (path);
+ g_free (data);
}
/**
@@ -166,17 +164,13 @@
void
anjuta_session_clear (AnjutaSession *session)
{
- gchar *path;
- gchar *filename, *cmd;
+ gchar *cmd;
gint ret;
g_return_if_fail (ANJUTA_IS_SESSION (session));
- filename = anjuta_session_get_session_filename (session);
- path = g_strdup_printf ("=%s=", filename);
- gnome_config_clean_file (path);
- g_free (filename);
- g_free (path);
+ g_key_file_free (session->priv->key_file);
+ session->priv->key_file = g_key_file_new ();
anjuta_session_sync (session);
@@ -199,16 +193,11 @@
void
anjuta_session_clear_section (AnjutaSession *session,
const gchar *section)
-{
- gchar *filename, *section_path;
-
+{
g_return_if_fail (ANJUTA_IS_SESSION (session));
g_return_if_fail (section != NULL);
- filename = anjuta_session_get_session_filename (session);
- section_path = g_strdup_printf ("=%s=/%s", filename, section);
- gnome_config_clean_section (section_path);
- g_free (filename);
+ g_key_file_remove_group (session->priv->key_file, section, NULL);
}
/**
@@ -224,15 +213,17 @@
anjuta_session_set_int (AnjutaSession *session, const gchar *section,
const gchar *key, gint value)
{
- gchar *key_path;
-
g_return_if_fail (ANJUTA_IS_SESSION (session));
g_return_if_fail (section != NULL);
g_return_if_fail (key != NULL);
- key_path = anjuta_session_get_key_path (session, section, key);
- gnome_config_set_int (key_path, value);
- g_free (key_path);
+ if (!value)
+ {
+ g_key_file_remove_key (session->priv->key_file, section, key, NULL);
+ return;
+ }
+
+ g_key_file_set_integer (session->priv->key_file, section, key, value);
}
/**
@@ -248,15 +239,17 @@
anjuta_session_set_float (AnjutaSession *session, const gchar *section,
const gchar *key, gfloat value)
{
- gchar *key_path;
-
g_return_if_fail (ANJUTA_IS_SESSION (session));
g_return_if_fail (section != NULL);
g_return_if_fail (key != NULL);
- key_path = anjuta_session_get_key_path (session, section, key);
- gnome_config_set_float (key_path, value);
- g_free (key_path);
+ if (!value)
+ {
+ g_key_file_remove_key (session->priv->key_file, section, key, NULL);
+ return;
+ }
+
+ g_key_file_set_double (session->priv->key_file, section, key, value);
}
/**
@@ -272,15 +265,17 @@
anjuta_session_set_string (AnjutaSession *session, const gchar *section,
const gchar *key, const gchar *value)
{
- gchar *key_path;
-
g_return_if_fail (ANJUTA_IS_SESSION (session));
g_return_if_fail (section != NULL);
g_return_if_fail (key != NULL);
- key_path = anjuta_session_get_key_path (session, section, key);
- gnome_config_set_string (key_path, value);
- g_free (key_path);
+ if (!value)
+ {
+ g_key_file_remove_key (session->priv->key_file, section, key, NULL);
+ return;
+ }
+
+ g_key_file_set_string (session->priv->key_file, section, key, value);
}
/**
@@ -297,7 +292,7 @@
const gchar *section,
const gchar *key, GList *value)
{
- gchar *key_path, *value_str;
+ gchar *value_str;
GString *str;
GList *node;
gboolean first_item = TRUE;
@@ -306,7 +301,12 @@
g_return_if_fail (section != NULL);
g_return_if_fail (key != NULL);
- key_path = anjuta_session_get_key_path (session, section, key);
+ if (!value)
+ {
+ g_key_file_remove_key (session->priv->key_file, section, key, NULL);
+ return;
+ }
+
str = g_string_new ("");
node = value;
while (node)
@@ -323,10 +323,9 @@
}
value_str = g_string_free (str, FALSE);
- gnome_config_set_string (key_path, value_str);
+ g_key_file_set_string (session->priv->key_file, section, key, value_str);
g_free (value_str);
- g_free (key_path);
}
/**
@@ -343,16 +342,14 @@
anjuta_session_get_int (AnjutaSession *session, const gchar *section,
const gchar *key)
{
- gchar *key_path;
gint value;
g_return_val_if_fail (ANJUTA_IS_SESSION (session), 0);
g_return_val_if_fail (section != NULL, 0);
g_return_val_if_fail (key != NULL, 0);
- key_path = anjuta_session_get_key_path (session, section, key);
- value = gnome_config_get_int (key_path);
- g_free (key_path);
+ value = g_key_file_get_integer (session->priv->key_file, section, key, NULL);
+
return value;
}
@@ -370,16 +367,14 @@
anjuta_session_get_float (AnjutaSession *session, const gchar *section,
const gchar *key)
{
- gchar *key_path;
gfloat value;
g_return_val_if_fail (ANJUTA_IS_SESSION (session), 0);
g_return_val_if_fail (section != NULL, 0);
g_return_val_if_fail (key != NULL, 0);
- key_path = anjuta_session_get_key_path (session, section, key);
- value = gnome_config_get_float (key_path);
- g_free (key_path);
+ value = (float)g_key_file_get_double (session->priv->key_file, section, key, NULL);
+
return value;
}
@@ -397,16 +392,14 @@
anjuta_session_get_string (AnjutaSession *session, const gchar *section,
const gchar *key)
{
- gchar *key_path;
gchar *value;
g_return_val_if_fail (ANJUTA_IS_SESSION (session), NULL);
g_return_val_if_fail (section != NULL, NULL);
g_return_val_if_fail (key != NULL, NULL);
- key_path = anjuta_session_get_key_path (session, section, key);
- value = gnome_config_get_string (key_path);
- g_free (key_path);
+ value = g_key_file_get_string (session->priv->key_file, section, key, NULL);
+
return value;
}
@@ -425,15 +418,15 @@
const gchar *section,
const gchar *key)
{
- gchar *key_path, *val, **str, **ptr;
+ gchar *val, **str, **ptr;
GList *value;
g_return_val_if_fail (ANJUTA_IS_SESSION (session), NULL);
g_return_val_if_fail (section != NULL, NULL);
g_return_val_if_fail (key != NULL, NULL);
- key_path = anjuta_session_get_key_path (session, section, key);
- val = gnome_config_get_string (key_path);
+ val = g_key_file_get_string (session->priv->key_file, section, key, NULL);
+
value = NULL;
if (val)
@@ -452,7 +445,6 @@
}
g_free (val);
}
- g_free (key_path);
return g_list_reverse (value);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]