[nautilus-actions] Fix profiles list allocation
- From: Pierre Wieser <pwieser src gnome org>
- To: svn-commits-list gnome org
- Subject: [nautilus-actions] Fix profiles list allocation
- Date: Thu, 28 May 2009 17:47:49 -0400 (EDT)
commit 20e317b19ae89bbf3758631d7cffd627a6fa08d5
Author: Pierre Wieser <pwieser trychlos org>
Date: Thu May 28 17:56:12 2009 +0200
Fix profiles list allocation
---
ChangeLog | 9 +++++++++
plugin/nautilus-actions.c | 14 +++++++++++---
2 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 5d13006..215012b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2009-05-28 Pierre Wieser <pwieser trychlos org>
+
+ * plugin/nautilus-actions.c (nautilus_actions_get_file_items):
+ Fix iteration through profiles list.
+ Do not search through actions when the Nautilus-provided list is empty.
+
+ * plugin/nautilus-actions.c (get_hash_keys):
+ Remove no more used function.
+
2009-05-25 Pierre Wieser <pwieser trychlos org>
* configure.ac:
diff --git a/plugin/nautilus-actions.c b/plugin/nautilus-actions.c
index 181a5c7..0493708 100644
--- a/plugin/nautilus-actions.c
+++ b/plugin/nautilus-actions.c
@@ -143,10 +143,10 @@ static NautilusMenuItem *nautilus_actions_create_menu_item (NautilusActionsConfi
return item;
}
-static void get_hash_keys (gchar* key, gchar* value, GSList** list)
+/*static void get_hash_keys (gchar* key, gchar* value, GSList** list)
{
*list = g_slist_append (*list, key);
-}
+}*/
static GList *nautilus_actions_get_file_items (NautilusMenuProvider *provider, GtkWidget *window, GList *files)
{
@@ -164,6 +164,11 @@ static GList *nautilus_actions_get_file_items (NautilusMenuProvider *provider, G
g_return_val_if_fail (NAUTILUS_IS_ACTIONS (self), NULL);
+ /* no need to go further if there is no files in the list */
+ if( !g_list_length( files )){
+ return(( GList * ) NULL );
+ }
+
if (!self->dispose_has_run)
{
for (iter = self->config_list; iter; iter = iter->next)
@@ -172,7 +177,8 @@ static GList *nautilus_actions_get_file_items (NautilusMenuProvider *provider, G
NautilusActionsConfigAction *action = (NautilusActionsConfigAction*)iter->data;
/* Retrieve all profile name */
- g_hash_table_foreach (action->profiles, (GHFunc)get_hash_keys, &profile_list);
+ /*g_hash_table_foreach (action->profiles, (GHFunc)get_hash_keys, &profile_list);*/
+ profile_list = nautilus_actions_config_action_get_all_profile_names( action );
iter2 = profile_list;
found = FALSE;
@@ -180,6 +186,7 @@ static GList *nautilus_actions_get_file_items (NautilusMenuProvider *provider, G
{
profile_name = (gchar*)iter2->data;
NautilusActionsConfigActionProfile* action_profile = nautilus_actions_config_action_get_profile (action, profile_name);
+ g_debug( "%s: profile='%s' (%p)", thisfn, profile_name, action_profile );
if (nautilus_actions_test_validate (action_profile, files))
{
@@ -190,6 +197,7 @@ static GList *nautilus_actions_get_file_items (NautilusMenuProvider *provider, G
iter2 = iter2->next;
}
+ nautilus_actions_config_action_free_all_profile_names( profile_list );
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]