aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/exchange-operations/exchange-folder.c
diff options
context:
space:
mode:
authorShakti Sen <shprasad@blr.novell.com>2005-08-03 17:58:28 +0800
committerShakti Prasad Sen <shaktis@src.gnome.org>2005-08-03 17:58:28 +0800
commit6502cc080fd6e6de0d974b64c43809cbd54d0edc (patch)
tree30b0839e6a82a2775d30762aaa18c8ac6dbd28c6 /plugins/exchange-operations/exchange-folder.c
parent888a7229872d0b4a8574cfc69ed007727530cb96 (diff)
downloadgsoc2013-evolution-6502cc080fd6e6de0d974b64c43809cbd54d0edc.tar
gsoc2013-evolution-6502cc080fd6e6de0d974b64c43809cbd54d0edc.tar.gz
gsoc2013-evolution-6502cc080fd6e6de0d974b64c43809cbd54d0edc.tar.bz2
gsoc2013-evolution-6502cc080fd6e6de0d974b64c43809cbd54d0edc.tar.lz
gsoc2013-evolution-6502cc080fd6e6de0d974b64c43809cbd54d0edc.tar.xz
gsoc2013-evolution-6502cc080fd6e6de0d974b64c43809cbd54d0edc.tar.zst
gsoc2013-evolution-6502cc080fd6e6de0d974b64c43809cbd54d0edc.zip
Added offline/online support and removed some warning messages. Added a
2005-08-03 Shakti Sen <shprasad@blr.novell.com> * exchange-folder.c (org_gnome_exchange_folder_ab_unsubscribe) (org_gnome_exchange_folder_unsubscribe) (org_gnome_exchange_folder_subscription): Added offline/online support and removed some warning messages. * exchange-operations.c: Added a new function exchange_is_offline(). * exchange-operations.h: Included a prototype. * exchange-config-listener.c (exchange_config_listener_get_offline_status): Added newly to get the online/offline status. * exchange-config-listener.h: Added the prototype for exchange_config_listener_get_offline_status(). Fixes bug #311324. svn path=/trunk/; revision=29969
Diffstat (limited to 'plugins/exchange-operations/exchange-folder.c')
-rw-r--r--plugins/exchange-operations/exchange-folder.c56
1 files changed, 52 insertions, 4 deletions
diff --git a/plugins/exchange-operations/exchange-folder.c b/plugins/exchange-operations/exchange-folder.c
index 0419744f59..d3e8639af0 100644
--- a/plugins/exchange-operations/exchange-folder.c
+++ b/plugins/exchange-operations/exchange-folder.c
@@ -305,12 +305,29 @@ org_gnome_exchange_folder_ab_unsubscribe (EPopup *ep, EPopupItem *p, void *data)
gchar *title = NULL;
gchar *displayed_folder_name = NULL;
gint response;
+ gint mode;
+ ExchangeConfigListenerStatus status;
account = exchange_operations_get_exchange_account ();
if (!account)
return;
+ status = exchange_is_offline (&mode);
+
+ if (status != CONFIG_LISTENER_STATUS_OK) {
+ g_warning ("Config listener not found");
+ return;
+ } else if (mode == OFFLINE_MODE) {
+ g_warning ("Unsubscribe to Other User's Folder is not allowed in Offline mode\n");
+ /* FIXME:
+ I think throwing an error dialog is not allowed
+ because of UI freeze.
+ e_error_run (NULL, ERROR_DOMAIN ":folder-offline-error", NULL);
+ */
+ return;
+ }
+
source = e_source_selector_peek_primary_selection (E_SOURCE_SELECTOR (target->selector));
displayed_folder_name = (gchar *) e_source_peek_name (source);
dialog = gtk_message_dialog_new (NULL,
@@ -348,12 +365,29 @@ org_gnome_exchange_folder_unsubscribe (EPopup *ep, EPopupItem *p, void *data)
gchar *title = NULL;
gchar *displayed_folder_name = NULL;
gint response;
+ gint mode;
+ ExchangeConfigListenerStatus status;
account = exchange_operations_get_exchange_account ();
if (!account)
return;
+ status = exchange_is_offline (&mode);
+
+ if (status != CONFIG_LISTENER_STATUS_OK) {
+ g_warning ("Config listener not found");
+ return;
+ } else if (mode == OFFLINE_MODE) {
+ g_warning ("Unsubscribe to Other User's Folder is not allowed in Offline mode\n");
+ /* FIXME:
+ I think throwing an error dialog is not allowed
+ because of UI freeze.
+ e_error_run (NULL, ERROR_DOMAIN ":folder-offline-error", NULL);
+ */
+ return;
+ }
+
source = e_source_selector_peek_primary_selection (E_SOURCE_SELECTOR (target->selector));
displayed_folder_name = (gchar *) e_source_peek_name (source);
dialog = gtk_message_dialog_new (NULL,
@@ -388,18 +422,32 @@ org_gnome_exchange_folder_subscription (EPlugin *ep, EMMenuTargetSelect *target)
{
ExchangeAccount *account = NULL;
EFolder *folder = NULL;
- ExchangeHierarchy *hier;
ExchangeAccountFolderResult result;
- gchar *folder_display_name = NULL;
- gchar *folder_type = NULL;
- gchar *physical_uri = NULL;
gchar *user_email_address = NULL, *folder_name = NULL;
+ gint mode;
+ ExchangeConfigListenerStatus status;
account = exchange_operations_get_exchange_account ();
if (!account)
return;
+ status = exchange_is_offline (&mode);
+
+ if (status != CONFIG_LISTENER_STATUS_OK) {
+ g_warning ("Config listener not found");
+ return;
+ }
+ else if (mode == OFFLINE_MODE) {
+ g_warning ("Subscribe to Other User's Folder is not allowed in Offline mode\n");
+ /* FIXME:
+ I think throwing an error dialog is not allowed
+ because of UI freeze.
+ e_error_run (NULL, ERROR_DOMAIN ":folder-offline-error", NULL);
+ */
+ return;
+ }
+
create_folder_subscription_dialog (account->account_name, &user_email_address, &folder_name);
if (user_email_address && folder_name) {