Exemplo n.º 1
0
AddressBookFile *addressbook_imp_ldif_file( AddressIndex *addrIndex,
					    const gchar *file,
					    const gchar *book_name ) {
	gchar *fsfile;
	GList *node, *list;
	gboolean ret = FALSE;

	g_return_val_if_fail(addrIndex != NULL, NULL);
	g_return_val_if_fail(file != NULL, NULL);
	g_return_val_if_fail(book_name != NULL, NULL);

	debug_print("addressbook_imp_ldif_file: file: %s name: %s\n",
		    file, book_name);

	_importedBook_ = NULL;
	_imp_addressIndex_ = addrIndex;
	_ldifFile_ = ldif_create();

	fsfile = conv_filename_from_utf8( file );
	ldif_set_file(_ldifFile_, fsfile);
	g_free( fsfile );

	if( ldif_read_tags( _ldifFile_ ) != MGU_SUCCESS )
		goto finish;
	list = ldif_get_fieldlist( _ldifFile_ );
	node = list;
	while( node ) {
		Ldif_FieldRec *rec = node->data;
		if( ! rec->reserved ) {
			if( g_ascii_strcasecmp( rec->tagName, "dn" ) != 0 ) {
				rec->selected = TRUE;
			}
		}
		node = g_list_next( node );
	}
	g_list_free( list );

	g_free( impldif_dlg.nameBook );
	impldif_dlg.nameBook = g_strdup(book_name);

	ret = imp_ldif_field_move();

	g_free( impldif_dlg.nameBook );
	impldif_dlg.nameBook = NULL;

finish:
	ldif_free( _ldifFile_ );
	_ldifFile_ = NULL;
	_imp_addressIndex_ = NULL;

	if (ret)
		debug_print("addressbook_imp_ldif_file: import succeeded\n");

	return _importedBook_;
}
Exemplo n.º 2
0
/**
 * Import LDIF file.
 * \param  addrIndex Address index.
 * \return Address book file of imported data, or <i>NULL</i> if import
 *         was cancelled.
 */
AddressBookFile *addressbook_imp_ldif( AddressIndex *addrIndex ) {
	_importedBook_ = NULL;
	_imp_addressIndex_ = addrIndex;

	if( ! impldif_dlg.window )
		imp_ldif_create();

	gtk_button_set_label(GTK_BUTTON(impldif_dlg.btnCancel),
			     GTK_STOCK_CANCEL);
	gtk_widget_hide(impldif_dlg.btnProceed);
	gtk_widget_show(impldif_dlg.btnNext);

	impldif_dlg.cancelled = FALSE;
	gtk_widget_show(impldif_dlg.window);
	manage_window_set_transient(GTK_WINDOW(impldif_dlg.window));
	gtk_widget_grab_default(impldif_dlg.btnNext);
	gtk_window_set_modal(GTK_WINDOW(impldif_dlg.window), TRUE);

	gtk_entry_set_text( GTK_ENTRY(impldif_dlg.entryName), IMPORTLDIF_GUESS_NAME );
	gtk_entry_set_text( GTK_ENTRY(impldif_dlg.entryFile), "" );
	gtk_label_set_text( GTK_LABEL(impldif_dlg.entryField), "" );
	gtk_entry_set_text( GTK_ENTRY(impldif_dlg.entryAttrib), "" );
	gtk_cmclist_clear( GTK_CMCLIST(impldif_dlg.clist_field) );
	gtk_notebook_set_current_page( GTK_NOTEBOOK(impldif_dlg.notebook), PAGE_FILE_INFO );
	gtk_widget_set_sensitive( impldif_dlg.btnPrev, FALSE );
	gtk_widget_set_sensitive( impldif_dlg.btnNext, TRUE );
	stock_pixbuf_gdk(STOCK_PIXMAP_MARK, &markxpm );
	imp_ldif_message();
	gtk_widget_grab_focus(impldif_dlg.entryFile);

	impldif_dlg.rowIndSelect = -1;
	impldif_dlg.rowCount = 0;
	g_free( impldif_dlg.nameBook );
	g_free( impldif_dlg.fileName );
	impldif_dlg.nameBook = NULL;
	impldif_dlg.fileName = NULL;

	_ldifFile_ = ldif_create();
	gtk_main();
	gtk_widget_hide(impldif_dlg.window);
	gtk_window_set_modal(GTK_WINDOW(impldif_dlg.window), FALSE);
	ldif_free( _ldifFile_ );
	_ldifFile_ = NULL;
	_imp_addressIndex_ = NULL;

	g_free( impldif_dlg.nameBook );
	g_free( impldif_dlg.fileName );
	impldif_dlg.nameBook = NULL;
	impldif_dlg.fileName = NULL;

	if( impldif_dlg.cancelled == TRUE ) return NULL;
	return _importedBook_;
}