aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/groupwise-features/ChangeLog8
-rw-r--r--plugins/groupwise-features/proxy.c13
2 files changed, 18 insertions, 3 deletions
diff --git a/plugins/groupwise-features/ChangeLog b/plugins/groupwise-features/ChangeLog
index ca53b8e031..8c129b5d1b 100644
--- a/plugins/groupwise-features/ChangeLog
+++ b/plugins/groupwise-features/ChangeLog
@@ -1,5 +1,13 @@
2005-08-10 Sankar P <psankar@novell.com>
+ * proxy.c :
+ (proxy_dialog_store_widgets_data)
+ (proxy_commit) : Changed the way in which the EDIT and DELETED flags
+ are handled so that any proxy can be deleted without closing account-editor.
+ Fixes #312313
+
+2005-08-10 Sankar P <psankar@novell.com>
+
* proxy.c :
Moved the GList to maintain the list of proxies,
into the proxyDialog structure.
diff --git a/plugins/groupwise-features/proxy.c b/plugins/groupwise-features/proxy.c
index 0b0fcc4004..f338d904a3 100644
--- a/plugins/groupwise-features/proxy.c
+++ b/plugins/groupwise-features/proxy.c
@@ -108,8 +108,6 @@ struct _proxyDialogPrivate {
GList *proxy_list;
};
-//static void free_proxy_handler (proxyHandler *handler);
-
static void
proxy_dialog_dispose (GObject *object)
{
@@ -364,6 +362,15 @@ proxy_dialog_store_widgets_data (EAccount *account, gint32 dialog)
for (;existing_list; existing_list = g_list_next(existing_list)) {
new_proxy = (proxyHandler *) existing_list->data;
if ( !g_ascii_strcasecmp (new_proxy->proxy_email, email) ) {
+ if (new_proxy->flags & E_GW_PROXY_DELETED) {
+ new_proxy->permissions = proxy_get_permissions_from_dialog (account);
+ if (new_proxy->flags & E_GW_PROXY_NEW)
+ new_proxy->flags = E_GW_PROXY_NEW;
+ else
+ new_proxy->flags = E_GW_PROXY_EDITED;
+ return 0;
+ }
+
e_error_run (NULL, "org.gnome.evolution.proxy:user-is-proxy",email ,NULL);
return -1;
@@ -546,7 +553,7 @@ proxy_commit (GtkWidget *button, EConfigHookItemFactoryData *data)
if (aclInstance->flags & E_GW_PROXY_NEW )
e_gw_connection_add_proxy (prd->cnc, aclInstance);
- if (aclInstance->flags & E_GW_PROXY_DELETED)
+ if ((aclInstance->flags & E_GW_PROXY_DELETED) && !(aclInstance->flags & E_GW_PROXY_NEW))
e_gw_connection_remove_proxy (prd->cnc, aclInstance);
if (aclInstance->flags & E_GW_PROXY_EDITED)