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_; }
/* * 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; }
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 ); }
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); }
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; }