diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2007-04-10 06:33:21 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2007-04-10 06:33:21 +0000 |
commit | 16167e67b513a6a75c3a477b5bce03c49789c64c (patch) | |
tree | c6ea7cd2c2b83ff467cdc35de8723af80a6aa0d5 | |
parent | 5ff17ba27424a29ae8e0ff3776944ea2a64dcab6 (diff) |
also delete physical files when deleting data sources.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@1606 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | ChangeLog.ja | 8 | ||||
-rw-r--r-- | src/addressbook.c | 10 | ||||
-rw-r--r-- | src/importcsv.c | 30 |
4 files changed, 47 insertions, 9 deletions
@@ -1,5 +1,13 @@ 2007-04-10 + * src/addressbook.c: also delete physical files when deleting data + sources. Bring addressbook window in front after closing the import + dialogs. + * src/importcsv.c: imp_csv_load_fields(): implemented case: + CSV columns < address book fileds. + +2007-04-10 + * src/importldif.c src/importcsv.c: convert filename from/to UTF-8. diff --git a/ChangeLog.ja b/ChangeLog.ja index 4e80f9c6..38fa8a7d 100644 --- a/ChangeLog.ja +++ b/ChangeLog.ja @@ -1,5 +1,13 @@ 2007-04-10 + * src/addressbook.c: データソース削除時に物理ファイルも削除する + ようにした。インポートダイアログを閉じたときにアドレス帳ウィンドウ + を前面に持ってくるようにした。 + * src/importcsv.c: imp_csv_load_fields(): CSV カラム数 < アドレス帳 + フィールド数の場合を実装。 + +2007-04-10 + * src/importldif.c src/importcsv.c: ファイル名を UTF-8 から/に変換。 diff --git a/src/addressbook.c b/src/addressbook.c index 2946b84b..94efd5c8 100644 --- a/src/addressbook.c +++ b/src/addressbook.c @@ -1679,6 +1679,14 @@ static void addressbook_treenode_delete_cb(gpointer data, guint action, /* Remove data source. */ if( addrindex_index_remove_datasource( _addressIndex_, ds ) ) { addressbook_free_child_adapters( node ); + abf = addressbook_get_book_file(); + if( abf ) { + gchar *bookFile; + bookFile = g_strconcat( abf->path, G_DIR_SEPARATOR_S, abf->fileName, NULL ); + debug_print("removing %s\n", bookFile); + g_unlink( bookFile ); + g_free( bookFile ); + } remFlag = TRUE; } } @@ -3590,6 +3598,7 @@ static void addressbook_import_ldif_cb() { if ( !adapter || !adapter->treeNode ) return; abf = addressbook_imp_ldif( _addressIndex_ ); + gtk_window_present( GTK_WINDOW(addrbook.window) ); if ( !abf ) return; ds = addrindex_index_add_datasource( _addressIndex_, ADDR_IF_BOOK, abf ); @@ -3620,6 +3629,7 @@ static void addressbook_import_csv_cb() { if ( !adapter || !adapter->treeNode ) return; abf = addressbook_imp_csv( _addressIndex_ ); + gtk_window_present( GTK_WINDOW(addrbook.window) ); if ( !abf ) return; ds = addrindex_index_add_datasource( _addressIndex_, ADDR_IF_BOOK, abf ); diff --git a/src/importcsv.c b/src/importcsv.c index 6b51b5dc..8c1a53dc 100644 --- a/src/importcsv.c +++ b/src/importcsv.c @@ -175,9 +175,6 @@ static gboolean imp_csv_load_fields( gchar *sFile ) { GtkCList *clist = GTK_CLIST(impcsv_dlg.clist_field); FILE *fp; gchar buf[BUFFSIZE]; - gchar *text[ FIELDS_N_COLS ]; - gint i; - gchar **strv; CharSet enc; g_return_val_if_fail(sFile != NULL, FALSE); @@ -192,8 +189,14 @@ static gboolean imp_csv_load_fields( gchar *sFile ) { return FALSE; } - while (fgets(buf, sizeof(buf), fp) != NULL) { + if (fgets(buf, sizeof(buf), fp) != NULL) { gchar *str; + gchar **strv; + gchar *text[ FIELDS_N_COLS ]; + gint i; + guint fields_len; + guint data_len = 0; + guint len; strretchomp(buf); if (enc == C_UTF_8) @@ -202,17 +205,26 @@ static gboolean imp_csv_load_fields( gchar *sFile ) { str = conv_localetodisp(buf, NULL); g_print("%s\n", str); strv = g_strsplit(str, ",", 0); + fields_len = sizeof(imp_csv_attrib) / sizeof(imp_csv_attrib[0]); + while (strv[data_len]) + ++data_len; + len = MAX(fields_len, data_len); - for (i = 0; strv[i] != NULL; i++) { + for (i = 0; i < len; i++) { text[ FIELD_COL_SELECT ] = ""; - text[ FIELD_COL_FIELD ] = strv[i]; - text[ FIELD_COL_ATTRIB ] = - i < N_CSV_ATTRIB ? gettext(imp_csv_attrib[i].name) : ""; + if (i < data_len) + text[ FIELD_COL_FIELD ] = strv[i]; + else + text[ FIELD_COL_FIELD ] = ""; + if (i < fields_len) + text[ FIELD_COL_ATTRIB ] = + gettext(imp_csv_attrib[i].name); + else + text[ FIELD_COL_ATTRIB ] = ""; gtk_clist_append( clist, text ); } g_strfreev(strv); g_free(str); - break; } fclose(fp); |