[nautilus-actions] Add new methods to NautilusActions class



commit 436d8c44466609eeb4c2ac243b2e0ff5735f4de8
Author: Pierre Wieser <pwieser trychlos org>
Date:   Mon May 25 21:07:16 2009 +0200

    Add new methods to NautilusActions class
    
    - nautilus_actions_config_action_free_all_profile_names
    - nautilus_actions_config_action_get_first_profile_name
    - nautilus_actions_config_action_get_profiles_count
    - nautilus_actions_config_action_dump
---
 ChangeLog                                     |    7 +++
 libnautilus-actions/nautilus-actions-config.c |   55 +++++++++++++++++++++++++
 libnautilus-actions/nautilus-actions-config.h |    5 ++
 3 files changed, 67 insertions(+), 0 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 9f0bbb1..353b3db 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -17,6 +17,13 @@
 	* libnautilus-actions/Makefile.am:
 	Define G_LOG_DOMAIN variable.
 
+	* libnautilus-actions/nautilus-actions-config.c:
+	* libnautilus-actions/nautilus-actions-config.h:
+	nautilus_actions_config_action_free_all_profile_names,
+	nautilus_actions_config_action_get_first_profile_name,
+	nautilus_actions_config_action_get_profiles_count,
+	nautilus_actions_config_action_dump: new functions.
+
 2009-05-18 Pierre Wieser <pwieser trychlos org>
 
 	Fix Glade regression I introduced myself when ansi-fying C sources !
diff --git a/libnautilus-actions/nautilus-actions-config.c b/libnautilus-actions/nautilus-actions-config.c
index c35db36..5669be9 100644
--- a/libnautilus-actions/nautilus-actions-config.c
+++ b/libnautilus-actions/nautilus-actions-config.c
@@ -400,6 +400,28 @@ nautilus_actions_config_action_get_all_profile_names (NautilusActionsConfigActio
 }
 
 void
+nautilus_actions_config_action_free_all_profile_names( GSList *list )
+{
+	g_slist_free( list );
+}
+
+/*
+ * the returned string must be freed after used
+ */
+gchar *
+nautilus_actions_config_action_get_first_profile_name( const NautilusActionsConfigAction *action )
+{
+	gchar *name = NULL;
+	GList *list = g_hash_table_get_keys( action->profiles );
+	GList *first = g_list_first( list );
+	if( first ){
+		name = g_strdup(( gchar * ) first->data );
+	}
+	g_list_free( list );
+	return( name );
+}
+
+void
 nautilus_actions_config_action_get_new_default_profile_name (NautilusActionsConfigAction *action, gchar** new_profile_name, gchar** new_profile_desc_name)
 {
 	GSList* profile_names = nautilus_actions_config_action_get_all_profile_names (action);
@@ -439,6 +461,12 @@ nautilus_actions_config_action_get_profile (NautilusActionsConfigAction *action,
 	}
 }
 
+guint
+nautilus_actions_config_action_get_profiles_count( const NautilusActionsConfigAction *action )
+{
+	return( action ? g_hash_table_size( action->profiles ) : 0 );
+}
+
 NautilusActionsConfigActionProfile *nautilus_actions_config_action_get_or_create_profile (NautilusActionsConfigAction *action,
 									 const gchar* profile_name)
 {
@@ -957,3 +985,30 @@ nautilus_actions_config_action_free (NautilusActionsConfigAction *action)
 		action = NULL;
 	}
 }
+
+static void
+dump_profile( gchar *key, NautilusActionsConfigActionProfile *profile, gchar *thisfn )
+{
+	g_debug( "%s: [%s]  desc_name='%s'", thisfn, key, profile->desc_name );
+	/*g_debug( "%s: [%s]  basenames='%s'", thisfn, key, profile->basenames );*/
+	/*g_debug( "%s: [%s]  mimetypes='%s'", thisfn, key, profile->mimetypes );*/
+	g_debug( "%s: [%s]       path='%s'", thisfn, key, profile->path );
+	g_debug( "%s: [%s] parameters='%s'", thisfn, key, profile->parameters );
+	/*g_debug( "%s: [%s]    schemes='%s'", thisfn, key, profile->schemes );*/
+}
+
+void
+nautilus_actions_config_action_dump( NautilusActionsConfigAction *action )
+{
+	static const char *thisfn = "nautilus_actions_config_action_dump";
+	if (action != NULL){
+		g_debug( "%s:         uuid='%s'", thisfn, action->uuid );
+		g_debug( "%s:        label='%s'", thisfn, action->label );
+		g_debug( "%s:      tooltip='%s'", thisfn, action->tooltip );
+		g_debug( "%s: conf_section='%s'", thisfn, action->conf_section );
+		g_debug( "%s:         icon='%s'", thisfn, action->icon );
+		g_debug( "%s:      version='%s'", thisfn, action->version );
+		g_debug( "%s: %d profile(s) at %p", thisfn, nautilus_actions_config_action_get_profiles_count( action ), action->profiles );
+		g_hash_table_foreach( action->profiles, ( GHFunc ) dump_profile, ( gpointer ) thisfn );
+	}
+}
diff --git a/libnautilus-actions/nautilus-actions-config.h b/libnautilus-actions/nautilus-actions-config.h
index 3e5638d..d4c073f 100644
--- a/libnautilus-actions/nautilus-actions-config.h
+++ b/libnautilus-actions/nautilus-actions-config.h
@@ -134,6 +134,8 @@ NautilusActionsConfigActionProfile *nautilus_actions_config_action_profile_new_d
 gboolean                     nautilus_actions_config_action_profile_exists (NautilusActionsConfigAction *action,
 									 const gchar* profile_name);
 GSList				*nautilus_actions_config_action_get_all_profile_names (NautilusActionsConfigAction *action);
+void                 nautilus_actions_config_action_free_all_profile_names( GSList *list );
+gchar               *nautilus_actions_config_action_get_first_profile_name( const NautilusActionsConfigAction *action );
 void				 nautilus_actions_config_action_get_new_default_profile_name (NautilusActionsConfigAction *action,
 									gchar** new_profile_name,
 									gchar** new_profile_desc_name);
@@ -154,6 +156,8 @@ gboolean                     nautilus_actions_config_action_rename_profile (Naut
 									 const gchar* old_profile_name,
 								 	 const gchar* new_profile_name,
 									 GError** error);
+guint                        nautilus_actions_config_action_get_profiles_count( const NautilusActionsConfigAction *action );
+
 
 NautilusActionsConfigAction *nautilus_actions_config_action_new (void);
 NautilusActionsConfigAction *nautilus_actions_config_action_new_default (void);
@@ -190,6 +194,7 @@ void                         nautilus_actions_config_action_profile_free (Nautil
 NautilusActionsConfigAction *nautilus_actions_config_action_dup (NautilusActionsConfigAction *action);
 NautilusActionsConfigAction *nautilus_actions_config_action_dup_new (NautilusActionsConfigAction *action);
 void                         nautilus_actions_config_action_free (NautilusActionsConfigAction *action);
+void                         nautilus_actions_config_action_dump (NautilusActionsConfigAction *action);
 
 G_END_DECLS
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]