change ldap config control text so it fits in the config dialog.

2002-04-18  Chris Toshok  <toshok@ximian.com>

	* gui/component/GNOME_Evolution_Addressbook.oaf.in: change ldap
	config control text so it fits in the config dialog.

	* gui/component/ldap-config.c: #ifdef lots of stuff HAVE_LDAP so
	it'll build/run in either case.
	(addressbook_source_dialog_destroy): rename
	addressbook_add_server_druid_destroy to this, and free lots more
	stuff.
	(addressbook_add_server_druid):
	addressbook_add_server_druid_destroy ->
	addressbook_source_dialog_destroy.
	(do_schema_query): add 3 second timeout to schema query.
	(addressbook_edit_server_dialog): hook up destroy signal.
	(config_control_new): if HAVE_LDAP isn't defined, put up a label
	saying so.

svn path=/trunk/; revision=16533
This commit is contained in:
Chris Toshok
2002-04-19 04:37:31 +00:00
committed by Chris Toshok
parent 7c844e0e35
commit 58d7feca84
3 changed files with 105 additions and 23 deletions

View File

@ -1,3 +1,21 @@
2002-04-18 Chris Toshok <toshok@ximian.com>
* gui/component/GNOME_Evolution_Addressbook.oaf.in: change ldap
config control text so it fits in the config dialog.
* gui/component/ldap-config.c: #ifdef lots of stuff HAVE_LDAP so
it'll build/run in either case.
(addressbook_source_dialog_destroy): rename
addressbook_add_server_druid_destroy to this, and free lots more
stuff.
(addressbook_add_server_druid):
addressbook_add_server_druid_destroy ->
addressbook_source_dialog_destroy.
(do_schema_query): add 3 second timeout to schema query.
(addressbook_edit_server_dialog): hook up destroy signal.
(config_control_new): if HAVE_LDAP isn't defined, put up a label
saying so.
2002-04-18 Chris Toshok <toshok@ximian.com>
* gui/component/Makefile.am (INCLUDES): add LDAP_CFLAGS to INCLUDES

View File

@ -156,7 +156,7 @@
_value="Directory Servers"/>
<oaf_attribute name="evolution:config_item:description" type="string"
_value="This page can be used to configure access to directory servers using the LDAP protocol"/>
_value="This page can be used to configure access to LDAP directory servers"/>
<oaf_attribute name="evolution:config_item:icon_name" type="string"
value="evolution-contacts.png"/>

View File

