+2009-01-11 [paul] 3.7.0cvs29
+
+ * src/addrclip.c
+ * src/addrindex.c
+ * src/addritem.c
+ * src/foldersel.h
+ * src/folderview.c
+ * src/prefs_folder_item.c
+ clean up some build warnings
+
2009-01-11 [paul] 3.7.0cvs28
* src/gtk/about.c
( cvs diff -u -r 1.382.2.493 -r 1.382.2.494 src/compose.c; cvs diff -u -r 1.274.2.294 -r 1.274.2.295 src/mainwindow.c; cvs diff -u -r 1.36.2.162 -r 1.36.2.163 src/common/utils.c; ) > 3.7.0cvs26.patchset
( cvs diff -u -r 1.65.2.65 -r 1.65.2.66 src/codeconv.c; ) > 3.7.0cvs27.patchset
( cvs diff -u -r 1.4.2.73 -r 1.4.2.74 src/gtk/about.c; ) > 3.7.0cvs28.patchset
+( cvs diff -u -r 1.5.2.8 -r 1.5.2.9 src/addrclip.c; cvs diff -u -r 1.28.2.38 -r 1.28.2.39 src/addrindex.c; cvs diff -u -r 1.13.2.18 -r 1.13.2.19 src/addritem.c; cvs diff -u -r 1.4.12.8 -r 1.4.12.9 src/foldersel.h; cvs diff -u -r 1.207.2.210 -r 1.207.2.211 src/folderview.c; cvs diff -u -r 1.52.2.71 -r 1.52.2.72 src/prefs_folder_item.c; ) > 3.7.0cvs29.patchset
MICRO_VERSION=0
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=28
+EXTRA_VERSION=29
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
return folderGroup;
}
-
-/*
- * ============================================================================
- * Paste address only.
- * ============================================================================
- */
-
-/*
- * Copy email addresses from specified list.
- * Enter: cache Address cache to paste into.
- * target Person to receive email addresses.
- * listEMail List of email addresses.
- * Return: Number of addresses added.
- */
-static gint addrclip_person_add_email(
- AddressCache *cache, ItemPerson *target, GList *listEMail )
-{
- gint cnt;
- GList *node;
-
- /* Copy email addresses */
- cnt = 0;
- node = listEMail;
- while( node ) {
- ItemEMail *email, *newEMail;
-
- email = node->data;
- newEMail = addritem_copy_item_email( email );
- addrcache_id_email( cache, newEMail );
- addrcache_person_add_email( cache, target, newEMail );
- node = g_list_next( node );
- cnt++;
- }
- return cnt;
-}
-
-/*
-* Paste (copy) E-Mail addresses from clipboard into specified person.
-* Enter: aio Address item to copy from.
-* cache Target address cache.
-* person Target person where data is pasted.
-* Return: Number of EMail records added.
-*/
-static gint addrclip_copy_email_to_person(
- AddrItemObject *aio, AddressCache *cache, ItemPerson *person )
-{
- gint cnt;
- GList *listEMail;
-
- cnt = 0;
-
- if( ADDRITEM_TYPE(aio) == ITEMTYPE_PERSON ) {
- ItemPerson *fromPerson;
-
- fromPerson = ( ItemPerson * ) aio;
- listEMail = fromPerson->listEMail;
- cnt += addrclip_person_add_email(
- cache, person, listEMail );
- }
- else if( ADDRITEM_TYPE(aio) == ITEMTYPE_EMAIL ) {
- ItemEMail *email, *newEMail;
-
- email = ( ItemEMail * ) aio;
- newEMail = addritem_copy_item_email( email );
- addrcache_id_email( cache, newEMail );
- addrcache_person_add_email( cache, person, newEMail );
- cnt++;
- }
- else if( ADDRITEM_TYPE(aio) == ITEMTYPE_GROUP ) {
- ItemGroup *group;
-
- group = ( ItemGroup * ) aio;
- listEMail = group->listEMail;
- cnt += addrclip_person_add_email(
- cache, person, listEMail );
- }
- else if( ADDRITEM_TYPE(aio) == ITEMTYPE_FOLDER ) {
- ItemFolder *folder;
- AddrItemObject *item;
- GList *node;
-
- folder = ( ItemFolder * ) aio;
- node = folder->listPerson;
- while( node ) {
- item = node->data;
- node = g_list_next( node );
- cnt += addrclip_copy_email_to_person( item, cache, person );
- }
-
- node = folder->listGroup;
- while( node ) {
- item = node->data;
- node = g_list_next( node );
- cnt += addrclip_copy_email_to_person( item, cache, person );
- }
-
- node = folder->listFolder;
- while( node ) {
- item = node->data;
- node = g_list_next( node );
- cnt += addrclip_copy_email_to_person( item, cache, person );
- }
- }
- return cnt;
-}
-
/*
* End of Source.
*/
return 0;
}
-/**
- * Return DOM fragment for current XML tag from file.
- * \param file XML file being processed.
- * \return Fragment representing DOM fragment for configuration element.
- */
-static AddressIfFragment *addrindex_read_fragment( XMLFile *file ) {
- AddressIfFragment *fragment;
- AddressIfFragment *child;
- AddressIfAttrib *nv;
- XMLTag *xtag;
- GList *list;
- GList *attr;
- gchar *name;
- gchar *value;
- guint prevLevel;
- gint rc;
-
- /* g_print( "addrindex_read_fragment\n" ); */
-
- prevLevel = file->level;
-
- /* Get current tag name */
- xtag = xml_get_current_tag( file );
-
- /* Create new fragment */
- fragment = g_new0( AddressIfFragment, 1 );
- fragment->name = g_strdup( xtag->tag );
- fragment->children = NULL;
- fragment->attributes = NULL;
-
- /* Read attributes */
- list = NULL;
- attr = xml_get_current_tag_attr( file );
- while( attr ) {
- name = ((XMLAttr *)attr->data)->name;
- value = ((XMLAttr *)attr->data)->value;
- nv = g_new0( AddressIfAttrib, 1 );
- nv->name = g_strdup( name );
- nv->value = g_strdup( value );
- list = g_list_append( list, nv );
- attr = g_list_next( attr );
- }
- fragment->attributes = list;
-
- /* Now read the children */
- while( TRUE ) {
- rc = xml_parse_next_tag( file );
- if( rc != 0 ) {
- /* End of file? */
- break;
- }
- if( file->level < prevLevel ) {
- /* We must be above level we start at */
- break;
- }
- child = addrindex_read_fragment( file );
- fragment->children = g_list_append( fragment->children, child );
- }
-
- return fragment;
-}
-
-/**
- * Write DOM fragment to file.
- * \param fp File to write.
- * \param fragment DOM fragment for configuration element.
- * \param lvl Indent level.
- */
-static int addrindex_write_fragment(
- FILE *fp, const AddressIfFragment *fragment, const gint lvl )
-{
- GList *node;
-
- if( fragment ) {
- if (addrindex_write_elem_s( fp, lvl, fragment->name ) < 0)
- return -1;
- node = fragment->attributes;
- while( node ) {
- AddressIfAttrib *nv = node->data;
- if (addrindex_write_attr( fp, nv->name, nv->value ) < 0)
- return -1;
- node = g_list_next( node );
- }
- if( fragment->children ) {
- if (fputs(" >\n", fp) == EOF)
- return -1;
-
- /* Output children */
- node = fragment->children;
- while( node ) {
- AddressIfFragment *child = node->data;
- if (addrindex_write_fragment( fp, child, 1+lvl ) < 0)
- return -1;
- node = g_list_next( node );
- }
-
- /* Output closing tag */
- if (addrindex_write_elem_e( fp, lvl, fragment->name ) < 0)
- return -1;
- }
- else {
- if (fputs(" />\n", fp) == EOF)
- return -1;
- }
- }
-
- return 0;
-}
-
/**
* Read/parse address index file, creating a data source for a regular
* intrinsic XML addressbook.
g_free( folder );
}
-/**
- * Free up folders recursively. Note: this only frees up the lists of
- * children and *NOT* the children objects (folders, groups and person).
- * This should be done prior to calling this function.
- * \param parent Parent folder object to be processed.
- */
-static void addritem_free_item_folder_recurse( ItemFolder *parent ) {
- GList *node = parent->listFolder;
-
- while( node ) {
- ItemFolder *folder = node->data;
- addritem_free_item_folder_recurse( folder );
- node = g_list_next( node );
- }
- g_list_free( parent->listPerson );
- g_list_free( parent->listGroup );
- g_list_free( parent->listFolder );
- parent->listPerson = NULL;
- parent->listGroup = NULL;
- parent->listFolder = NULL;
-}
-
/**
* Add person into folder.
* \param folder Folder.
FolderSelectionType type,
const gchar *default_folder,
gboolean can_sel_mailbox);
+void foldersel_reflect_prefs_pixmap_theme(void);
#endif /* __FOLDERSEL_H__ */
prefs_common.folder_col_size[type] = width;
}
-static void folderview_create_folder_node_recursive(FolderView *folderview, FolderItem *item)
-{
- GNode *srcnode;
-
- folderview_create_folder_node(folderview, item);
-
- if (!item || !item->folder || !item->folder->node)
- return;
-
- srcnode = item->folder->node;
- srcnode = g_node_find(srcnode, G_PRE_ORDER, G_TRAVERSE_ALL, item);
- srcnode = srcnode->children;
- while (srcnode != NULL) {
- if (srcnode && srcnode->data) {
- FolderItem *next_item = (FolderItem*) srcnode->data;
- folderview_create_folder_node_recursive(folderview, next_item);
- }
- srcnode = srcnode->next;
- }
-}
-
static void folderview_create_folder_node(FolderView *folderview, FolderItem *item)
{
GtkCMCTree *ctree = GTK_CMCTREE(folderview->ctree);
}
static void prefs_folder_item_register_page (PrefsPage *page);
-static void prefs_folder_item_unregister_page (PrefsPage *page);
typedef struct _FolderItemGeneralPage FolderItemGeneralPage;
typedef struct _FolderItemComposePage FolderItemComposePage;
{
prefs_pages = g_slist_append(prefs_pages, page);
}
-
-static void prefs_folder_item_unregister_page(PrefsPage *page)
-{
- prefs_pages = g_slist_remove(prefs_pages, page);
-}