[evolution-data-server/email-factory-3-4] Add flags to the Provider and code for mobile mode in settings.



commit 5c47ea9b3eec9ad8039217189f33ce0ff5e7bb4c
Author: Srinivasa Ragavan <sragavan gnome org>
Date:   Tue Jan 10 16:51:30 2012 +0530

    Add flags to the Provider and code for mobile mode in settings.

 camel/providers/imapx/camel-imapx-provider.c |    5 ++-
 camel/providers/imapx/camel-imapx-settings.c |   65 ++++++++++++++++++++++++++
 camel/providers/imapx/camel-imapx-settings.h |    5 ++
 3 files changed, 74 insertions(+), 1 deletions(-)
---
diff --git a/camel/providers/imapx/camel-imapx-provider.c b/camel/providers/imapx/camel-imapx-provider.c
index f07fadc..c0c4930 100644
--- a/camel/providers/imapx/camel-imapx-provider.c
+++ b/camel/providers/imapx/camel-imapx-provider.c
@@ -98,7 +98,10 @@ static CamelProvider imapx_provider = {
 	"mail",
 
 	CAMEL_PROVIDER_IS_REMOTE | CAMEL_PROVIDER_IS_SOURCE |
-	CAMEL_PROVIDER_IS_STORAGE | CAMEL_PROVIDER_SUPPORTS_SSL,
+	CAMEL_PROVIDER_IS_STORAGE | CAMEL_PROVIDER_SUPPORTS_SSL|
+	CAMEL_PROVIDER_SUPPORTS_MOBILE_DEVICES | 
+	CAMEL_PROVIDER_SUPPORTS_BATCH_FETCH |
+	CAMEL_PROVIDER_SUPPORTS_PURGE_MESSAGE_CACHE,
 
 	CAMEL_URL_NEED_USER | CAMEL_URL_NEED_HOST | CAMEL_URL_ALLOW_AUTH,
 
diff --git a/camel/providers/imapx/camel-imapx-settings.c b/camel/providers/imapx/camel-imapx-settings.c
index d880a0e..6560cd9 100644
--- a/camel/providers/imapx/camel-imapx-settings.c
+++ b/camel/providers/imapx/camel-imapx-settings.c
@@ -37,6 +37,7 @@ struct _CamelIMAPXSettingsPrivate {
 	gboolean filter_junk;
 	gboolean filter_junk_inbox;
 	gboolean use_idle;
+	gboolean use_mobile_mode;
 	gboolean use_namespace;
 	gboolean use_qresync;
 	gboolean use_shell_command;
@@ -56,6 +57,7 @@ enum {
 	PROP_FILTER_JUNK,
 	PROP_FILTER_JUNK_INBOX,
 	PROP_HOST,
+	PROP_MOBILE_MODE,
 	PROP_NAMESPACE,
 	PROP_PORT,
 	PROP_SECURITY_METHOD,
@@ -136,6 +138,12 @@ imapx_settings_set_property (GObject *object,
 				g_value_get_string (value));
 			return;
 
+		case PROP_MOBILE_MODE:
+			camel_imapx_settings_set_mobile_mode (
+				CAMEL_IMAPX_SETTINGS (object),
+				g_value_get_boolean (value));
+			return;
+
 		case PROP_NAMESPACE:
 			camel_imapx_settings_set_namespace (
 				CAMEL_IMAPX_SETTINGS (object),
@@ -270,6 +278,13 @@ imapx_settings_get_property (GObject *object,
 				CAMEL_NETWORK_SETTINGS (object)));
 			return;
 
+		case PROP_MOBILE_MODE:
+			g_value_set_boolean (
+				value,
+				camel_imapx_settings_get_mobile_mode (
+				CAMEL_IMAPX_SETTINGS (object)));
+			return;
+
 		case PROP_NAMESPACE:
 			g_value_set_string (
 				value,
@@ -465,6 +480,18 @@ camel_imapx_settings_class_init (CamelIMAPXSettingsClass *class)
 			G_PARAM_CONSTRUCT |
 			G_PARAM_STATIC_STRINGS));
 
+	g_object_class_install_property (
+		object_class,
+		PROP_MOBILE_MODE,
+		g_param_spec_boolean (
+			"mobile-mode",
+			"Mobile Mode",
+			"Mobile mode which adjusts the IMAPX for Mobile clients",
+			FALSE,
+			G_PARAM_READWRITE |
+			G_PARAM_CONSTRUCT |
+			G_PARAM_STATIC_STRINGS));
+
 	/* Inherited from CamelNetworkSettings. */
 	g_object_class_override_property (
 		object_class,
@@ -873,6 +900,44 @@ camel_imapx_settings_set_filter_junk_inbox (CamelIMAPXSettings *settings,
 }
 
 /**
+ * camel_imapx_settings_get_mobile_mode:
+ * @settings: a #CamelIMAPXSettings
+ *
+ * Returns whether the backend is operating in mobile mode.
+ *
+ * Since: 3.2
+ **/
+gboolean
+camel_imapx_settings_get_mobile_mode (CamelIMAPXSettings *settings)
+{
+	g_return_val_if_fail (
+		CAMEL_IS_IMAPX_SETTINGS (settings),
+		CAMEL_SORT_ASCENDING);
+
+	return settings->priv->use_mobile_mode;
+}
+
+/**
+ * camel_imapx_settings_set_mobile_mode:
+ * @settings: a #CamelIMAPXSettings
+ * @mobile_mode: whether to operate in mobile mode.
+ *
+ * Sets the mode of operation as mobile or not for the backend.
+ *
+ * Since: 3.2
+ **/
+void
+camel_imapx_settings_set_mobile_mode (CamelIMAPXSettings *settings,
+                                      gboolean mobile_mode)
+{
+	g_return_if_fail (CAMEL_IS_IMAPX_SETTINGS (settings));
+
+	settings->priv->use_mobile_mode = mobile_mode;
+
+	g_object_notify (G_OBJECT (settings), "mobile-mode");
+}
+
+/**
  * camel_imapx_settings_get_namespace:
  * @settings: a #CamelIMAPXSettings
  *
diff --git a/camel/providers/imapx/camel-imapx-settings.h b/camel/providers/imapx/camel-imapx-settings.h
index e63a01a..3f52a18 100644
--- a/camel/providers/imapx/camel-imapx-settings.h
+++ b/camel/providers/imapx/camel-imapx-settings.h
@@ -91,6 +91,11 @@ gboolean	camel_imapx_settings_get_filter_junk_inbox
 void		camel_imapx_settings_set_filter_junk_inbox
 						(CamelIMAPXSettings *settings,
 						 gboolean filter_junk_inbox);
+gboolean	camel_imapx_settings_get_mobile_mode
+						(CamelIMAPXSettings *settings);
+void		camel_imapx_settings_set_mobile_mode
+						(CamelIMAPXSettings *settings,
+						 gboolean mobile);
 const gchar *	camel_imapx_settings_get_namespace
 						(CamelIMAPXSettings *settings);
 void		camel_imapx_settings_set_namespace



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]