void nagp_reader_read_done( const NAIFactoryProvider *provider, void *reader_data, const NAIFactoryObject *object, GSList **messages ) { static const gchar *thisfn = "nagp_reader_read_done"; gboolean writable; g_return_if_fail( NA_IS_IFACTORY_PROVIDER( provider )); g_return_if_fail( NAGP_IS_GCONF_PROVIDER( provider )); g_return_if_fail( NA_IS_IFACTORY_OBJECT( object )); if( !NAGP_GCONF_PROVIDER( provider )->private->dispose_has_run ){ g_debug( "%s: provider=%p (%s), reader_data=%p, object=%p (%s), messages=%p", thisfn, ( void * ) provider, G_OBJECT_TYPE_NAME( provider ), ( void * ) reader_data, ( void * ) object, G_OBJECT_TYPE_NAME( object ), ( void * ) messages ); if( NA_IS_OBJECT_ITEM( object )){ writable = read_done_item_is_writable( provider, NA_OBJECT_ITEM( object ), ( ReaderData * ) reader_data, messages ); na_object_set_readonly( object, !writable ); } if( NA_IS_OBJECT_ACTION( object )){ read_done_action_read_profiles( provider, NA_OBJECT_ACTION( object ), ( ReaderData * ) reader_data, messages ); } g_debug( "%s: quitting for %s at %p", thisfn, G_OBJECT_TYPE_NAME( object ), ( void * ) object ); } }
static void write_done_write_subitems_list( CappDesktopFile *ndp, NAObjectItem *item ) { static const gchar *thisfn = "cadp_writer_write_done_write_subitems_list"; GSList *subitems; GSList *profile_groups, *ip; gchar *tmp; subitems = na_object_get_items_slist( item ); tmp = g_strdup_printf( "%s (written subitems)", thisfn ); na_core_utils_slist_dump( tmp, subitems ); g_free( tmp ); cadp_desktop_file_set_string_list( ndp, CADP_GROUP_DESKTOP, NA_IS_OBJECT_ACTION( item ) ? CADP_KEY_PROFILES : CADP_KEY_ITEMS_LIST, subitems ); profile_groups = cadp_desktop_file_get_profiles( ndp ); tmp = g_strdup_printf( "%s (existing profiles)", thisfn ); na_core_utils_slist_dump( tmp, profile_groups ); g_free( tmp ); for( ip = profile_groups ; ip ; ip = ip->next ){ if( na_core_utils_slist_count( subitems, ( const gchar * ) ip->data ) == 0 ){ g_debug( "%s: deleting (removed) profile %s", thisfn, ( const gchar * ) ip->data ); cadp_desktop_file_remove_profile( ndp, ( const gchar * ) ip->data ); } } na_core_utils_slist_free( profile_groups ); na_core_utils_slist_free( subitems ); }
/* * called when each NAIFactoryObject object has been read */ void nadp_reader_ifactory_provider_read_done( const NAIFactoryProvider *reader, void *reader_data, const NAIFactoryObject *serializable, GSList **messages ) { static const gchar *thisfn = "nadp_reader_ifactory_provider_read_done"; gboolean writable; g_return_if_fail( NA_IS_IFACTORY_PROVIDER( reader )); g_return_if_fail( NADP_IS_DESKTOP_PROVIDER( reader )); g_return_if_fail( NA_IS_IFACTORY_OBJECT( serializable )); if( !NADP_DESKTOP_PROVIDER( reader )->private->dispose_has_run ){ g_debug( "%s: reader=%p (%s), reader_data=%p, serializable=%p (%s), messages=%p", thisfn, ( void * ) reader, G_OBJECT_TYPE_NAME( reader ), ( void * ) reader_data, ( void * ) serializable, G_OBJECT_TYPE_NAME( serializable ), ( void * ) messages ); if( NA_IS_OBJECT_ITEM( serializable )){ writable = read_done_item_is_writable( reader, NA_OBJECT_ITEM( serializable ), ( NadpReaderData * ) reader_data, messages ); na_object_set_readonly( serializable, !writable ); } if( NA_IS_OBJECT_ACTION( serializable )){ read_done_action_read_profiles( reader, NA_OBJECT_ACTION( serializable ), ( NadpReaderData * ) reader_data, messages ); } g_debug( "%s: quitting for %s at %p", thisfn, G_OBJECT_TYPE_NAME( serializable ), ( void * ) serializable ); } }
static void write_start_write_type( CappDesktopFile *ndp, NAObjectItem *item ) { cadp_desktop_file_set_string( ndp, CADP_GROUP_DESKTOP, CADP_KEY_TYPE, NA_IS_OBJECT_ACTION( item ) ? CADP_VALUE_TYPE_ACTION : CADP_VALUE_TYPE_MENU ); }
static void read_start_read_subitems_key( const NAIFactoryProvider *provider, NAObjectItem *item, NadpReaderData *reader_data, GSList **messages ) { GSList *subitems; gboolean key_found; subitems = nadp_desktop_file_get_string_list( reader_data->ndf, NADP_GROUP_DESKTOP, NA_IS_OBJECT_ACTION( item ) ? NADP_KEY_PROFILES : NADP_KEY_ITEMS_LIST, &key_found, NULL ); if( key_found ){ na_object_set_items_slist( item, subitems ); } na_core_utils_slist_free( subitems ); }