[nautilus-actions] Define NadpDesktopFile setter functions
- From: Pierre Wieser <pwieser src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus-actions] Define NadpDesktopFile setter functions
- Date: Wed, 14 Apr 2010 20:14:36 +0000 (UTC)
commit d589e21ccf536ab3f8535d1e52b75bb47a194bf8
Author: Pierre Wieser <pwieser trychlos org>
Date: Sun Mar 28 12:00:41 2010 +0200
Define NadpDesktopFile setter functions
src/io-desktop/nadp-desktop-file.c | 119 +++++++++++++++++++++++++++++++++---
src/io-desktop/nadp-desktop-file.h | 6 ++
2 files changed, 117 insertions(+), 8 deletions(-)
---
diff --git a/src/io-desktop/nadp-desktop-file.c b/src/io-desktop/nadp-desktop-file.c
index 38dfff9..c15588f 100644
--- a/src/io-desktop/nadp-desktop-file.c
+++ b/src/io-desktop/nadp-desktop-file.c
@@ -317,7 +317,7 @@ check_key_file( NadpDesktopFile *ndf )
gboolean hidden;
GError *error;
- ret = FALSE;
+ ret = TRUE;
error = NULL;
/* start group must be 'Desktop Entry' */
@@ -326,9 +326,10 @@ check_key_file( NadpDesktopFile *ndf )
g_warning( "%s: %s: invalid start group, found %s, waited for %s",
thisfn, ndf->private->path, start_group, NADP_GROUP_DESKTOP );
ret = FALSE;
+ }
/* must not have Hidden=true value */
- } else {
+ if( ret ){
has_key = g_key_file_has_key( ndf->private->key_file, start_group, NADP_KEY_HIDDEN, &error );
if( error ){
g_warning( "%s: %s: %s", thisfn, ndf->private->path, error->message );
@@ -343,13 +344,7 @@ check_key_file( NadpDesktopFile *ndf )
} else if( hidden ){
g_warning( "%s: %s: Hidden=true", thisfn, ndf->private->path );
ret = FALSE;
-
- } else {
- ret = TRUE;
}
-
- } else {
- ret = TRUE;
}
}
@@ -560,6 +555,7 @@ nadp_desktop_file_get_locale_string( const NadpDesktopFile *ndf, const gchar *gr
g_error_free( error );
g_free( read_value );
}
+
} else {
g_free( value );
value = read_value;
@@ -721,6 +717,113 @@ nadp_desktop_file_get_uint( const NadpDesktopFile *ndf, const gchar *group, cons
}
/**
+ * nadp_desktop_file_set_boolean:
+ * @ndf: this #NadpDesktopFile object.
+ * @group: the name of the group.
+ * @key: the name of the key.
+ * @value: the value to be written.
+ *
+ * Write the given boolean value.
+ */
+void
+nadp_desktop_file_set_boolean( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, gboolean value )
+{
+ g_return_if_fail( NADP_IS_DESKTOP_FILE( ndf ));
+
+ if( !ndf->private->dispose_has_run ){
+
+ g_key_file_set_boolean( ndf->private->key_file, group, key, value );
+ }
+}
+
+/**
+ * nadp_desktop_file_set_locale_string:
+ * @ndf: this #NadpDesktopFile object.
+ * @group: the name of the group.
+ * @key: the name of the key.
+ * @value: the value to be written.
+ *
+ * Write the given string value.
+ */
+void
+nadp_desktop_file_set_locale_string( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, const gchar *value )
+{
+ char **locales;
+
+ g_return_if_fail( NADP_IS_DESKTOP_FILE( ndf ));
+
+ if( !ndf->private->dispose_has_run ){
+
+ locales = ( char ** ) g_get_language_names();
+ g_key_file_set_locale_string( ndf->private->key_file, group, key, locales[0], value );
+ }
+}
+
+/**
+ * nadp_desktop_file_set_string:
+ * @ndf: this #NadpDesktopFile object.
+ * @group: the name of the group.
+ * @key: the name of the key.
+ * @value: the value to be written.
+ *
+ * Write the given string value.
+ */
+void
+nadp_desktop_file_set_string( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, const gchar *value )
+{
+ g_return_if_fail( NADP_IS_DESKTOP_FILE( ndf ));
+
+ if( !ndf->private->dispose_has_run ){
+
+ g_key_file_set_string( ndf->private->key_file, group, key, value );
+ }
+}
+
+/**
+ * nadp_desktop_file_set_string_list:
+ * @ndf: this #NadpDesktopFile object.
+ * @group: the name of the group.
+ * @key: the name of the key.
+ * @value: the value to be written.
+ *
+ * Write the given list value.
+ */
+void
+nadp_desktop_file_set_string_list( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, GSList *value )
+{
+ gchar **array;
+
+ g_return_if_fail( NADP_IS_DESKTOP_FILE( ndf ));
+
+ if( !ndf->private->dispose_has_run ){
+
+ array = na_core_utils_slist_to_array( value );
+ g_key_file_set_string_list( ndf->private->key_file, group, key, ( const gchar * const * ) array, g_slist_length( value ));
+ g_strfreev( array );
+ }
+}
+
+/**
+ * nadp_desktop_file_set_uint:
+ * @ndf: this #NadpDesktopFile object.
+ * @group: the name of the group.
+ * @key: the name of the key.
+ * @value: the value to be written.
+ *
+ * Write the given uint value.
+ */
+void
+nadp_desktop_file_set_uint( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, guint value )
+{
+ g_return_if_fail( NADP_IS_DESKTOP_FILE( ndf ));
+
+ if( !ndf->private->dispose_has_run ){
+
+ g_key_file_set_integer( ndf->private->key_file, group, key, value );
+ }
+}
+
+/**
* nadp_desktop_file_write:
* @ndf: the #NadpDesktopFile instance.
*
diff --git a/src/io-desktop/nadp-desktop-file.h b/src/io-desktop/nadp-desktop-file.h
index 611514e..6df3436 100644
--- a/src/io-desktop/nadp-desktop-file.h
+++ b/src/io-desktop/nadp-desktop-file.h
@@ -90,6 +90,12 @@ gchar *nadp_desktop_file_get_string ( const NadpDesktopFile *ndf
GSList *nadp_desktop_file_get_string_list ( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, gboolean *key_found, const gchar *default_value );
guint nadp_desktop_file_get_uint ( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, gboolean *key_found, guint default_value );
+void nadp_desktop_file_set_boolean ( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, gboolean value );
+void nadp_desktop_file_set_locale_string( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, const gchar *value );
+void nadp_desktop_file_set_string ( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, const gchar *value );
+void nadp_desktop_file_set_string_list ( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, GSList *value );
+void nadp_desktop_file_set_uint ( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, guint value );
+
G_END_DECLS
#endif /* __NADP_DESKTOP_FILE_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]