@ -29,8 +29,10 @@
#include <stdlib.h>
#ifdef HAVE_LDAP
#include "ldap.h"
#include "ldap_schema.h"
#endif
#define LDAP_PORT_STRING "389"
#define LDAPS_PORT_STRING "636"
@ -39,12 +41,13 @@
#define CONFIG_CONTROL_FACTORY_ID "OAFIID:GNOME_Evolution_LDAPStorage_ConfigControlFactory"
#ifdef HAVE_LDAP
GtkWidget* addressbook_dialog_create_sources_table (char *name, char *string1, char *string2,
int num1, int num2);
GtkWidget* supported_bases_create_table (char *name, char *string1, char *string2,
int num1, int num2);
#ifdef NEW_ADVANCED_GUI
#ifdef NEW_ADVANCED_UI
GtkWidget* objectclasses_create_server_table (char *name, char *string1, char *string2,
int num1, int num2);
GtkWidget* objectclasses_create_evolution_table (char *name, char *string1, char *string2,
@ -152,6 +155,14 @@ typedef struct {
ETableModel *objectclasses_evolution_model;
GtkWidget *objectclasses_add_button;
GtkWidget *objectclasses_remove_button;
/* refs we keep around so we can add/hide the tabs */
GtkWidget *objectclasses_tab;
GtkWidget *objectclasses_label;
GtkWidget *mappings_tab;
GtkWidget *mappings_label;
GtkWidget *dn_customization_tab;
GtkWidget *dn_customization_label;
#endif
/* stuff for the account editor window */
@ -161,14 +172,7 @@ typedef struct {
GtkWidget *close_button;
GtkWidget *advanced_button_notebook;
GtkWidget *notebook; /* the toplevel notebook */
#ifdef NEW_ADVANCED_UI
GtkWidget *objectclasses_tab;
GtkWidget *objectclasses_label;
GtkWidget *mappings_tab;
GtkWidget *mappings_label;
GtkWidget *dn_customization_tab;
GtkWidget *dn_customization_label;
#endif
gboolean advanced;
} AddressbookSourceDialog;
@ -217,7 +221,7 @@ addressbook_root_dse_query (AddressbookSource *source, LDAP *ldap, char **attrs,
ldap_error = ldap_search_ext_s (ldap,
LDAP_ROOT_DSE, LDAP_SCOPE_BASE,
"(objectclass=*)",
attrs, 0, NULL, NULL, NULL, 0, resp);
attrs, 0, NULL, NULL, &timeout, LDAP_NO_LIMIT, resp);
if (LDAP_SUCCESS != ldap_error)
gnome_error_dialog (_("Could not perform query on Root DSE"));
@ -278,9 +282,45 @@ addressbook_source_dialog_set_source (AddressbookSourceDialog *dialog, Addressbo
}
static void
addressbook_add_server_druid_destroy (GtkWidget *widget, AddressbookSourceDialog *dialog)
addressbook_source_dialog_destroy (GtkWidget *widget, AddressbookSourceDialog *dialog)
{
/* XXX free other stuff */
#ifdef NEW_ADVANCED_UI
#define IF_UNREF(x) if (x) gtk_object_unref (GTK_OBJECT ((x)))
int i;
if (dialog->server_objectclasses) {
for (i = 0; i < dialog->server_objectclasses->len; i ++)
ldap_objectclass_free (g_ptr_array_index (dialog->server_objectclasses, i));
g_ptr_array_free (dialog->server_objectclasses, TRUE);
}
if (dialog->evolution_objectclasses) {
for (i = 0; i < dialog->evolution_objectclasses->len; i ++)
ldap_objectclass_free (g_ptr_array_index (dialog->evolution_objectclasses, i));
g_ptr_array_free (dialog->evolution_objectclasses, TRUE);
}
if (dialog->default_objectclasses) {
for (i = 0; i < dialog->default_objectclasses->len; i ++)
ldap_objectclass_free (g_ptr_array_index (dialog->default_objectclasses, i));
g_ptr_array_free (dialog->default_objectclasses, TRUE);
}
IF_UNREF (dialog->objectclasses_server_model);
IF_UNREF (dialog->objectclasses_evolution_model);
IF_UNREF (dialog->objectclasses_tab);
IF_UNREF (dialog->objectclasses_label);
IF_UNREF (dialog->mappings_tab);
IF_UNREF (dialog->mappings_label);
IF_UNREF (dialog->dn_customization_tab);
IF_UNREF (dialog->dn_customization_label);
#undef IF_UNREF
#endif
gtk_object_destroy (GTK_OBJECT (dialog->gui));
g_free (dialog);
}
@ -1008,7 +1048,7 @@ addressbook_add_server_druid (AddressbookDialog *dialog)
gtk_signal_connect (GTK_OBJECT(sdialog->druid), "cancel",
GTK_SIGNAL_FUNC(addressbook_add_server_druid_cancel), sdialog);
gtk_signal_connect (GTK_OBJECT(sdialog->window), "destroy",
GTK_SIGNAL_FUNC(addressbook_add_server_druid_destroy), sdialog);
GTK_SIGNAL_FUNC(addressbook_source_dialog_destroy), sdialog);
gtk_window_set_modal (GTK_WINDOW (sdialog->window), TRUE);
@ -1076,6 +1116,7 @@ do_schema_query (AddressbookSourceDialog *sdialog)
int i;
AddressbookSource *source = addressbook_dialog_get_source (sdialog);
LDAPMessage *resp;
struct timeval timeout;
ldap = addressbook_ldap_init (source);
if (!ldap)
@ -1106,9 +1147,13 @@ do_schema_query (AddressbookSourceDialog *sdialog)
attrs[0] = "objectClasses";
attrs[1] = NULL;
/* 3 second timeout */
timeout.tv_sec = 3;
timeout.tv_usec = 0;
ldap_error = ldap_search_ext_s (ldap, schema_dn, LDAP_SCOPE_BASE,
"(objectClass=subschema)", attrs, 0,
NULL, NULL, NULL, 0, &resp);
NULL, NULL, &timeout, LDAP_NO_LIMIT, &resp);
if (LDAP_SUCCESS != ldap_error) {
gnome_error_dialog (_("Could not query for schema information"));
goto fail;
@ -1285,11 +1330,8 @@ addressbook_edit_server_dialog (AddressbookDialog *dialog, AddressbookSource *so
#endif
sdialog->ok_button = glade_xml_get_widget (sdialog->gui, "account-editor-ok-button");
/* XXX signal */
sdialog->apply_button = glade_xml_get_widget (sdialog->gui, "account-editor-apply-button");
/* XXX signal */
sdialog->close_button = glade_xml_get_widget (sdialog->gui, "account-editor-close-button");
/* XXX signal */
sdialog->advanced_button_notebook = glade_xml_get_widget (sdialog->gui, "account-editor-advanced-button-notebook");
fewer_options_button = glade_xml_get_widget (sdialog->gui, "account-editor-fewer-options-button");
@ -1337,6 +1379,8 @@ addressbook_edit_server_dialog (AddressbookDialog *dialog, AddressbookSource *so
"clicked", GTK_SIGNAL_FUNC(edit_dialog_apply_clicked), sdialog);
gtk_signal_connect (GTK_OBJECT (sdialog->close_button),
"clicked", GTK_SIGNAL_FUNC(edit_dialog_close_clicked), sdialog);
gtk_signal_connect (GTK_OBJECT(sdialog->window), "destroy",
GTK_SIGNAL_FUNC(addressbook_source_dialog_destroy), sdialog);
gtk_widget_set_sensitive (sdialog->ok_button, FALSE);
gtk_widget_set_sensitive (sdialog->apply_button, FALSE);
@ -1427,6 +1471,9 @@ config_control_destroy_callback (EvolutionConfigControl *config_control,
dialog = (AddressbookDialog *) data;
gtk_object_unref (GTK_OBJECT (dialog->gui));
/* XXX free more stuff here */
g_free (dialog);
}
@ -1539,7 +1586,6 @@ addressbook_dialog_create_sources_table (char *name, char *string1, char *string
GtkWidget *table;
ETableModel *model;
model = e_table_memory_store_new (sources_table_columns);
table = e_table_scrolled_new (model, NULL, SOURCES_TABLE_SPEC, NULL);
@ -1548,27 +1594,43 @@ addressbook_dialog_create_sources_table (char *name, char *string1, char *string
return table;
}
#endif /* HAVE_LDAP */
static EvolutionConfigControl *
config_control_new (GNOME_Evolution_Shell shell)
{
GtkWidget *control_widget;
EvolutionConfigControl *control;
#ifdef HAVE_LDAP
AddressbookDialog *dialog;
dialog = ldap_dialog_new (shell);
gtk_widget_ref (dialog->page);
control_widget = dialog->page;
gtk_container_remove (GTK_CONTAINER (dialog->page->parent), dialog->page);
gtk_widget_ref (control_widget);
dialog->config_control = evolution_config_control_new (dialog->page);
gtk_container_remove (GTK_CONTAINER (control_widget->parent), control_widget);
#else
control_widget = gtk_label_new (_("LDAP was not enabled in this build of Evolution"));
gtk_widget_set_sensitive (control_widget, FALSE);
gtk_widget_show (control_widget);
#endif
control = evolution_config_control_new (control_widget);
#ifdef HAVE_LDAP
dialog->config_control = control;
gtk_signal_connect (GTK_OBJECT (dialog->config_control), "apply",
GTK_SIGNAL_FUNC (config_control_apply_callback), dialog);
gtk_signal_connect (GTK_OBJECT (dialog->config_control), "destroy",
GTK_SIGNAL_FUNC (config_control_destroy_callback), dialog);
gtk_widget_unref (dialog->page);
#endif
return dialog->config_control;
return control;
}
@ -1609,6 +1671,7 @@ ldap_config_register_factory (GNOME_Evolution_Shell shell)
void
ldap_config_create_new_source (const char *new_source, GtkWidget *parent)
{
#ifdef HAVE_LDAP
#if 0
AddressbookSourceDialog *dialog;
GladeXML *gui;
@ -1631,6 +1694,7 @@ ldap_config_create_new_source (const char *new_source, GtkWidget *parent)
addressbook_storage_write_sources();
}
#endif
#endif /* HAVE_LDAP */
}
#ifdef STANDALONE