diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/exchange-operations/ChangeLog | 14 | ||||
-rw-r--r-- | plugins/exchange-operations/exchange-folder-permission.c | 15 | ||||
-rw-r--r-- | plugins/exchange-operations/exchange-folder.c | 10 |
3 files changed, 30 insertions, 9 deletions
diff --git a/plugins/exchange-operations/ChangeLog b/plugins/exchange-operations/ChangeLog index 5b3684d737..dad4cdbb93 100644 --- a/plugins/exchange-operations/ChangeLog +++ b/plugins/exchange-operations/ChangeLog @@ -1,3 +1,17 @@ +2005-10-03 Shakti Sen <shprasad@novell.com> + + * exchange-folder-permission.c (org_gnome_exchange_folder_permissions), + (org_gnome_exchange_menu_folder_permission): Constructing the path + properly to get the efolder. + * exchange-folder.c (org_gnome_exchange_folder_inbox_unsubscribe), + (exchange_get_folder), (org_gnome_exchange_check_inbox_subscribed), + (unsubscribe_dialog_ab_response), (unsubscribe_dialog_response): + Creating proper path. + + The above modifications will now allow the user to do the operations + like unsubscribed to Inbox and giving permission to a folder. + - + 2005-09-30 Shakti Sen <shprasad@novell.com> * exchange-folder-subscription.c (setup_folder_name_combo): Sets the diff --git a/plugins/exchange-operations/exchange-folder-permission.c b/plugins/exchange-operations/exchange-folder-permission.c index 3c930ff026..85703661d4 100644 --- a/plugins/exchange-operations/exchange-folder-permission.c +++ b/plugins/exchange-operations/exchange-folder-permission.c @@ -149,13 +149,18 @@ org_gnome_exchange_folder_permissions (EPlugin *ep, EMPopupTargetFolder *target) GSList *menus = NULL; int i = 0; static int first =0; + gchar *path = NULL; ExchangeAccount *account = exchange_operations_get_exchange_account (); - if (!account || ! g_strrstr (target->uri, "exchange://") || - !exchange_account_get_folder (account, target->uri)) + if (!account) + return; + + path = target->uri + strlen ("exchange://") + strlen (account->account_filename); + if (! g_strrstr (target->uri, "exchange://") || + !exchange_account_get_folder (account, path)) return ; - selected_exchange_folder_uri = target->uri; + selected_exchange_folder_uri = path; /* for translation*/ if (!first) { popup_items[0].label = _(popup_items[0].label); @@ -191,13 +196,15 @@ org_gnome_exchange_menu_folder_permissions (EPlugin *ep, EMMenuTargetSelect *tar { ExchangeAccount *account = NULL; EFolder *folder = NULL; + gchar *path = NULL; account = exchange_operations_get_exchange_account (); if (!account) return; - folder = exchange_account_get_folder (account, target->uri); + path = target->uri + strlen ("exchange://") + strlen (account->account_filename); + folder = exchange_account_get_folder (account, path); if (folder) exchange_permissions_dialog_new (account, folder, NULL); } diff --git a/plugins/exchange-operations/exchange-folder.c b/plugins/exchange-operations/exchange-folder.c index bfdf2babee..1c6eeaeccf 100644 --- a/plugins/exchange-operations/exchange-folder.c +++ b/plugins/exchange-operations/exchange-folder.c @@ -91,7 +91,7 @@ org_gnome_exchange_folder_inbox_unsubscribe (EPopup *ep, EPopupItem *p, void *da return; target_uri = g_strdup (target->uri); - path = target->uri + strlen ("exchange://") + strlen (account->account_filename) + strlen ("/;"); + path = target->uri + strlen ("exchange://") + strlen (account->account_filename); /* User will be able to unsubscribe by doing a right click on any one of this two-<other user's>Inbox or the <other user's folder> tree. @@ -179,7 +179,7 @@ exchange_get_folder (char *uri, CamelFolder *folder, void *data) return; /* Get the subscribed folder name. */ - name = target_uri + strlen ("exchange://") + strlen (account->account_filename) + strlen ("/;"); + name = target_uri + strlen ("exchange://") + strlen (account->account_filename); stored_name = strrchr (name + 1, '/'); if (stored_name) @@ -209,7 +209,7 @@ org_gnome_exchange_check_inbox_subscribed (EPlugin *ep, EMPopupTargetFolder *tar if (!account) return; - path = g_strdup (target->uri + strlen ("exchange://") + strlen (account->account_filename) + strlen ("/;")); + path = g_strdup (target->uri + strlen ("exchange://") + strlen (account->account_filename)); sub_folder = strchr (path, '@'); g_free (path); @@ -347,7 +347,7 @@ unsubscribe_dialog_ab_response (GtkDialog *dialog, int response, gpointer data) source = e_source_selector_peek_primary_selection (E_SOURCE_SELECTOR (target->selector)); uri = e_source_get_uri (source); - path = g_strdup (uri + strlen ("exchange://") + strlen (account->account_filename) + strlen ("/;")); + path = g_strdup (uri + strlen ("exchange://") + strlen (account->account_filename)); source_uid = e_source_peek_uid (source); exchange_account_remove_shared_folder (account, path); @@ -389,7 +389,7 @@ unsubscribe_dialog_response (GtkDialog *dialog, int response, gpointer data) ruri = (gchar *) e_source_peek_relative_uri (source); source_uid = e_source_peek_uid (source); - path = g_strdup (ruri + strlen (account->account_filename) + strlen ("/;")); + path = g_strdup (ruri + strlen (account->account_filename)); exchange_account_remove_shared_folder (account, path); ids = gconf_client_get_list (client, CONF_KEY_SELECTED_CAL_SOURCES, |