[evolution-data-server] ESource: Read/Write int64/uint64
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] ESource: Read/Write int64/uint64
- Date: Wed, 20 Jun 2012 08:17:24 +0000 (UTC)
commit e5c4f3f000d68c3381e0844e50d7e737ae49113f
Author: Milan Crha <mcrha redhat com>
Date: Wed Jun 20 10:16:25 2012 +0200
ESource: Read/Write int64/uint64
libedataserver/e-source.c | 34 +++++++++++++++++++++++++++++++++-
1 files changed, 33 insertions(+), 1 deletions(-)
---
diff --git a/libedataserver/e-source.c b/libedataserver/e-source.c
index 4a0d04e..8538aed 100644
--- a/libedataserver/e-source.c
+++ b/libedataserver/e-source.c
@@ -265,6 +265,13 @@ source_set_key_file_from_property (GObject *object,
gboolean v_boolean = g_value_get_boolean (pvalue);
g_key_file_set_boolean (key_file, group_name, key, v_boolean);
+ /* Store UIN64 in hexa */
+ } else if (G_VALUE_HOLDS_UINT64 (pvalue)) {
+ gchar *v_str = g_strdup_printf ("%016" G_GINT64_MODIFIER "X", g_value_get_uint64 (pvalue));
+
+ g_key_file_set_string (key_file, group_name, key, v_str);
+ g_free (v_str);
+
/* String GValues may contain characters that need escaping. */
} else if (G_VALUE_HOLDS_STRING (pvalue)) {
const gchar *v_string = g_value_get_string (pvalue);
@@ -361,6 +368,31 @@ source_set_property_from_key_file (GObject *object,
g_value_set_int (value, v_int);
}
+ } else if (G_IS_PARAM_SPEC_INT64 (pspec)) {
+ gint64 v_int64;
+
+ v_int64 = g_key_file_get_int64 (
+ key_file, group_name, key, &error);
+ if (error == NULL) {
+ g_value_init (value, G_TYPE_INT64);
+ g_value_set_int64 (value, v_int64);
+ }
+
+ } else if (G_IS_PARAM_SPEC_UINT64 (pspec)) {
+ guint64 v_uint64;
+ gchar *v_str;
+
+ v_str = g_key_file_get_string (
+ key_file, group_name, key, &error);
+ if (error == NULL) {
+ v_uint64 = g_ascii_strtoull (v_str, NULL, 16);
+
+ g_value_init (value, G_TYPE_UINT64);
+ g_value_set_uint64 (value, v_uint64);
+ }
+
+ g_free (v_str);
+
} else if (G_IS_PARAM_SPEC_BOOLEAN (pspec)) {
gboolean v_boolean;
@@ -440,7 +472,7 @@ source_set_property_from_key_file (GObject *object,
} else {
g_warning (
"No GKeyFile-to-GValue converter defined "
- "for type '%s'", G_VALUE_TYPE_NAME (value));
+ "for type '%s'", G_PARAM_SPEC_TYPE_NAME (pspec));
}
/* If a value could not be retrieved from the key
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]