}
-
-gchar*
-modest_conf_get_string_or_default (ModestConf* self, const gchar* key,
- const gchar *defaultval)
+GSList *
+modest_conf_get_list (ModestConf* self, const gchar* key, ModestConfValueType list_type,
+ GError **err)
{
- ModestConfPrivate *priv;
- GConfValue *val;
- const gchar *str;
-
- g_return_val_if_fail (self, g_strdup(defaultval));
- g_return_val_if_fail (key, g_strdup(defaultval));
-
- priv = MODEST_CONF_GET_PRIVATE(self);
- val = gconf_client_get (priv->gconf_client, key, NULL);
-
- if (!val)
- str = defaultval;
- else {
- str = gconf_value_get_string (val);
- gconf_value_free (val);
- }
-
- return g_strdup (str);
-}
-
-
-gint
-modest_conf_get_int_or_default (ModestConf* self, const gchar* key,
- gint defaultval)
-{
- ModestConfPrivate *priv;
- GConfValue *val;
- gint retval;
-
- g_return_val_if_fail (self, defaultval);
- g_return_val_if_fail (key, defaultval);
-
- priv = MODEST_CONF_GET_PRIVATE(self);
- val = gconf_client_get (priv->gconf_client, key, NULL);
-
- if (!val)
- retval = defaultval;
- else {
- retval = gconf_value_get_int (val);
- gconf_value_free (val);
- }
-
- return retval;
+ ModestConfPrivate *priv;
+ GConfValueType gconf_type;
+
+ g_return_val_if_fail (self, NULL);
+ g_return_val_if_fail (key, NULL);
+
+ priv = MODEST_CONF_GET_PRIVATE(self);
+
+ switch (list_type) {
+ case MODEST_CONF_VALUE_INT:
+ gconf_type = GCONF_VALUE_INT;
+ break;
+ case MODEST_CONF_VALUE_BOOL:
+ gconf_type = GCONF_VALUE_BOOL;
+ break;
+ case MODEST_CONF_VALUE_FLOAT:
+ gconf_type = GCONF_VALUE_FLOAT;
+ break;
+ case MODEST_CONF_VALUE_STRING:
+ gconf_type = GCONF_VALUE_STRING;
+ break;
+ default:
+ g_printerr ("modest: invalid list type %d requested\n", list_type);
+ /* FIXME: fill GError */
+ return NULL;
+ }
+ return gconf_client_get_list (priv->gconf_client, key, gconf_type, err);
}
gchar*
-modest_conf_key_escape (ModestConf *self, const gchar* key)
+modest_conf_key_escape (const gchar* key)
{
g_return_val_if_fail (key, NULL);
gchar*
-modest_conf_key_unescape (ModestConf *self, const gchar* key)
+modest_conf_key_unescape (const gchar* key)
{
g_return_val_if_fail (key, NULL);
key, event);
}
-GSList *
-modest_conf_get_list (ModestConf* self, const gchar* key, ModestConfValueType list_type, GError **err)
-{
- ModestConfPrivate *priv;
- GConfValueType gconf_type;
-
- g_return_val_if_fail (self, NULL);
- g_return_val_if_fail (key, NULL);
-
- priv = MODEST_CONF_GET_PRIVATE(self);
-
- switch (list_type) {
- case MODEST_CONF_VALUE_INT:
- gconf_type = GCONF_VALUE_INT;
- break;
- case MODEST_CONF_VALUE_BOOL:
- gconf_type = GCONF_VALUE_BOOL;
- break;
- case MODEST_CONF_VALUE_FLOAT:
- gconf_type = GCONF_VALUE_FLOAT;
- break;
- case MODEST_CONF_VALUE_STRING:
- gconf_type = GCONF_VALUE_STRING;
- break;
- default:
- return NULL;
- }
-
- return gconf_client_get_list (priv->gconf_client, key, gconf_type, err);
-}
GError **err);
+/**
+ * modest_conf_get_list:
+ * @self: a ModestConf instance
+ * @key: the key of the value to retrieve
+ * @list_type: the type of the elements of the list
+ * @err: a GError ptr, or NULL to ignore.
+ *
+ * get a list of values from the configuration system
+ *
+ * Returns: a list with the values for the key, or NULL in case of error or
+ * if the list is empty; @err gives details in case of error
+ */
+GSList * modest_conf_get_list (ModestConf* self, const gchar* key,
+ ModestConfValueType list_type, GError **err);
+
+
/**
* modest_conf_list_subkeys:
* @self: a ModestConf instance
*
* Returns: a newly allocated list or NULL in case of error
* the returned GSList must be freed by the caller
- * @err gives details in case of error
+ * @err might give details in case of error
*/
GSList* modest_conf_list_subkeys (ModestConf* self, const gchar* key,
GError **err);
* attempts to remove @key and all its subkeys
*
* Returns: TRUE if succeeded or FALSE in case of error.
- * @err gives details in case of error
+ * @err might give details in case of error
*/
gboolean modest_conf_remove_key (ModestConf* self, const gchar* key, GError **err);
/**
* modest_conf_key_escape:
- * @self: a ModestConf instance. Not used, but for consistency with other ModestConf funcs
* @str: a string to escape
*
* returns an escaped version of @str, ie. something suitable as a key
+ * This is a *class* function, and therefore does not require a ModestConf
+ * instance
*
* Returns: a newly allocated string with the escaped version
*/
-gchar* modest_conf_key_escape (ModestConf *self, const gchar* str);
+gchar* modest_conf_key_escape (const gchar* str);
/**
* modest_conf_key_escape:
- * @self: a ModestConf instance. Not used, but for consistency with other ModestConf funcs
* @str: a string to escape
*
- * returns an unescaped version of @str
+ * returns an unescaped version of @str. This is a *class* function, and
+ * therefore does not require a ModestConf instance
*
* Returns: a newly allocated string with the unescaped version
*/
-gchar* modest_conf_key_unescape (ModestConf *self, const gchar* str);
+gchar* modest_conf_key_unescape (const gchar* str);
G_END_DECLS