Remove verb "AddressbookConfig". (config_cb): Removed.
* gui/component/addressbook.c: Remove verb "AddressbookConfig". (config_cb): Removed. * gui/component/addressbook-config.c: Remove `dialog' member from `AddresbookDialog'. Instead, add a `config_control' member. (config_control_new): New. (addressbook_config): Removed. (addressbook_config_register_factory): New. (config_control_factory_fn): New, factory function for the ConfigControl page. (addressbook_source_edit_changed): Don't change the sensitivity of the dialog. Rather, invoke ::changed on the ConfigPage. (auth_checkbutton_changed): No need to manually change the sensitiviness of the buttons here either. (add_source_clicked): Likewise, just invoke evolution_config_control_changed(). (edit_source_clicked): Likewise. (addressbook_dialog_close): Removed. (config_control_destroy_callback): New, callback for when the config control gets destroyed. (addressbook_dialog_apply): Removed. (config_control_apply_callback): New callback for EvolutionConfigControl::apply. (addressbook_dialog_ok): Removed. (addressbook_config_control_new): Set up ->config_control and connect the signals. * gui/component/addressbook-config.glade: Call the main hbox in the addressbook_sources dialog `addressbook_sources_main_hbox'. * gui/component/addressbook-component.c (owner_set_cb): Call `addresbook_config_register_factory'. * gui/component/GNOME_Evolution_Addressbook.oaf.in: Add items for OAFIID:GNOME_Evolution_Addresbook_ConfigControl and OAFIID:GNOME_Evolution_Addressbook_ConfigControlFactory. svn path=/trunk/; revision=16136
This commit is contained in:
@ -1,3 +1,42 @@
|
||||
2002-03-12 Ettore Perazzoli <ettore@ximian.com>
|
||||
|
||||
* gui/component/addressbook.c: Remove verb "AddressbookConfig".
|
||||
(config_cb): Removed.
|
||||
|
||||
* gui/component/addressbook-config.c: Remove `dialog' member from
|
||||
`AddresbookDialog'. Instead, add a `config_control' member.
|
||||
(config_control_new): New.
|
||||
(addressbook_config): Removed.
|
||||
(addressbook_config_register_factory): New.
|
||||
(config_control_factory_fn): New, factory function for the
|
||||
ConfigControl page.
|
||||
(addressbook_source_edit_changed): Don't change the sensitivity of
|
||||
the dialog. Rather, invoke ::changed on the ConfigPage.
|
||||
(auth_checkbutton_changed): No need to manually change the
|
||||
sensitiviness of the buttons here either.
|
||||
(add_source_clicked): Likewise, just invoke
|
||||
evolution_config_control_changed().
|
||||
(edit_source_clicked): Likewise.
|
||||
(addressbook_dialog_close): Removed.
|
||||
(config_control_destroy_callback): New, callback for when the
|
||||
config control gets destroyed.
|
||||
(addressbook_dialog_apply): Removed.
|
||||
(config_control_apply_callback): New callback for
|
||||
EvolutionConfigControl::apply.
|
||||
(addressbook_dialog_ok): Removed.
|
||||
(addressbook_config_control_new): Set up ->config_control and
|
||||
connect the signals.
|
||||
|
||||
* gui/component/addressbook-config.glade: Call the main hbox in
|
||||
the addressbook_sources dialog `addressbook_sources_main_hbox'.
|
||||
|
||||
* gui/component/addressbook-component.c (owner_set_cb): Call
|
||||
`addresbook_config_register_factory'.
|
||||
|
||||
* gui/component/GNOME_Evolution_Addressbook.oaf.in: Add items for
|
||||
OAFIID:GNOME_Evolution_Addresbook_ConfigControl and
|
||||
OAFIID:GNOME_Evolution_Addressbook_ConfigControlFactory.
|
||||
|
||||
2002-03-11 Chris Toshok <toshok@ximian.com>
|
||||
|
||||
* gui/component/select-names/e-select-names.c (update_query):
|
||||
|
@ -131,4 +131,36 @@
|
||||
|
||||
</oaf_server>
|
||||
|
||||
<oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_ConfigControlFactory"
|
||||
type="exe"
|
||||
location="evolution-addressbook">
|
||||
|
||||
<oaf_attribute name="repo_ids" type="stringv">
|
||||
<item value="IDL:GNOME/ObjectFactory:1.0"/>
|
||||
</oaf_attribute>
|
||||
|
||||
<oaf_attribute name="description" type="string"
|
||||
_value="Factory for the configuration control for the Evolution Addressbook."/>
|
||||
|
||||
</oaf_server>
|
||||
|
||||
<oaf_server iid="OAFIID:GNOME_Evolution_Addresbook_ConfigControl"
|
||||
type="factory"
|
||||
location="OAFIID:GNOME_Evolution_Addressbook_ConfigControlFactory">
|
||||
|
||||
<oaf_attribute name="repo_ids" type="stringv">
|
||||
<item value="IDL:GNOME/Evolution/ConfigControl:1.0"/>
|
||||
</oaf_attribute>
|
||||
|
||||
<oaf_attribute name="evolution:config_item:title" type="string"
|
||||
_value="LDAP Sources"/>
|
||||
|
||||
<oaf_attribute name="evolution:config_item:description" type="string"
|
||||
_value="This page can be used to configure access to LDAP servers"/>
|
||||
|
||||
<oaf_attribute name="description" type="string"
|
||||
_value="Configuration control for the Evolution Addressbook."/>
|
||||
|
||||
</oaf_server>
|
||||
|
||||
</oaf_info>
|
||||
|
@ -367,6 +367,8 @@ owner_set_cb (EvolutionShellComponent *shell_component,
|
||||
if (global_shell_client == NULL)
|
||||
global_shell_client = shell_client;
|
||||
|
||||
addressbook_config_register_factory (bonobo_object_corba_objref (BONOBO_OBJECT (shell_client)));
|
||||
|
||||
addressbook_storage_setup (shell_component, evolution_homedir);
|
||||
}
|
||||
|
||||
|
@ -2,19 +2,31 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <glib.h>
|
||||
#include "addressbook-config.h"
|
||||
|
||||
#include "addressbook-storage.h"
|
||||
|
||||
#include "evolution-config-control.h"
|
||||
|
||||
#include <gal/widgets/e-unicode.h>
|
||||
#include <e-util/e-html-utils.h>
|
||||
|
||||
#include <gtkhtml/gtkhtml.h>
|
||||
|
||||
#include <libgnome/gnome-defs.h>
|
||||
#include <libgnome/gnome-i18n.h>
|
||||
#include <libgnomeui/gnome-dialog.h>
|
||||
#include <libgnomeui/gnome-stock.h>
|
||||
|
||||
#include <bonobo/bonobo-generic-factory.h>
|
||||
|
||||
#include <glade/glade.h>
|
||||
#include <gal/widgets/e-unicode.h>
|
||||
#include <gtkhtml/gtkhtml.h>
|
||||
#include <e-util/e-html-utils.h>
|
||||
#include "addressbook-config.h"
|
||||
#include "addressbook-storage.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
#define CONFIG_CONTROL_FACTORY_ID "OAFIID:GNOME_Evolution_Addressbook_ConfigControlFactory"
|
||||
|
||||
typedef struct _AddressbookSourceDialog AddressbookSourceDialog;
|
||||
typedef struct _AddressbookSourcePageItem AddressbookSourcePageItem;
|
||||
|
||||
@ -87,6 +99,7 @@ auth_checkbutton_changed (GtkWidget *item, AddressbookSourceDialog *dialog)
|
||||
/* make sure the change is reflected by the state of the dialog's OK button */
|
||||
addressbook_source_edit_changed (item, dialog);
|
||||
|
||||
|
||||
gtk_widget_set_sensitive (dialog->auth_optionmenu,
|
||||
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dialog->auth_checkbutton)));
|
||||
gtk_widget_set_sensitive (dialog->auth_notebook,
|
||||
@ -347,9 +360,12 @@ addressbook_create_new_source (const char *new_source, GtkWidget *parent)
|
||||
|
||||
|
||||
typedef struct {
|
||||
EvolutionConfigControl *config_control;
|
||||
GtkWidget *page;
|
||||
|
||||
GladeXML *gui;
|
||||
GNOME_Evolution_Shell shell;
|
||||
GtkWidget *dialog;
|
||||
|
||||
GtkWidget *clistSources;
|
||||
GtkWidget *addSource;
|
||||
GtkWidget *editSource;
|
||||
@ -371,7 +387,7 @@ add_source_clicked (GtkWidget *widget, AddressbookDialog *dialog)
|
||||
{
|
||||
AddressbookSourceDialog *sdialog;
|
||||
|
||||
sdialog = addressbook_config_source_with_gui (dialog->gui, NULL, dialog->dialog);
|
||||
sdialog = addressbook_config_source_with_gui (dialog->gui, NULL, dialog->page);
|
||||
if (sdialog->id == 0) {
|
||||
/* Ok was clicked */
|
||||
AddressbookSource *source = addressbook_source_copy(sdialog->source);
|
||||
@ -383,8 +399,8 @@ add_source_clicked (GtkWidget *widget, AddressbookDialog *dialog)
|
||||
|
||||
row = e_utf8_gtk_clist_append (GTK_CLIST(dialog->clistSources), text);
|
||||
gtk_clist_set_row_data_full (GTK_CLIST(dialog->clistSources), row, source, (GtkDestroyNotify) addressbook_source_free);
|
||||
gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->dialog), 0, TRUE);
|
||||
gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->dialog), 1, TRUE);
|
||||
|
||||
evolution_config_control_changed (dialog->config_control);
|
||||
update_sensitivity (dialog);
|
||||
}
|
||||
}
|
||||
@ -397,7 +413,7 @@ edit_source_clicked (GtkWidget *widget, AddressbookDialog *dialog)
|
||||
|
||||
source = gtk_clist_get_row_data (GTK_CLIST (dialog->clistSources), dialog->source_row);
|
||||
|
||||
sdialog = addressbook_config_source_with_gui (dialog->gui, source, dialog->dialog);
|
||||
sdialog = addressbook_config_source_with_gui (dialog->gui, source, dialog->page);
|
||||
if (sdialog->id == 0) {
|
||||
/* Ok was clicked */
|
||||
source = addressbook_source_copy(sdialog->source);
|
||||
@ -405,8 +421,9 @@ edit_source_clicked (GtkWidget *widget, AddressbookDialog *dialog)
|
||||
e_utf8_gtk_clist_set_text (GTK_CLIST (dialog->clistSources), dialog->source_row, 0, source->name);
|
||||
e_utf8_gtk_clist_set_text (GTK_CLIST (dialog->clistSources), dialog->source_row, 1, source->host);
|
||||
gtk_clist_set_row_data (GTK_CLIST (dialog->clistSources), dialog->source_row, source);
|
||||
gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->dialog), 0, TRUE);
|
||||
gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->dialog), 1, TRUE);
|
||||
|
||||
evolution_config_control_changed (dialog->config_control);
|
||||
|
||||
update_sensitivity (dialog);
|
||||
}
|
||||
}
|
||||
@ -416,8 +433,9 @@ delete_source_clicked (GtkWidget *widget, AddressbookDialog *dialog)
|
||||
{
|
||||
gtk_clist_remove (GTK_CLIST (dialog->clistSources), dialog->source_row);
|
||||
dialog->source_row = -1;
|
||||
gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->dialog), 0, TRUE);
|
||||
gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->dialog), 1, TRUE);
|
||||
|
||||
evolution_config_control_changed (dialog->config_control);
|
||||
|
||||
update_sensitivity (dialog);
|
||||
}
|
||||
|
||||
@ -431,18 +449,26 @@ sources_select_row (GtkWidget *widget, gint row, gint column,
|
||||
}
|
||||
|
||||
static void
|
||||
addressbook_dialog_close (GtkWidget *w, AddressbookDialog *dialog)
|
||||
config_control_destroy_callback (EvolutionConfigControl *config_control,
|
||||
void *data)
|
||||
{
|
||||
gtk_widget_destroy (dialog->dialog);
|
||||
AddressbookDialog *dialog;
|
||||
|
||||
dialog = (AddressbookDialog *) data;
|
||||
|
||||
gtk_object_unref (GTK_OBJECT (dialog->gui));
|
||||
g_free (dialog);
|
||||
}
|
||||
|
||||
static void
|
||||
addressbook_dialog_apply (GtkWidget *w, AddressbookDialog *dialog)
|
||||
config_control_apply_callback (EvolutionConfigControl *config_control,
|
||||
void *data)
|
||||
{
|
||||
AddressbookDialog *dialog;
|
||||
int i;
|
||||
|
||||
dialog = (AddressbookDialog *) data;
|
||||
|
||||
addressbook_storage_clear_sources();
|
||||
|
||||
for (i = 0; i < GTK_CLIST(dialog->clistSources)->rows; i ++) {
|
||||
@ -451,20 +477,10 @@ addressbook_dialog_apply (GtkWidget *w, AddressbookDialog *dialog)
|
||||
}
|
||||
|
||||
addressbook_storage_write_sources();
|
||||
|
||||
gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->dialog), 0, FALSE);
|
||||
gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->dialog), 1, FALSE);
|
||||
}
|
||||
|
||||
static void
|
||||
addressbook_dialog_ok (GtkWidget *w, AddressbookDialog *dialog)
|
||||
{
|
||||
addressbook_dialog_apply(w, dialog);
|
||||
addressbook_dialog_close(w, dialog);
|
||||
}
|
||||
|
||||
void
|
||||
addressbook_config (GNOME_Evolution_Shell shell)
|
||||
static EvolutionConfigControl *
|
||||
config_control_new (GNOME_Evolution_Shell shell)
|
||||
{
|
||||
AddressbookDialog *dialog;
|
||||
GladeXML *gui;
|
||||
@ -479,7 +495,18 @@ addressbook_config (GNOME_Evolution_Shell shell)
|
||||
dialog->gui = gui;
|
||||
dialog->shell = shell;
|
||||
|
||||
dialog->dialog = glade_xml_get_widget (gui, "addressbook_sources");
|
||||
dialog->page = glade_xml_get_widget (gui, "addressbook_sources_main_hbox");
|
||||
|
||||
gtk_widget_ref (dialog->page);
|
||||
gtk_container_remove (GTK_CONTAINER (dialog->page->parent), dialog->page);
|
||||
|
||||
dialog->config_control = evolution_config_control_new (dialog->page);
|
||||
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);
|
||||
|
||||
clist = glade_xml_get_widget (gui, "clistSources");
|
||||
dialog->clistSources = clist;
|
||||
@ -502,8 +529,6 @@ addressbook_config (GNOME_Evolution_Shell shell)
|
||||
GTK_SIGNAL_FUNC (delete_source_clicked),
|
||||
dialog);
|
||||
|
||||
gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->dialog), 0, FALSE);
|
||||
gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->dialog), 1, FALSE);
|
||||
update_sensitivity (dialog);
|
||||
|
||||
l = addressbook_storage_get_sources ();
|
||||
@ -525,14 +550,40 @@ addressbook_config (GNOME_Evolution_Shell shell)
|
||||
GTK_SIGNAL_FUNC (sources_select_row),
|
||||
dialog);
|
||||
|
||||
gnome_dialog_button_connect (GNOME_DIALOG(dialog->dialog),
|
||||
0 /* OK */, addressbook_dialog_ok, dialog);
|
||||
|
||||
gnome_dialog_button_connect (GNOME_DIALOG(dialog->dialog),
|
||||
1 /* APPLY */, addressbook_dialog_apply, dialog);
|
||||
|
||||
gnome_dialog_button_connect (GNOME_DIALOG(dialog->dialog),
|
||||
2 /* CLOSE */, addressbook_dialog_close, dialog);
|
||||
|
||||
gnome_dialog_run (GNOME_DIALOG(dialog->dialog));
|
||||
return dialog->config_control;
|
||||
}
|
||||
|
||||
|
||||
/* Implementation of the factory for the configuration control. */
|
||||
|
||||
static BonoboGenericFactory *factory = NULL;
|
||||
|
||||
static BonoboObject *
|
||||
config_control_factory_fn (BonoboGenericFactory *factory,
|
||||
void *data)
|
||||
{
|
||||
GNOME_Evolution_Shell shell;
|
||||
EvolutionConfigControl *control;
|
||||
|
||||
shell = (GNOME_Evolution_Shell) data;
|
||||
|
||||
control = config_control_new (shell);
|
||||
return BONOBO_OBJECT (control);
|
||||
}
|
||||
|
||||
gboolean
|
||||
addressbook_config_register_factory (GNOME_Evolution_Shell shell)
|
||||
{
|
||||
g_return_val_if_fail (shell != CORBA_OBJECT_NIL, FALSE);
|
||||
|
||||
factory = bonobo_generic_factory_new (CONFIG_CONTROL_FACTORY_ID,
|
||||
config_control_factory_fn,
|
||||
shell);
|
||||
|
||||
if (factory != NULL) {
|
||||
return TRUE;
|
||||
} else {
|
||||
g_warning ("Cannot register factory %s", CONFIG_CONTROL_FACTORY_ID);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -76,7 +76,7 @@
|
||||
|
||||
<widget>
|
||||
<class>GtkNotebook</class>
|
||||
<name>notebook2</name>
|
||||
<name>main_notebook</name>
|
||||
<can_focus>True</can_focus>
|
||||
<show_tabs>True</show_tabs>
|
||||
<show_border>True</show_border>
|
||||
@ -1071,7 +1071,7 @@ Sub
|
||||
|
||||
<widget>
|
||||
<class>GtkHBox</class>
|
||||
<name>hbox3</name>
|
||||
<name>addressbook_sources_main_hbox</name>
|
||||
<homogeneous>False</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
<child>
|
||||
|
@ -26,6 +26,9 @@
|
||||
#include "addressbook-storage.h"
|
||||
|
||||
void addressbook_config (GNOME_Evolution_Shell shell);
|
||||
void addressbook_create_new_source (const char *new_source, GtkWidget *parent);
|
||||
void addressbook_create_new_source (const char *new_source,
|
||||
GtkWidget *parent);
|
||||
|
||||
gboolean addressbook_config_register_factory (GNOME_Evolution_Shell shell);
|
||||
|
||||
#endif /* __ADDRESSBOOK_CONFIG_H__ */
|
||||
|
@ -122,12 +122,6 @@ view_contact_cb (BonoboUIComponent *uih, void *user_data, const char *path)
|
||||
e_addressbook_view_view(view->view);
|
||||
}
|
||||
|
||||
static void
|
||||
config_cb (BonoboUIComponent *uih, void *user_data, const char *path)
|
||||
{
|
||||
addressbook_config (NULL /* XXX */);
|
||||
}
|
||||
|
||||
static void
|
||||
search_cb (BonoboUIComponent *uih, void *user_data, const char *path)
|
||||
{
|
||||
@ -349,8 +343,6 @@ static BonoboUIVerb verbs [] = {
|
||||
BONOBO_UI_UNSAFE_VERB ("ContactsView", view_contact_cb),
|
||||
BONOBO_UI_UNSAFE_VERB ("ToolSearch", search_cb),
|
||||
|
||||
BONOBO_UI_UNSAFE_VERB ("AddressbookConfig", config_cb),
|
||||
|
||||
BONOBO_UI_UNSAFE_VERB ("ContactNew", new_contact_cb),
|
||||
BONOBO_UI_UNSAFE_VERB ("ContactNewList", new_contact_list_cb),
|
||||
BONOBO_UI_UNSAFE_VERB ("ContactDelete", delete_contact_cb),
|
||||
|
Reference in New Issue
Block a user