X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-account-mgr.h;h=49308939584c153a7156345532291c00300f7686;hp=7298fac5593c734f606505b4ab24fc68df3cc377;hb=47b6bed5e41055dcffdbfdb9c989b49bf6500293;hpb=a61d692fcc93b406476c8ee5548470900d8bf42f diff --git a/src/modest-account-mgr.h b/src/modest-account-mgr.h index 7298fac..4930893 100644 --- a/src/modest-account-mgr.h +++ b/src/modest-account-mgr.h @@ -32,9 +32,9 @@ #define __MODEST_ACCOUNT_MGR_H__ #include -#include "modest-conf.h" -#include "modest-account-keys.h" -#include "modest-proto.h" +#include +#include +#include G_BEGIN_DECLS @@ -57,11 +57,37 @@ struct _ModestAccountMgr { struct _ModestAccountMgrClass { GObjectClass parent_class; - void (* account_removed) (ModestAccountMgr *obj, const gchar* account, gboolean server_account, gpointer user_data); - void (* account_changed) (ModestAccountMgr *obj, const gchar* account, const gchar* key, gboolean server_account, + void (* account_removed) (ModestAccountMgr *obj, const gchar* account, + gboolean server_account, gpointer user_data); + void (* account_changed) (ModestAccountMgr *obj, const gchar* account, + const gchar* key, gboolean server_account, gpointer user_data); }; +/* + * some convenience structs to get bulk data about an account + */ +struct _ModestServerAccountData { + gchar *account_name; + gchar *hostname; + gchar *username; + gchar *proto; + gchar *password; +}; +typedef struct _ModestServerAccountData ModestServerAccountData; + +struct _ModestAccountData { + gchar *account_name; + gchar *full_name; + gchar *email; + gboolean enabled; + + ModestServerAccountData *transport_account; + ModestServerAccountData *store_account; +}; +typedef struct _ModestAccountData ModestAccountData; + + /** * modest_ui_get_type: @@ -86,7 +112,7 @@ ModestAccountMgr* modest_account_mgr_new (ModestConf *modest_c /** * modest_account_mgr_add_account: * @self: a ModestAccountMgr instance - * @name: the name of the account to create + * @name: name (id) of the account, which is a valid UTF8 string that does not contain '/' * @store_name: the store account (ie. POP/IMAP) * @transport_name: the transport account (ie. sendmail/SMTP) * @err: a GError ptr, or NULL to ignore. @@ -106,7 +132,7 @@ gboolean modest_account_mgr_add_account (ModestAccountMgr *self, /** * modest_account_mgr_add_server_account: * @self: a ModestAccountMgr instance - * @name: name (id) of the account + * @name: name (id) of the account, which is a valid UTF8 string that does not contain '/' * @hostname: the hostname * @username: the username * @password: the password @@ -169,10 +195,9 @@ GSList* modest_account_mgr_account_names (ModestAccountMgr *self, GEr * error or if there are no server accounts. The caller must free the returned GSList */ GSList* modest_account_mgr_search_server_accounts (ModestAccountMgr *self, - const gchar* account_name, - ModestProtoType type, - const gchar* proto, - gboolean only_enabled); + const gchar* account_name, + ModestProtocolType type, + const gchar* proto); /** * modest_account_mgr_account_exists: @@ -191,53 +216,54 @@ gboolean modest_account_mgr_account_exists (ModestAccountMgr *self, gboolean server_account, GError **err); - /** - * modest_account_mgr_enable_account: + * modest_account_mgr_get_account_data: * @self: a ModestAccountMgr instance - * @name: the account name to disable - * @server_account: if TRUE, this is a server account + * @name: the name of the account * - * enable an account that has been disabled with 'modest_account_mgr_disable_account' + * get information about an account * - * Returns: TRUE if it worked, FALSE otherwise + * Returns: a ModestAccountData structure with information about the account. + * the data should not be changed, and be freed with modest_account_mgr_free_account_data */ -gboolean modest_account_mgr_enable_account (ModestAccountMgr *self, const gchar* name, - gboolean is_server_account); +ModestAccountData *modest_account_mgr_get_account_data (ModestAccountMgr *self, + const gchar* name); +/** + * modest_account_mgr_free_account_data: + * @self: a ModestAccountMgr instance + * @data: a ModestAccountData instance + * + * free the account data structure + */ +void modest_account_mgr_free_account_data (ModestAccountMgr *self, + ModestAccountData *data); /** - * modest_account_mgr_disable_account: + * modest_account_mgr_account_set_enabled * @self: a ModestAccountMgr instance - * @name: the account name to disable - * @server_account: if TRUE, this is a server account + * @name: the account name + * @enabled: if TRUE, the account will be enabled, if FALSE, it will be disabled * - * disable an account. this will also stop change notification until - * modest_account_mgr_enable_account is called. However, in case of removal, the - * appropriate signal will still be emitted. + * enable/disabled an account * * Returns: TRUE if it worked, FALSE otherwise */ -gboolean modest_account_mgr_disable_account (ModestAccountMgr *self, const gchar* name, - gboolean is_server_account); - +gboolean modest_account_mgr_account_set_enabled (ModestAccountMgr *self, const gchar* name, + gboolean enabled); /** - * modest_account_mgr_account_is_enabled: + * modest_account_mgr_account_get_enabled: * @self: a ModestAccountMgr instance * @name: the account name to check - * @server_account: if TRUE, this is a server account * * check whether a certain account is enabled * * Returns: TRUE if it is enabled, FALSE otherwise */ -gboolean modest_account_mgr_account_is_enabled (ModestAccountMgr *self, const gchar* name, - gboolean is_server_account); - - +gboolean modest_account_mgr_account_get_enabled (ModestAccountMgr *self, const gchar* name); /** @@ -309,7 +335,7 @@ gboolean modest_account_mgr_get_bool (ModestAccountMgr *self, * @server_account: if TRUE, this is a server account * @err: a GError ptr, or NULL to ignore. * - * set a config string for an account + * set a config string for an account. * * Returns: TRUE if setting the value succeeded, or FALSE in case of error. * @err gives details in case of error @@ -361,6 +387,47 @@ gboolean modest_account_mgr_set_bool (ModestAccountMgr *self, gboolean server_account, GError **err); + +/** + * modest_account_mgr_get_list: + * @self: a ModestAccountMgr instance + * @name: the name of the account + * @key: the key of the value to get + * @list_type: the type of the members of the list + * @server_account: if TRUE, this is a server account + * @err: a GError ptr, or NULL to ignore. + * + * get a config list of values of type @list_type of an account + * + * Returns: a newly allocated list of elements + * @err gives details in case of error + */ +GSList* modest_account_mgr_get_list (ModestAccountMgr *self, + const gchar *name, + const gchar *key, + ModestConfValueType list_type, + gboolean server_account, + GError **err); + +/** + * modest_account_mgr_unset: + * @self: a ModestAccountMgr instance + * @name: the name of the account + * @key: the key of the value to unset + * @server_account: if TRUE, this is a server account + * @err: a GError ptr, or NULL to ignore. + * + * unsets the config value of an account and all their children keys + * + * Returns: TRUE if unsetting the value succeeded, or FALSE in case of error. + * @err gives details in case of error + */ +gboolean modest_account_mgr_unset (ModestAccountMgr *self, + const gchar *name, + const gchar *key, + gboolean server_account, + GError **err); + G_END_DECLS #endif /* __MODEST_ACCOUNT_MGR_H__ */