#include "codeconv.h"
#include "about.h"
#include "addr_compl.h"
+#include "password.h"
#include "mgutils.h"
#include "addressitem.h"
{ LDAPRC_CRITERIA, N_("Error in LDAP search criteria") },
{ LDAPRC_NOENTRIES, N_("No LDAP entries found for search criteria") },
{ LDAPRC_STOP_FLAG, N_("LDAP search terminated on request") },
- { LDAPRC_TLS, N_("Error starting TLS connection") },
+ { LDAPRC_TLS, N_("Error starting STARTTLS connection") },
{ LDAPRC_NODN, N_("Distinguished Name (dn) is missing") },
{ LDAPRC_NAMING_VIOLATION, N_("Missing required information") },
{ LDAPRC_ALREADY_EXIST, N_("Another contact exists with that key") },
}
if( _clipBoard_ != NULL ) {
addrclip_free( _clipBoard_ );
+ _clipBoard_ = NULL;
}
if( _addressIndex_ != NULL ) {
addrindex_free_index( _addressIndex_ );
/* Address book window */
window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "addressbook");
- gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER_ALWAYS);
gtk_window_set_title(GTK_WINDOW(window), _("Address book"));
gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
gtk_widget_realize(window);
}
#endif
if( item ) {
- gchar *filename = addritem_person_get_picture(item);
- if (filename && is_file_exist(filename))
- claws_unlink(filename);
- g_free(filename);
+ addritem_person_remove_picture(item);
addritem_free_item_person( item );
}
}
iface = adapter->interface;
if( !iface )
goto just_set_sens;
- if( !iface->readOnly ) {
+ if( !iface->readOnly && iface->type == ADDR_IF_BOOK) {
cm_menu_set_sensitive_full( addrbook.ui_manager, "Popups/ABTreePopup/NewBook", TRUE );
- gtk_widget_set_sensitive( addrbook.reg_btn, TRUE );
}
if( iface->externalQuery )
canLookup = TRUE;
if( !iface )
goto just_set_sens;
if( !iface->readOnly ) {
- canDelete = TRUE;
cm_menu_set_sensitive_full( addrbook.ui_manager, "Popups/ABTreePopup/NewFolder", TRUE );
cm_menu_set_sensitive_full( addrbook.ui_manager, "Popups/ABTreePopup/NewGroup", TRUE );
gtk_widget_set_sensitive( addrbook.reg_btn, TRUE );
}
+ canDelete = TRUE;
canEdit = TRUE;
canTreeCopy = TRUE;
}
canTreeCut = FALSE;
canTreePaste = FALSE;
canCut = FALSE;
- canDelete = FALSE;
canPaste = FALSE;
}
cm_menu_set_sensitive_full( addrbook.ui_manager, "Popups/ABTreePopup/Paste", canTreePaste );
cm_menu_set_sensitive_full( addrbook.ui_manager, "Menu/Book/EditBook", canEdit );
- cm_menu_set_sensitive_full( addrbook.ui_manager, "Menu/Book/DeleteBook", canEdit );
+ cm_menu_set_sensitive_full( addrbook.ui_manager, "Menu/Book/DeleteBook", canDelete );
cm_menu_set_sensitive_full( addrbook.ui_manager, "Menu/Address/Cut", canCut );
cm_menu_set_sensitive_full( addrbook.ui_manager, "Menu/Address/Copy", canCopy );
cm_menu_set_sensitive_full( addrbook.ui_manager, "Menu/Address/Paste", canPaste );
}
static void addressbook_folder_load_person( GtkCMCTree *clist, ItemFolder *itemFolder ) {
- GList *items;
+ GList *items, *cur;
AddressTypeControlItem *atci = addrbookctl_lookup( ADDR_ITEM_PERSON );
AddressTypeControlItem *atciMail = addrbookctl_lookup( ADDR_ITEM_EMAIL );
const gchar *search_str;
/* Load email addresses */
items = addritem_folder_get_person_list( itemFolder );
- for( ; items != NULL; items = g_list_next( items ) ) {
+ for(cur = items ; cur != NULL; cur = g_list_next( cur ) ) {
ItemPerson *person;
GList *node;
ItemEMail *email;
- person = (ItemPerson *)items->data;
+ person = (ItemPerson *)cur->data;
if (!person)
continue;
node = person->listEMail;
continue;
}
- addressbook_folder_load_one_person( clist, items->data, atci, atciMail );
+ addressbook_folder_load_one_person( clist, cur->data, atci, atciMail );
}
/* Free up the list */
mgu_clear_list( items );
void addressbook_read_file( void ) {
AddressIndex *addrIndex = NULL;
gchar *indexdir = g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S, ADDRBOOK_DIR, NULL);
-
+
debug_print( "Reading address index...\n" );
if( _addressIndex_ ) {
debug_print( "address book already read!!!\n" );
+ g_free(indexdir);
return;
}
AddressInterface *iface;
gchar *searchTerm;
GtkCMCTreeNode *node, *parentNode;
+#ifdef USE_LDAP
+ LdapServer *ldap_server;
+ LdapControl *ldap_ctl;
+#endif
node = addrbook.treeSelected;
if( ! node ) return;
if( ! iface->haveLibrary ) return;
if( ! iface->externalQuery ) return;
+#ifdef USE_LDAP
+ if (iface->type == ADDR_IF_LDAP) {
+ ldap_server = ds->rawDataSource;
+ ldap_ctl = ldap_server->control;
+ if (ldap_ctl != NULL &&
+ ldap_ctl->bindDN != NULL && strlen(ldap_ctl->bindDN) > 0) {
+ /* LDAP server is password-protected. */
+ if (master_passphrase() == NULL) {
+ /* User did not enter master passphrase, do not start a search. */
+ return;
+ }
+ }
+ }
+#endif
+
searchTerm =
gtk_editable_get_chars( GTK_EDITABLE(addrbook.entry), 0, -1 );
g_strchomp( searchTerm );
g_object_unref(ldapxpm);
if (addrsearchxpm)
g_object_unref(addrsearchxpm);
- stock_pixbuf_gdk(window, STOCK_PIXMAP_INTERFACE, &interfacexpm );
- stock_pixbuf_gdk(window, STOCK_PIXMAP_DIR_CLOSE, &folderxpm);
- stock_pixbuf_gdk(window, STOCK_PIXMAP_DIR_OPEN, &folderopenxpm);
- stock_pixbuf_gdk(window, STOCK_PIXMAP_GROUP, &groupxpm);
- stock_pixbuf_gdk(window, STOCK_PIXMAP_VCARD, &vcardxpm);
- stock_pixbuf_gdk(window, STOCK_PIXMAP_BOOK, &bookxpm);
- stock_pixbuf_gdk(window, STOCK_PIXMAP_ADDRESS, &addressxpm);
- stock_pixbuf_gdk(window, STOCK_PIXMAP_JPILOT, &jpilotxpm);
- stock_pixbuf_gdk(window, STOCK_PIXMAP_CATEGORY, &categoryxpm);
- stock_pixbuf_gdk(window, STOCK_PIXMAP_LDAP, &ldapxpm);
- stock_pixbuf_gdk(window, STOCK_PIXMAP_ADDRESS_SEARCH, &addrsearchxpm);
+ stock_pixbuf_gdk(STOCK_PIXMAP_INTERFACE, &interfacexpm );
+ stock_pixbuf_gdk(STOCK_PIXMAP_DIR_CLOSE, &folderxpm);
+ stock_pixbuf_gdk(STOCK_PIXMAP_DIR_OPEN, &folderopenxpm);
+ stock_pixbuf_gdk(STOCK_PIXMAP_GROUP, &groupxpm);
+ stock_pixbuf_gdk(STOCK_PIXMAP_VCARD, &vcardxpm);
+ stock_pixbuf_gdk(STOCK_PIXMAP_BOOK, &bookxpm);
+ stock_pixbuf_gdk(STOCK_PIXMAP_ADDRESS, &addressxpm);
+ stock_pixbuf_gdk(STOCK_PIXMAP_JPILOT, &jpilotxpm);
+ stock_pixbuf_gdk(STOCK_PIXMAP_CATEGORY, &categoryxpm);
+ stock_pixbuf_gdk(STOCK_PIXMAP_LDAP, &ldapxpm);
+ stock_pixbuf_gdk(STOCK_PIXMAP_ADDRESS_SEARCH, &addrsearchxpm);
UPDATE_ICON_ATCI(ADDR_INTERFACE,folderxpm,folderopenxpm);
UPDATE_ICON_ATCI(ADDR_BOOK,bookxpm,bookxpm);
atci->showInTree = TRUE;
atci->treeExpand = TRUE;
atci->treeLeaf = FALSE;
- atci->displayName = _( "Address Book" );
+ atci->displayName = _("Address Books");
atci->menuCommand = "Menu/Book/NewBook";
g_hash_table_insert( _addressBookTypeHash_, &atci->objectType, atci );
_addressBookTypeList_ = g_list_append( _addressBookTypeList_, atci );