#include "gtkutils.h"
#include "codeconv.h"
#include "editaddress.h"
-
+#include "editaddress_other_attributes_ldap.h"
#include "prefs_common.h"
-static struct _PersonEdit_dlg {
- GtkWidget *container;
- GtkWidget *notebook;
- GtkWidget *ok_btn;
- GtkWidget *cancel_btn;
- GtkWidget *statusbar; /* used when prefs_common.addressbook_use_editaddress_dialog is TRUE */
- GtkWidget *title; /* used when prefs_common.addressbook_use_editaddress_dialog is FALSE */
- gint status_cid;
-
- /* User data tab */
- GtkWidget *entry_name;
- GtkWidget *entry_first;
- GtkWidget *entry_last;
- GtkWidget *entry_nick;
-
- /* EMail data tab */
- GtkWidget *entry_email;
- GtkWidget *entry_alias;
- GtkWidget *entry_remarks;
- GtkWidget *clist_email;
- GtkWidget *email_up;
- GtkWidget *email_down;
- GtkWidget *email_del;
- GtkWidget *email_mod;
- GtkWidget *email_add;
-
- /* Attribute data tab */
- GtkWidget *entry_atname;
- GtkWidget *entry_atvalue;
- GtkWidget *clist_attrib;
- GtkWidget *attrib_add;
- GtkWidget *attrib_del;
- GtkWidget *attrib_mod;
-
- gint rowIndEMail;
- gint rowIndAttrib;
- gboolean editNew;
- gboolean read_only;
-} personeditdlg;
-
/* transient data */
+static struct _PersonEdit_dlg personeditdlg;
static AddressBookFile *current_abf = NULL;
static ItemPerson *current_person = NULL;
static ItemFolder *current_parent_folder = NULL;
}
static void edit_person_attrib_clear( gpointer data ) {
- gtk_entry_set_text( GTK_ENTRY(personeditdlg.entry_atname), "" );
- gtk_entry_set_text( GTK_ENTRY(personeditdlg.entry_atvalue), "" );
+ if (!personeditdlg.ldap) {
+ gtk_entry_set_text( GTK_ENTRY(personeditdlg.entry_atname), "" );
+ gtk_entry_set_text( GTK_ENTRY(personeditdlg.entry_atvalue), "" );
+ }
}
static void edit_person_switch_page( GtkNotebook *notebook, GtkNotebookPage *page,
static void edit_person_attrib_list_selected( GtkCList *clist, gint row, gint column, GdkEvent *event, gpointer data ) {
UserAttribute *attrib = gtk_clist_get_row_data( clist, row );
- if( attrib && !personeditdlg.read_only) {
+ if( attrib && !personeditdlg.read_only && !personeditdlg.ldap ) {
gtk_entry_set_text( GTK_ENTRY(personeditdlg.entry_atname), attrib->name );
gtk_entry_set_text( GTK_ENTRY(personeditdlg.entry_atvalue), attrib->value );
gtk_widget_set_sensitive(personeditdlg.attrib_del, TRUE);
personeditdlg.rowIndAttrib = -1 + row;
}
- if (!personeditdlg.read_only)
+ if (!personeditdlg.read_only && !personeditdlg.ldap)
gtk_widget_set_sensitive(personeditdlg.attrib_del, gtk_clist_get_row_data(clist, 0) != NULL);
edit_person_status_show( NULL );
{
gboolean non_empty = gtk_clist_get_row_data(GTK_CLIST(personeditdlg.clist_attrib), 0) != NULL;
- if (personeditdlg.read_only)
+ if (personeditdlg.read_only || personeditdlg.ldap)
return;
if (gtk_entry_get_text(GTK_ENTRY(personeditdlg.entry_atname)) == NULL
addressbook_edit_person_widgetset_create( parent, cancelled );
addressbook_edit_person_page_basic( PAGE_BASIC, _( "_User Data" ) );
addressbook_edit_person_page_email( PAGE_EMAIL, _( "_Email Addresses" ) );
- addressbook_edit_person_page_attrib( PAGE_ATTRIBUTES, _( "O_ther Attributes" ) );
+#ifdef USE_LDAP
+ if (personeditdlg.ldap)
+ addressbook_edit_person_page_attrib_ldap(&personeditdlg, PAGE_ATTRIBUTES, _("O_ther Attributes"));
+ else
+#endif
+ addressbook_edit_person_page_attrib( PAGE_ATTRIBUTES, _( "O_ther Attributes" ) );
gtk_widget_show_all( personeditdlg.container );
}
gtk_widget_set_sensitive(personeditdlg.entry_name, !personeditdlg.read_only);
gtk_widget_set_sensitive(personeditdlg.entry_first, !personeditdlg.read_only);
gtk_widget_set_sensitive(personeditdlg.entry_last, !personeditdlg.read_only);
- gtk_widget_set_sensitive(personeditdlg.entry_nick, !personeditdlg.read_only);
+ gtk_widget_set_sensitive(personeditdlg.entry_nick, !personeditdlg.read_only && !personeditdlg.ldap);
gtk_widget_set_sensitive(personeditdlg.entry_email, !personeditdlg.read_only);
- gtk_widget_set_sensitive(personeditdlg.entry_alias, !personeditdlg.read_only);
- gtk_widget_set_sensitive(personeditdlg.entry_remarks, !personeditdlg.read_only);
+ gtk_widget_set_sensitive(personeditdlg.entry_alias, !personeditdlg.read_only && !personeditdlg.ldap);
+ gtk_widget_set_sensitive(personeditdlg.entry_remarks, !personeditdlg.read_only && !personeditdlg.ldap);
gtk_widget_set_sensitive(personeditdlg.email_up, !personeditdlg.read_only);
gtk_widget_set_sensitive(personeditdlg.email_down, !personeditdlg.read_only);
gtk_widget_set_sensitive(personeditdlg.email_del, !personeditdlg.read_only);
current_person = person;
current_parent_folder = parent_folder;
edit_person_close_post_update_cb = post_update_cb;
+ personeditdlg.ldap = (abf->type == ADBOOKTYPE_LDAP)? TRUE : FALSE;
if( !personeditdlg.container )
addressbook_edit_person_create(parent_container, &cancelled);
gtk_entry_set_text(GTK_ENTRY(personeditdlg.entry_nick), person->nickName );
edit_person_load_email( person );
edit_person_load_attrib( person );
+ gtk_entry_set_text(GTK_ENTRY(personeditdlg.entry_atvalue), "");
}
else {
personeditdlg.editNew = TRUE;