[nautilus-actions] Explicitly write subitems string list



commit a964022da74d1b15a3219a73add6f62c154ff4e4
Author: Pierre Wieser <pwieser trychlos org>
Date:   Mon Mar 29 05:39:13 2010 +0200

    Explicitly write subitems string list
    
    As same 'subitems string list' data has different keys for actions (Profiles) and menus
    (ItemsList), we have to explicitly write this data.

 ChangeLog                              |    7 +++++++
 src/io-desktop/nadp-desktop-provider.c |    2 +-
 src/io-desktop/nadp-writer.c           |   21 +++++++++++++++++++++
 src/io-desktop/nadp-writer.h           |    4 ++++
 4 files changed, 33 insertions(+), 1 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index d923541..3051f17 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -123,6 +123,13 @@
 	(nadp_desktop_file_get_file_type):
 	Do not emit a warning if Type is not found in the .desktop file.
 
+2009-03-29 Pierre Wieser <pwieser trychlos org>
+
+	* src/io-desktop/nadp-desktop-provider.c (ifactory_provider_iface_init):
+	* src/io-desktop/nadp-writer.c:
+	* src/io-desktop/nadp-writer.h (nadp_writer_ifactory_provider_write_done):
+	New function: explicitly write subitems string list for actions and menus.
+
 2009-03-28 Pierre Wieser <pwieser trychlos org>
 
 	* src/api/na-data-boxed.h:
diff --git a/src/io-desktop/nadp-desktop-provider.c b/src/io-desktop/nadp-desktop-provider.c
index 64a791a..613f179 100644
--- a/src/io-desktop/nadp-desktop-provider.c
+++ b/src/io-desktop/nadp-desktop-provider.c
@@ -228,7 +228,7 @@ ifactory_provider_iface_init( NAIFactoryProviderInterface *iface )
 	iface->read_done = nadp_reader_ifactory_provider_read_done;
 	iface->write_start = nadp_writer_ifactory_provider_write_start;
 	iface->write_data = nadp_writer_ifactory_provider_write_data;
-	iface->write_done = NULL;
+	iface->write_done = nadp_writer_ifactory_provider_write_done;
 }
 
 static guint
diff --git a/src/io-desktop/nadp-writer.c b/src/io-desktop/nadp-writer.c
index f5348e0..1be0b42 100644
--- a/src/io-desktop/nadp-writer.c
+++ b/src/io-desktop/nadp-writer.c
@@ -406,3 +406,24 @@ nadp_writer_ifactory_provider_write_data(
 
 	return( code );
 }
+
+guint
+nadp_writer_ifactory_provider_write_done( const NAIFactoryProvider *provider, void *writer_data,
+							const NAIFactoryObject *object, GSList **messages  )
+{
+	GSList *subitems;
+
+	if( NA_IS_OBJECT_ITEM( object )){
+		subitems = na_object_get_items_slist( object );
+
+		nadp_desktop_file_set_string_list(
+				NADP_DESKTOP_FILE( writer_data ),
+				NADP_GROUP_DESKTOP,
+				NA_IS_OBJECT_ACTION( object ) ? NADP_KEY_PROFILES : NADP_KEY_ITEMS_LIST,
+				subitems );
+
+		na_core_utils_slist_free( subitems );
+	}
+
+	return( NA_IIO_PROVIDER_CODE_OK );
+}
diff --git a/src/io-desktop/nadp-writer.h b/src/io-desktop/nadp-writer.h
index 291d3d4..0f6cf01 100644
--- a/src/io-desktop/nadp-writer.h
+++ b/src/io-desktop/nadp-writer.h
@@ -49,6 +49,10 @@ guint    nadp_writer_ifactory_provider_write_data(
 				const NAIFactoryProvider *provider, void *writer_data, const NAIFactoryObject *object,
 				const NADataBoxed *boxed, GSList **messages );
 
+guint    nadp_writer_ifactory_provider_write_done(
+				const NAIFactoryProvider *provider, void *writer_data, const NAIFactoryObject *object,
+				GSList **messages  );
+
 G_END_DECLS
 
 #endif /* __NADP_WRITER_H__ */



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