[nautilus-actions] Define NadpDesktopFile setter functions



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]