aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/send-options/ChangeLog13
-rw-r--r--plugins/send-options/org-gnome-send-options.eplug.in2
-rw-r--r--plugins/send-options/send-options.c83
3 files changed, 59 insertions, 39 deletions
diff --git a/plugins/send-options/ChangeLog b/plugins/send-options/ChangeLog
index aabd5b84f2..1981fa78ec 100644
--- a/plugins/send-options/ChangeLog
+++ b/plugins/send-options/ChangeLog
@@ -1,3 +1,16 @@
+2005-01-24 Chenthill Palanisamy <pchenthill@novell.com>
+
+
+ * org-gnome-send-options.eplug.in: Changed the item_type to
+ section instead of item.
+ * send-options.c (get_cnc): Made the necessary changes to get cnc
+ since some part of dependant code was changed in groupwise account
+ set up plugin.
+ (org_gnome_send_options): Changed the prototype of the function
+ to return the widget.
+ (send_options_commit): Added a warning message if the Modification
+ was not sent to the server.
+
2005-01-12 Chenthill Palanisamy <pchenthill@novell.com>
* Makefile.am:
diff --git a/plugins/send-options/org-gnome-send-options.eplug.in b/plugins/send-options/org-gnome-send-options.eplug.in
index f4e16000ac..6e3b479f9b 100644
--- a/plugins/send-options/org-gnome-send-options.eplug.in
+++ b/plugins/send-options/org-gnome-send-options.eplug.in
@@ -7,7 +7,7 @@
<group id="org.gnome.evolution.mail.config.accountEditor"
target="account" check = "send_options_changed" commit = "send_options_commit"
abort = "send_options_abort">
- <item type="item" path="40.defaults/50.send_options" label="_Send Options" factory="org_gnome_send_options" />
+ <item type="section" path="40.defaults/50.send_options" label="Send Options" factory="org_gnome_send_options" />
</group>
</hook>
</e-plugin>
diff --git a/plugins/send-options/send-options.c b/plugins/send-options/send-options.c
index e7d6209d26..8fc18e1c40 100644
--- a/plugins/send-options/send-options.c
+++ b/plugins/send-options/send-options.c
@@ -43,7 +43,7 @@ EGwSendOptions *opts = NULL;
gboolean changed = FALSE;
EAccount *account;
-void org_gnome_send_options (EPlugin *epl, EConfigHookItemFactoryData *data);
+GtkWidget* org_gnome_send_options (EPlugin *epl, EConfigHookItemFactoryData *data);
void send_options_commit (EPlugin *epl, EConfigHookItemFactoryData *data);
void send_options_changed (EPlugin *epl, EConfigHookItemFactoryData *data);
void send_options_abort (EPlugin *epl, EConfigHookItemFactoryData *data);
@@ -52,46 +52,49 @@ static EGwConnection *
get_cnc ()
{
EGwConnection *cnc;
- char *uri, *use_ssl, *server_name, *user, *port, *pass = NULL;
+ char *uri, *failed_auth, *key, *prompt, *password = NULL;
CamelURL *url;
- const char *poa_address, *property_value;
+ const char *poa_address, *use_ssl, *soap_port;
gboolean remember;
url = camel_url_new (account->source->url, NULL);
- if (url == NULL) {
+ if (url == NULL)
return NULL;
- }
- poa_address = camel_url_get_param (url, "poa");
+ poa_address = url->host;
if (!poa_address || strlen (poa_address) ==0)
return NULL;
- server_name = g_strdup (url->host);
- user = g_strdup (url->user);
- property_value = camel_url_get_param (url, "soap_port");
- use_ssl = g_strdup (camel_url_get_param (url, "soap_ssl"));
- if(property_value == NULL)
- port = g_strdup ("7181");
- else if (strlen(property_value) == 0)
- port = g_strdup ("7181");
- else
- port = g_strdup (property_value);
- if (use_ssl)
- uri = g_strconcat ("https://", server_name, ":", port, "/soap", NULL);
- else
- uri = g_strconcat ("http://", server_name, ":", port, "/soap", NULL);
- pass = e_passwords_get_password ("Groupwise", uri);
- if (!pass) {
- char *prompt;
- prompt = g_strdup_printf (_("%sEnter password for %s (user %s)"),
- "", poa_address, url->user);
-
- pass = e_passwords_ask_password (prompt, "Groupwise", uri, prompt,
- E_PASSWORDS_REMEMBER_FOREVER|E_PASSWORDS_SECRET, &remember,
- NULL);
- g_free (prompt);
+ soap_port = camel_url_get_param (url, "soap_port");
+ if (!soap_port || strlen (soap_port) == 0)
+ soap_port = "7191";
+ use_ssl = camel_url_get_param (url, "use_ssl");
+
+ key = g_strdup_printf ("groupwise://%s@%s/", url->user, poa_address);
+
+ if (!g_str_equal (use_ssl, "never"))
+ uri = g_strdup_printf ("https://%s:%s/soap", poa_address, soap_port);
+ else
+ uri = g_strdup_printf ("http://%s:%s/soap", poa_address, soap_port);
+
+ failed_auth = "";
+ cnc = NULL;
+
+ prompt = g_strdup_printf (_("%sEnter password for %s (user %s)"),
+ failed_auth, poa_address, url->user);
+
+ password = e_passwords_get_password ("Groupwise", key);
+ if (!password)
+ password = e_passwords_ask_password (prompt, "Groupwise", key, prompt,
+ E_PASSWORDS_REMEMBER_FOREVER|E_PASSWORDS_SECRET, &remember, NULL);
+ g_free (prompt);
+
+ cnc = e_gw_connection_new (uri, url->user, password);
+ if (!E_IS_GW_CONNECTION(cnc) && use_ssl && g_str_equal (use_ssl, "when-possible")) {
+ char *http_uri = g_strconcat ("http://", uri + 8, NULL);
+ cnc = e_gw_connection_new (http_uri, url->user, password);
+ g_free (http_uri);
}
-
- cnc = e_gw_connection_new (uri, user, pass);
+
camel_url_free (url);
return cnc;
}
@@ -180,18 +183,19 @@ e_sendoptions_clicked_cb (GtkWidget *button, gpointer data)
return;
}
-void
+GtkWidget *
org_gnome_send_options (EPlugin *epl, EConfigHookItemFactoryData *data)
{
EMConfigTargetAccount *target_account;
- GtkWidget *frame, *button, *label;
+ GtkWidget *frame, *button, *label, *vbox;
target_account = (EMConfigTargetAccount *)data->config->target;
account = target_account->account;
if(!g_strrstr (account->source->url, "groupwise://"))
- return;
+ return NULL;
+ vbox = gtk_vbox_new (FALSE, 0);
frame = gtk_frame_new ("");
label = gtk_frame_get_label_widget (GTK_FRAME (frame));
gtk_label_set_markup (GTK_LABEL (label), "<b>Send Options</b>");
@@ -205,13 +209,15 @@ org_gnome_send_options (EPlugin *epl, EConfigHookItemFactoryData *data)
if (!GTK_WIDGET_TOPLEVEL (parent))
parent = NULL;
- gtk_widget_set_size_request (button, -1, -1);
+ gtk_widget_set_size_request (button, 10, -1);
+ gtk_box_pack_start (GTK_BOX (vbox), frame, 0, 0, 0);
gtk_container_add (GTK_CONTAINER (frame), button);
- gtk_container_set_border_width (GTK_CONTAINER (frame), 12);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
gtk_widget_show (frame);
gtk_box_set_spacing (GTK_BOX (data->parent), 12);
- gtk_box_pack_start (GTK_BOX (data->parent), frame, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (data->parent), vbox, FALSE, FALSE, 0);
+
+ return vbox;
}
static void
@@ -516,6 +522,7 @@ send_options_commit (EPlugin *epl, EConfigHookItemFactoryData *data)
status = e_gw_connection_modify_settings (n_cnc, n_opts);
if (!changed || status != E_GW_CONNECTION_STATUS_OK) {
+ g_warning (G_STRLOC "Cannot modify Send Options: %s", e_gw_connection_get_error_message (status));
g_object_unref (n_opts);
n_opts = NULL;
} else