diff options
3 files changed, 129 insertions, 75 deletions
diff --git a/plugins/exchange-account-setup/exchange-account-setup.c b/plugins/exchange-account-setup/exchange-account-setup.c index afa42ff8ef..5448a7ec79 100644 --- a/plugins/exchange-account-setup/exchange-account-setup.c +++ b/plugins/exchange-account-setup/exchange-account-setup.c @@ -203,11 +203,11 @@ org_gnome_exchange_account_setup (EPlugin *epl, EConfigHookItemFactoryData *data { EMConfigTargetAccount *target_account; GtkWidget *oof_page = NULL; - const char *account_url = NULL, *source_url = NULL, *temp_url = NULL; + const char *source_url = NULL, *temp_url = NULL; char *exchange_url = NULL; GConfClient *client; EAccountList *account_list; - const char *uid; + const char *uid = NULL; EAccount *gconf_account; target_account = (EMConfigTargetAccount *)data->config->target; @@ -215,7 +215,7 @@ org_gnome_exchange_account_setup (EPlugin *epl, EConfigHookItemFactoryData *data client = gconf_client_get_default (); account_list = e_account_list_new (client); if (account_list) { - uid = g_strdup (target_account->account->uid); + uid = target_account->account->uid; if (uid) { gconf_account = e_account_list_find (account_list, E_ACCOUNT_FIND_UID, @@ -239,7 +239,6 @@ org_gnome_exchange_account_setup (EPlugin *epl, EConfigHookItemFactoryData *data E_ACCOUNT_TRANSPORT_URL, temp_url); } - g_free (uid); } g_object_unref (account_list); } @@ -250,9 +249,7 @@ org_gnome_exchange_account_setup (EPlugin *epl, EConfigHookItemFactoryData *data source_url = e_account_get_string (target_account->account, E_ACCOUNT_SOURCE_URL); - account_url = g_strdup (source_url); - exchange_url = g_strrstr (account_url, "exchange"); - g_free (account_url); + exchange_url = g_strrstr (source_url, "exchange"); if (exchange_url) { if (data->old) @@ -264,6 +261,12 @@ org_gnome_exchange_account_setup (EPlugin *epl, EConfigHookItemFactoryData *data } static void +editor_ok_button_clicked (GtkWidget *entry, void *data) +{ + return; +} + +static void owa_editor_entry_changed (GtkWidget *entry, void *data) { GtkWidget *button = data; @@ -281,61 +284,77 @@ add_owa_entry_to_editor (GtkWidget *parent, EConfig *config, EAccountList *account_list, const char *url_value) { GtkWidget *section, *owa_entry; - GtkWidget *hbox, *label; + GtkWidget *hbox, *hbox_inner, *label, *button; + GList *container_list, *l; + GValue rows = { 0, }; + GValue cols = { 0, }; + gint n_rows, n_cols; + + /* Since configure section in the receive page is not plugin enabled + * traversing through the container hierarchy to get the reference + * to the table, to which owa_url entry has to be added. + * This needs to be changed once we can access configure section from + * the plugin. + */ + + container_list = gtk_container_get_children (GTK_CONTAINER (parent)); + l = g_list_nth (container_list, 0); /* sourcevbox */ + container_list = gtk_container_get_children (GTK_CONTAINER (l->data)); + l = g_list_nth (container_list, 2); /* source frame */ + container_list = gtk_container_get_children (GTK_CONTAINER (l->data)); + l = g_list_nth (container_list, 1); /* hbox173 */ + container_list = gtk_container_get_children (GTK_CONTAINER (l->data)); + l = g_list_nth (container_list, 1); /* table 13 */ + container_list = gtk_container_get_children (GTK_CONTAINER (l->data)); + l = g_list_nth (container_list, 0); /* table 4*/ - section = gtk_vbox_new (FALSE, 0); - gtk_widget_show (section); - gtk_box_pack_start (GTK_BOX (parent), section, FALSE, FALSE, 0); + g_value_init (&rows, G_TYPE_INT); + g_value_init (&cols, G_TYPE_INT); + g_object_get_property (G_OBJECT (l->data), "n-rows", &rows); + g_object_get_property (G_OBJECT (l->data), "n-columns", &cols); + n_rows = g_value_get_int (&rows); + n_cols = g_value_get_int (&cols); hbox = gtk_hbox_new (FALSE, 6); - gtk_widget_show(hbox); - gtk_box_pack_start (GTK_BOX (section), hbox, FALSE, FALSE, 0); - label = gtk_label_new_with_mnemonic(_("_Url:")); - gtk_widget_show (label); + gtk_widget_show (hbox); + + hbox_inner = gtk_hbox_new (FALSE, 6); + gtk_widget_show (hbox_inner); owa_entry = gtk_entry_new (); if (url_value) - gtk_entry_set_text (GTK_ENTRY (owa_entry), url_value); + gtk_entry_set_text (GTK_ENTRY (owa_entry), url_value); gtk_widget_show (owa_entry); - gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); - gtk_box_pack_start (GTK_BOX (hbox), owa_entry, TRUE, TRUE, 0); - - g_signal_connect (owa_entry, "changed", - G_CALLBACK(owa_editor_entry_changed), NULL); - /* FIXME - gconf handling*/ - return section; /* FIXME: return entry */ - -#if 0 - GtkWidget *table; - GladeXML *gui; - GValue rows = { 0, }; - GValue cols = { 0, }; - gint n_rows, n_cols; - gui = glade_xml_new (EVOLUTION_GLADEDIR "/mail-config.glade", - "table4", NULL); - table = glade_xml_get_widget (gui, "table4"); + button = gtk_button_new_from_stock (GTK_STOCK_OK); + gtk_widget_set_sensitive (button, FALSE); + gtk_widget_show (button); + gtk_box_pack_start (GTK_BOX (hbox_inner), owa_entry, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox_inner), button, FALSE, FALSE, 0); + + label = gtk_label_new_with_mnemonic(_("_OWA Url:")); + gtk_label_set_use_markup (GTK_LABEL (label), TRUE); + gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); + gtk_widget_show (label); - g_value_init (&rows, G_TYPE_INT); - g_value_init (&cols, G_TYPE_INT); - g_object_get_property (G_OBJECT (table), "n-rows", &rows); - g_object_get_property (G_OBJECT (table), "n-columns", &cols); - n_rows = g_value_get_int (&rows); - n_cols = g_value_get_int (&cols); - printf ("NO OF COLUMES = %d ROWS = %d \n", n_cols, n_rows); + gtk_box_pack_start (GTK_BOX (hbox), hbox_inner, TRUE, TRUE, 0); - if (owa_entry_text) - gtk_entry_set_text (owa_entry, owa_entry_text); + gtk_table_attach (GTK_TABLE (l->data), label, 0, n_cols-1, n_rows, + n_rows+1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (GTK_TABLE (l->data), hbox, n_cols-1, n_cols, + n_rows, n_rows+1, GTK_FILL, GTK_FILL, 0, 0); - gtk_table_attach (GTK_TABLE (table), label, 0, n_cols-1, n_rows, n_rows+1, GTK_FILL, GTK_FILL, 0, 0); - gtk_table_attach (GTK_TABLE (table), owa_entry, n_cols-1, n_cols, n_rows, n_rows+1, GTK_FILL, GTK_FILL, 0, 0); + gtk_widget_show (GTK_WIDGET (l->data)); - gtk_widget_show (table); - return table; + g_signal_connect (owa_entry, "changed", + G_CALLBACK (owa_editor_entry_changed), button); + g_signal_connect (button, "clicked", + G_CALLBACK (editor_ok_button_clicked), target_account); -#endif - /* FIXME: Proper placing of the widget */ + section = gtk_vbox_new (FALSE, 0); /* Sending an invisible section */ + gtk_widget_hide (section); + return section; } GtkWidget * @@ -344,7 +363,7 @@ org_gnome_exchange_set_url (EPlugin *epl, EConfigHookItemFactoryData *data) EMConfigTargetAccount *target_account; EConfig *config; char *account_url = NULL, *exchange_url = NULL; - const char *source_url, *temp_url, *uid, *owa_url = NULL; + const char *source_url, *temp_url, *uid = NULL, *owa_url = NULL; GtkWidget *owa_entry = NULL, *parent; GConfClient *client; EAccountList *account_list = NULL; @@ -357,7 +376,7 @@ org_gnome_exchange_set_url (EPlugin *epl, EConfigHookItemFactoryData *data) client = gconf_client_get_default (); account_list = e_account_list_new (client); if (account_list) { - uid = g_strdup (target_account->account->uid); + uid = target_account->account->uid; if (uid) { gconf_account = e_account_list_find (account_list, E_ACCOUNT_FIND_UID, @@ -377,7 +396,6 @@ org_gnome_exchange_set_url (EPlugin *epl, EConfigHookItemFactoryData *data) E_ACCOUNT_TRANSPORT_URL, temp_url); } - g_free (uid); } } diff --git a/plugins/exchange-account-setup/exchange-ask-password.c b/plugins/exchange-account-setup/exchange-ask-password.c index a41a9cdffe..c0798b97ca 100644 --- a/plugins/exchange-account-setup/exchange-ask-password.c +++ b/plugins/exchange-account-setup/exchange-ask-password.c @@ -42,9 +42,9 @@ void exchange_options_commit (EPlugin *epl, EConfigHookItemFactoryData *data); GtkWidget *org_gnome_exchange_read_url (EPlugin *epl, EConfigHookItemFactoryData *data); gboolean org_gnome_exchange_check_options (EPlugin *epl, EConfigHookPageCheckData *data); -char *owa_entry_text = NULL; +const char *owa_entry_text = NULL; -typedef gboolean (CamelProviderValidateUserFunc) (CamelURL *camel_url, char *url, gboolean *remember_password, CamelException *ex); +typedef gboolean (CamelProviderValidateUserFunc) (CamelURL *camel_url, const char *url, gboolean *remember_password, CamelException *ex); typedef struct { CamelProviderValidateUserFunc *validate_user; @@ -73,9 +73,9 @@ validate_exchange_user (void *data) CamelProvider *provider = NULL; gboolean valid = FALSE, *remember_password; char *account_url, *url_string; - const char *source_url; + const char *source_url, *id_name; static int count = 0; - char *id_name, *at, *user; + char *at, *user; if (count) return valid; @@ -148,32 +148,74 @@ add_owa_entry (GtkWidget *parent, EMConfigTargetAccount *target_account) { GtkWidget *section, *owa_entry; - GtkWidget *hbox, *button, *label; - - section = gtk_vbox_new (FALSE, 0); - gtk_widget_show (section); - gtk_box_pack_start (GTK_BOX (parent), section, FALSE, FALSE, 0); + GtkWidget *hbox, *hbox_inner, *label, *button; + GList *container_list, *l; + GValue rows = { 0, }; + GValue cols = { 0, }; + gint n_rows, n_cols; + + /* Since configure section in the receive page is not plugin enabled + * traversing through the container hierarchy to get the reference + * to the table, to which owa_url entry has to be added. + * This needs to be changed once we can access configure section from + * the plugin. + */ + + container_list = gtk_container_get_children (GTK_CONTAINER (parent)); + l = g_list_nth (container_list, 1); /* vboxsourceborder */ + container_list = gtk_container_get_children (GTK_CONTAINER (l->data)); + l = g_list_nth (container_list, 0); /* sourcevbox */ + container_list = gtk_container_get_children (GTK_CONTAINER (l->data)); + l = g_list_nth (container_list, 2); /* source frame */ + container_list = gtk_container_get_children (GTK_CONTAINER (l->data)); + l = g_list_nth (container_list, 1); /* hbox173 */ + container_list = gtk_container_get_children (GTK_CONTAINER (l->data)); + l = g_list_nth (container_list, 1); /* table 13 */ + container_list = gtk_container_get_children (GTK_CONTAINER (l->data)); + l = g_list_nth (container_list, 0); /* table 4*/ + + g_value_init (&rows, G_TYPE_INT); + g_value_init (&cols, G_TYPE_INT); + g_object_get_property (G_OBJECT (l->data), "n-rows", &rows); + g_object_get_property (G_OBJECT (l->data), "n-columns", &cols); + n_rows = g_value_get_int (&rows); + n_cols = g_value_get_int (&cols); hbox = gtk_hbox_new (FALSE, 6); gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (section), hbox, FALSE, FALSE, 0); - label = gtk_label_new_with_mnemonic(_("_Url:")); - gtk_widget_show (label); + + hbox_inner = gtk_hbox_new (FALSE, 6); + gtk_widget_show (hbox_inner); + owa_entry = gtk_entry_new (); gtk_widget_show (owa_entry); + button = gtk_button_new_from_stock (GTK_STOCK_OK); gtk_widget_set_sensitive (button, FALSE); gtk_widget_show (button); - gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); - gtk_box_pack_start (GTK_BOX (hbox), owa_entry, TRUE, TRUE, 0); - gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox_inner), owa_entry, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox_inner), button, TRUE, TRUE, 0); + + label = gtk_label_new_with_mnemonic(_("_OWA Url:")); + gtk_label_set_use_markup (GTK_LABEL (label), TRUE); + gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); + gtk_widget_show (label); + + gtk_box_pack_start (GTK_BOX (hbox), hbox_inner, TRUE, TRUE, 0); + + gtk_table_attach (GTK_TABLE (l->data), label, 0, n_cols-1, n_rows, n_rows+1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (GTK_TABLE (l->data), hbox, n_cols-1, n_cols, n_rows, n_rows+1, GTK_FILL, GTK_FILL, 0, 0); + + gtk_widget_show (GTK_WIDGET (l->data)); g_signal_connect (owa_entry, "changed", G_CALLBACK (owa_entry_changed), button); g_signal_connect (button, "clicked", G_CALLBACK (ok_button_clicked), target_account); - + + section = gtk_vbox_new (FALSE, 0); + gtk_widget_hide (section); return section; /* FIXME: return entry */ } diff --git a/plugins/exchange-account-setup/org-gnome-exchange-account-setup.eplug.in b/plugins/exchange-account-setup/org-gnome-exchange-account-setup.eplug.in index 7fd216c5e8..251824f96d 100644 --- a/plugins/exchange-account-setup/org-gnome-exchange-account-setup.eplug.in +++ b/plugins/exchange-account-setup/org-gnome-exchange-account-setup.eplug.in @@ -17,10 +17,7 @@ label="Exchange Settings" factory="org_gnome_exchange_account_setup"/> <item type="section" - path="10.receive/10.config" - label="OWA Url"/> - <item type="item" - path="10.receive/10.config/00.owa" + path="10.receive/00.config" factory="org_gnome_exchange_set_url"/> </group> </hook> @@ -30,10 +27,7 @@ target="account" id="org.gnome.evolution.mail.config.accountDruid"> <item type="section" - path="10.receive/30.config" - label="OWA Url"/> - <item type="item" - path="10.receive/30.config/00.owa" + path="10.receive/00.config" factory="org_gnome_exchange_read_url"/> </group> <group |