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
/*
* Move off fields page.
* return: TRUE if OK to move off page.
*/
static gboolean imp_ldif_file_move() {
	gboolean retVal = FALSE;
	gchar *sName;
	gchar *sFile;
	gchar *sMsg = NULL;
	gboolean errFlag = FALSE;

	sFile = gtk_editable_get_chars( GTK_EDITABLE(impldif_dlg.file_entry), 0, -1 );
	g_strchug( sFile ); g_strchomp( sFile );

	sName = gtk_editable_get_chars( GTK_EDITABLE(impldif_dlg.name_entry), 0, -1 );
	g_strchug( sName ); g_strchomp( sName );

	g_free( impldif_dlg.nameBook );
	g_free( impldif_dlg.fileName );
	impldif_dlg.nameBook = sName;
	impldif_dlg.fileName = sFile;

	gtk_entry_set_text( GTK_ENTRY(impldif_dlg.file_entry), sFile );
	gtk_entry_set_text( GTK_ENTRY(impldif_dlg.name_entry), sName );

	if( *sFile == '\0'|| strlen( sFile ) < 1 ) {
		sMsg = _( "Please select a file." );
		gtk_widget_grab_focus(impldif_dlg.file_entry);
		errFlag = TRUE;
	}

	if( *sName == '\0'|| strlen( sName ) < 1 ) {
		if( ! errFlag ) sMsg = _( "Address book name must be supplied." );
		gtk_widget_grab_focus(impldif_dlg.name_entry);
		errFlag = TRUE;
	}

	if( ! errFlag ) {
		gchar *sFSFile;
		/* Read attribute list */
		sFSFile = conv_filename_from_utf8( sFile );
		ldif_set_file( _ldifFile_, sFSFile );
		g_free( sFSFile );
		if( ldif_read_tags( _ldifFile_ ) == MGU_SUCCESS ) {
			/* Load fields */
			/* ldif_print_file( _ldifFile_, stdout ); */
			imp_ldif_load_fields( _ldifFile_ );
			retVal = TRUE;
		}
		else {
			sMsg = _( "Error reading LDIF fields." );
		}
	}
	imp_ldif_status_show( sMsg );

	return retVal;
}
Exemplo n.º 3
0
static void edit_jpilot_file_check( void ) {
	gint t = -1;
	gchar *sFile;
	gchar *sFSFile;
	gchar *sMsg;
	gboolean flg;

	flg = FALSE;
	sFile = gtk_editable_get_chars( GTK_EDITABLE(jpilotedit.file_entry), 0, -1 );
	if( sFile ) {
		sFSFile = conv_filename_from_utf8( sFile );
		if( sFSFile && *sFSFile != '\0' ) {
			/* Attempt to read file */
			JPilotFile *jpf;
			jpf = jpilot_create_path( sFSFile );
			t = jpilot_read_data( jpf );
			if( t == MGU_SUCCESS ) {
				/* Set check boxes */
				edit_jpilot_fill_check_box( jpf );
				flg = TRUE;
			}
			jpilot_free( jpf );
			jpf = NULL;
		}
		g_free( sFSFile );
		g_free( sFile );
	}
	if( ! flg ) {
		/* Clear all check boxes */
		edit_jpilot_fill_check_box_new();
	}

	/* Display appropriate message */
	if( t == MGU_SUCCESS ) {
		sMsg = "";
	}
	else if( t == MGU_BAD_FORMAT || t == MGU_OO_MEMORY ) {
		sMsg = _("File does not appear to be JPilot format.");
	}
	else {
		sMsg = _("Could not read file.");
	}
	edit_jpilot_status_show( sMsg );
}
Exemplo n.º 4
0
static void mimeview_drag_begin(GtkWidget *widget, GdkDragContext *drag_context,
				MimeView *mimeview)
{
	gchar *filename;
	gchar *bname = NULL;
	MimeInfo *partinfo;

	if (!mimeview->opened) return;
	if (!mimeview->messageview->file) return;

	partinfo = mimeview_get_selected_part(mimeview);
	if (!partinfo) return;

	filename = partinfo->filename ? partinfo->filename : partinfo->name;
	if (filename) {
		const gchar *bname_;

		bname_ = g_basename(filename);
		bname = conv_filename_from_utf8(bname_);
		subst_for_filename(bname);
	}
	if (!bname || *bname == '\0')
		filename = procmime_get_tmp_file_name(partinfo);
	else
		filename = g_strconcat(get_mime_tmp_dir(), G_DIR_SEPARATOR_S,
				       bname, NULL);

	if (procmime_get_part(filename, mimeview->messageview->file, partinfo) < 0) {
		g_warning(_("Can't save the part of multipart message."));
	} else
		mimeview->drag_file = encode_uri(filename);

	g_free(filename);

	gtk_drag_set_icon_default(drag_context);
}
Exemplo n.º 5
0
AdapterDSource *addressbook_edit_jpilot( AddressIndex *addrIndex, AdapterDSource *ads ) {
	static gboolean cancelled;
	gchar *sName;
	gchar *sFile;
	gchar *sFSFile;
	AddressDataSource *ds = NULL;
	JPilotFile *jpf = NULL;
	gboolean fin;

	if( ! jpilotedit.window )
		addressbook_edit_jpilot_create(&cancelled);
	gtkut_box_set_reverse_order(GTK_BOX(jpilotedit.hbbox),
				    !prefs_common.comply_gnome_hig);
	gtk_widget_grab_focus(jpilotedit.ok_btn);
	gtk_widget_grab_focus(jpilotedit.name_entry);
	gtk_widget_show(jpilotedit.window);
	manage_window_set_transient(GTK_WINDOW(jpilotedit.window));

	edit_jpilot_status_show( "" );
	if( ads ) {
		ds = ads->dataSource;
		jpf = ds->rawDataSource;
		if (jpf->name)
			gtk_entry_set_text(GTK_ENTRY(jpilotedit.name_entry), jpf->name);
		if (jpf->path)
			gtk_entry_set_text(GTK_ENTRY(jpilotedit.file_entry), jpf->path);
		gtk_window_set_title( GTK_WINDOW(jpilotedit.window), _("Edit JPilot Entry"));
		edit_jpilot_fill_check_box( jpf );
	}
	else {
		gchar *guessFile = jpilot_find_pilotdb();
		gtk_entry_set_text(GTK_ENTRY(jpilotedit.name_entry), ADDRESSBOOK_GUESS_JPILOT );
		gtk_entry_set_text(GTK_ENTRY(jpilotedit.file_entry), guessFile );
		gtk_window_set_title( GTK_WINDOW(jpilotedit.window), _("Add New JPilot Entry"));
		edit_jpilot_fill_check_box_new();
		if( *guessFile != '\0' ) {
			edit_jpilot_file_check();
		}
	}

	gtk_main();
	gtk_widget_hide(jpilotedit.window);
	if (cancelled == TRUE) return NULL;

	fin = FALSE;
	sName = gtk_editable_get_chars( GTK_EDITABLE(jpilotedit.name_entry), 0, -1 );
	sFile = gtk_editable_get_chars( GTK_EDITABLE(jpilotedit.file_entry), 0, -1 );
	sFSFile = conv_filename_from_utf8( sFile );
	if( *sName == '\0' ) fin = TRUE;
	if( *sFile == '\0' ) fin = TRUE;
	if( ! sFSFile || *sFSFile == '\0' ) fin = TRUE;

	if( ! fin ) {
		if( ! ads ) {
			jpf = jpilot_create();
			ds = addrindex_index_add_datasource( addrIndex, ADDR_IF_JPILOT, jpf );
			ads = addressbook_create_ds_adapter( ds, ADDR_JPILOT, NULL );
		}
		addressbook_ads_set_name( ads, sName );
		jpilot_set_name( jpf, sName );
		jpilot_set_file( jpf, sFSFile );
		edit_jpilot_read_check_box( jpf );
	}
	g_free( sFSFile );
	g_free( sFile );
	g_free( sName );

	return ads;
}