/* XML Attribute names */
#define ATTAG_BOOK_NAME "name"
#define ATTAG_BOOK_FILE "file"
+#define ATTAG_BOOK_COLLAPSED "collapsed"
#define ATTAG_VCARD_NAME "name"
#define ATTAG_VCARD_FILE "file"
+#define ATTAG_VCARD_COLLAPSED "collapsed"
#define ATTAG_JPILOT_NAME "name"
#define ATTAG_JPILOT_FILE "file"
+#define ATTAG_JPILOT_COLLAPSED "collapsed"
#define ATTAG_JPILOT_CUSTOM_1 "custom-1"
#define ATTAG_JPILOT_CUSTOM_2 "custom-2"
#define ATTAG_JPILOT_CUSTOM_3 "custom-3"
#define ATTAG_JPILOT_CUSTOM "custom-"
#define ATTAG_LDAP_NAME "name"
+#define ATTAG_LDAP_COLLAPSED "collapsed"
#define ATTAG_LDAP_HOST "host"
#define ATTAG_LDAP_PORT "port"
#define ATTAG_LDAP_BASE_DN "base-dn"
iface->getAllGroups = NULL;
iface->getName = NULL;
iface->listSource = NULL;
+ iface->setCollapsedFlag = NULL;
/* Search stuff */
iface->externalQuery = FALSE;
iface->readOnly = FALSE;
iface->getModifyFlag = ( void * ) addrbook_get_modified;
iface->getAccessFlag = ( void * ) addrbook_get_accessed;
+ iface->getCollapsedFlag = ( void * ) addrbook_get_collapsed;
iface->getReadFlag = ( void * ) addrbook_get_read_flag;
iface->getStatusCode = ( void * ) addrbook_get_status;
iface->getReadData = ( void * ) addrbook_read_data;
iface->getAllGroups = ( void * ) addrbook_get_all_groups;
iface->getName = ( void * ) addrbook_get_name;
iface->setAccessFlag = ( void * ) addrbook_set_accessed;
+ iface->setCollapsedFlag = ( void * ) addrbook_set_collapsed;
iface->searchOrder = 0;
/* Add to list of interfaces in address book */
ADDR_IF_VCARD, "vCard", TAG_IF_VCARD, TAG_DS_VCARD );
iface->getModifyFlag = ( void * ) vcard_get_modified;
iface->getAccessFlag = ( void * ) vcard_get_accessed;
+ iface->getCollapsedFlag = ( void * ) vcard_get_collapsed;
iface->getReadFlag = ( void * ) vcard_get_read_flag;
iface->getStatusCode = ( void * ) vcard_get_status;
iface->getReadData = ( void * ) vcard_read_data;
iface->getAllPersons = ( void * ) vcard_get_all_persons;
iface->getName = ( void * ) vcard_get_name;
iface->setAccessFlag = ( void * ) vcard_set_accessed;
+ iface->setCollapsedFlag = ( void * ) vcard_set_collapsed;
iface->searchOrder = 0;
addrIndex->interfaceList =
g_list_append( addrIndex->interfaceList, iface );
iface->useInterface = iface->haveLibrary;
iface->getModifyFlag = ( void * ) jpilot_get_modified;
iface->getAccessFlag = ( void * ) jpilot_get_accessed;
+ iface->getCollapsedFlag = ( void * ) jpilot_get_collapsed;
iface->getReadFlag = ( void * ) jpilot_get_read_flag;
iface->getStatusCode = ( void * ) jpilot_get_status;
iface->getReadData = ( void * ) jpilot_read_data;
iface->getAllPersons = ( void * ) jpilot_get_all_persons;
iface->getName = ( void * ) jpilot_get_name;
iface->setAccessFlag = ( void * ) jpilot_set_accessed;
+ iface->setCollapsedFlag = ( void * ) jpilot_set_collapsed;
iface->searchOrder = 0;
#else
iface->useInterface = FALSE;
iface->useInterface = iface->haveLibrary;
iface->getModifyFlag = ( void * ) ldapsvr_get_modified;
iface->getAccessFlag = ( void * ) ldapsvr_get_accessed;
+ iface->getCollapsedFlag = NULL;
iface->getReadFlag = ( void * ) ldapsvr_get_read_flag;
iface->getStatusCode = ( void * ) ldapsvr_get_status;
iface->getReadData = ( void * ) ldapsvr_read_data;
iface->getListPerson = ( void * ) ldapsvr_get_list_person;
iface->getName = ( void * ) ldapsvr_get_name;
iface->setAccessFlag = ( void * ) ldapsvr_set_accessed;
+ iface->setCollapsedFlag = NULL;
iface->externalQuery = TRUE;
iface->searchOrder = 1;
#else
else if( strcmp( name, ATTAG_BOOK_FILE ) == 0) {
addrbook_set_file( abf, value );
}
+ else if( strcmp( name, ATTAG_BOOK_COLLAPSED ) == 0) {
+ addrbook_set_collapsed( abf,
+ (strcmp( value, ATVAL_BOOLEAN_YES ) == 0) ? TRUE : FALSE );
+ }
attr = g_list_next( attr );
}
ds->rawDataSource = abf;
return -1;
if (addrindex_write_attr( fp, ATTAG_BOOK_FILE, abf->fileName ) < 0)
return -1;
+ if (addrindex_write_attr( fp, ATTAG_BOOK_COLLAPSED,
+ abf->addressCache->collapsedFlag ? ATVAL_BOOLEAN_YES : ATVAL_BOOLEAN_NO ) < 0)
+ return -1;
if (claws_fputs( " />\n", fp ) == EOF)
return -1;
}
else if( strcmp( name, ATTAG_VCARD_FILE ) == 0) {
vcard_set_file( vcf, value );
}
+ else if( strcmp( name, ATTAG_VCARD_COLLAPSED ) == 0) {
+ vcard_set_collapsed( vcf,
+ (strcmp( value, ATVAL_BOOLEAN_YES ) == 0) ? TRUE : FALSE );
+ }
attr = g_list_next( attr );
}
ds->rawDataSource = vcf;
return -1;
if (addrindex_write_attr( fp, ATTAG_VCARD_FILE, vcf->path ) < 0)
return -1;
+ if (addrindex_write_attr( fp, ATTAG_VCARD_COLLAPSED,
+ vcf->addressCache->collapsedFlag ? ATVAL_BOOLEAN_YES : ATVAL_BOOLEAN_NO ) < 0)
+ return -1;
if (claws_fputs( " />\n", fp ) == EOF)
return -1;
}
else if( strcmp( name, ATTAG_JPILOT_CUSTOM_4 ) == 0 ) {
jpilot_add_custom_label( jpf, value );
}
+ else if( strcmp( name, ATTAG_JPILOT_COLLAPSED ) == 0 ) {
+ jpilot_set_collapsed( jpf,
+ (strcmp( value, ATVAL_BOOLEAN_YES ) == 0) ? TRUE : FALSE );
+ }
attr = g_list_next( attr );
}
ds->rawDataSource = jpf;
return -1;
if (addrindex_write_attr( fp, ATTAG_JPILOT_FILE, jpf->path ) < 0)
return -1;
+ if (addrindex_write_attr( fp, ATTAG_JPILOT_COLLAPSED,
+ jpf->addressCache->collapsedFlag ? ATVAL_BOOLEAN_YES : ATVAL_BOOLEAN_NO ) < 0)
+ return -1;
node = customLbl;
ind = 1;
while( node ) {
gchar *serverName = NULL;
gchar *criteria = NULL;
gboolean bDynSearch;
- gboolean bTLS, bSSL;
+ gboolean bTLS, bSSL, bCollapsed;
gint iMatch;
gchar *password = NULL;
bSSL = TRUE;
}
}
+ else if( strcmp( name, ATTAG_LDAP_COLLAPSED ) == 0 ) {
+ bCollapsed = FALSE;
+ if( strcmp( value, ATVAL_BOOLEAN_YES ) == 0 ) {
+ bCollapsed = TRUE;
+ }
+ }
attr = g_list_next( attr );
}
nodeDS = iface->listSource;
if (addrindex_write_elem_s( fp, lvlList, iface->listTag ) < 0)
return -1;
+ if (addrindex_write_attr( fp, ATTAG_BOOK_COLLAPSED,
+ iface->isCollapsed ? ATVAL_BOOLEAN_YES : ATVAL_BOOLEAN_NO ) < 0)
+ return -1;
if (claws_fputs( ">\n", fp ) == EOF)
return -1;
while( nodeDS ) {
return retVal;
}
+/*
+ * Return collapsed flag for specified data source.
+ */
+gboolean addrindex_ds_get_collapsed_flag( AddressDataSource *ds ) {
+ gboolean retVal = FALSE;
+ AddressInterface *iface;
+
+fprintf(stderr, "==> addrindex_ds_get_collapsed_flag:\n");
+ if( ds == NULL ) return retVal;
+ iface = ds->interface;
+ if( iface == NULL ) return retVal;
+ if( iface->getCollapsedFlag ) {
+fprintf(stderr, "==> addrindex_ds_get_collapsed_flag: invoking iface's getCollapsedFlag\n");
+ retVal = ( iface->getCollapsedFlag ) ( ds->rawDataSource );
+ }
+ return retVal;
+}
+
/*
* Return status code for specified data source.
*/
}
}
+/*
+ * Set the collapsed flag inside the data source.
+ */
+void addrindex_ds_set_collapsed_flag( AddressDataSource *ds, gboolean *value ) {
+ AddressInterface *iface;
+
+fprintf(stderr, "==> addrindex_ds_set_collapsed_flag:\n");
+ if( ds == NULL ) return;
+ iface = ds->interface;
+ if( iface == NULL ) return;
+ if( iface->setCollapsedFlag) {
+fprintf(stderr, "==> addrindex_ds_set_collapsed_flag: invoking iface's setCollapsedFlag\n");
+ ( iface->setCollapsedFlag ) ( ds->rawDataSource, *value );
+ }
+}
+
/*
* Return read only flag for specified data source.
*/