* changed the parent class of ModestTnyMsgView from GtkFrame to GtkTextView to get...
[modest] / src / modest-account-mgr.c
index f25c10f..c89deab 100644 (file)
@@ -275,6 +275,23 @@ modest_account_mgr_remove_server_account    (ModestAccountMgr *self,
 }
 
 
+/* strip the first /n/ character from each element */
+/* caller must make sure all elements are strings with
+ * length >= n, and also that data can be freed.
+ */
+static GSList*
+strip_prefix_from_elements (GSList *lst, guint n)
+{
+       GSList *cursor = lst;
+       while (cursor) {
+               gchar *str = (gchar*)cursor->data;
+               cursor->data = g_strdup (str + n);
+               g_free (str);
+               cursor = cursor->next;
+       }
+       return lst;
+}
+
 
 
 GSList*
@@ -287,6 +304,8 @@ modest_account_mgr_server_account_names   (ModestAccountMgr *self,
        GSList *accounts;
        GSList *cursor;
        ModestAccountMgrPrivate *priv;
+       const size_t prefix_len =
+               strlen (MODEST_SERVER_ACCOUNT_NAMESPACE "/");
 
        g_return_val_if_fail (self, NULL);
 
@@ -297,7 +316,7 @@ modest_account_mgr_server_account_names   (ModestAccountMgr *self,
 
        /* no restrictions, return everything */
        if (type == MODEST_PROTO_TYPE_ANY && !proto)
-               return accounts;
+               return strip_prefix_from_elements (accounts,prefix_len);
 
        /* otherwise, filter out the none-matching ones */
        cursor = accounts;
@@ -323,7 +342,7 @@ modest_account_mgr_server_account_names   (ModestAccountMgr *self,
                        cursor = cursor->next;
        }
 
-       return accounts;
+       return strip_prefix_from_elements (accounts, prefix_len);
 }
 
 
@@ -333,14 +352,18 @@ modest_account_mgr_account_names  (ModestAccountMgr *self, GError **err)
 {
        GSList *accounts, *cursor;
        ModestAccountMgrPrivate *priv;
+       const size_t prefix_len =
+               strlen (MODEST_ACCOUNT_NAMESPACE "/");
+
 
        g_return_val_if_fail (self, NULL);
 
        priv = MODEST_ACCOUNT_MGR_GET_PRIVATE(self);
 
-       return  modest_conf_list_subkeys (priv->modest_conf,
-                                         MODEST_ACCOUNT_NAMESPACE,
-                                         err);
+       accounts = modest_conf_list_subkeys (priv->modest_conf,
+                                            MODEST_ACCOUNT_NAMESPACE,
+                                            err);
+       return strip_prefix_from_elements (accounts, prefix_len);
 }
 
 
@@ -351,10 +374,10 @@ get_account_string (ModestAccountMgr *self, const gchar *name,
                    GError **err)
 {
        ModestAccountMgrPrivate *priv;
-       
+
        gchar *keyname;
        gchar * retval;
-       
+
        g_return_val_if_fail (self, NULL);
        g_return_val_if_fail (name, NULL);
        g_return_val_if_fail (key, NULL);
@@ -367,7 +390,7 @@ get_account_string (ModestAccountMgr *self, const gchar *name,
        priv = MODEST_ACCOUNT_MGR_GET_PRIVATE(self);
        retval = modest_conf_get_string (priv->modest_conf,keyname,err);
        g_free (keyname);
-       
+
        return retval;
 }
 
@@ -394,7 +417,7 @@ get_account_int (ModestAccountMgr *self, const gchar *name,
                 GError **err)
 {
        ModestAccountMgrPrivate *priv;
-       
+
        gchar *keyname;
        gint retval;
 
@@ -410,7 +433,7 @@ get_account_int (ModestAccountMgr *self, const gchar *name,
        priv = MODEST_ACCOUNT_MGR_GET_PRIVATE(self);
        retval = modest_conf_get_int (priv->modest_conf,keyname,err);
        g_free (keyname);
-       
+
        return retval;
 }
 
@@ -437,14 +460,14 @@ get_account_bool (ModestAccountMgr *self, const gchar *name,
                  GError **err)
 {
        ModestAccountMgrPrivate *priv;
-       
+
        gchar *keyname;
        gboolean retval;
 
        g_return_val_if_fail (self, -1);
        g_return_val_if_fail (name, -1);
        g_return_val_if_fail (key, -1);
-       
+
        if (server_account)
                keyname = get_server_account_keyname (name, key);
        else
@@ -453,7 +476,7 @@ get_account_bool (ModestAccountMgr *self, const gchar *name,
        priv = MODEST_ACCOUNT_MGR_GET_PRIVATE(self);
        retval = modest_conf_get_int (priv->modest_conf,keyname,err);
        g_free (keyname);
-       
+
        return retval;
 }
 
@@ -483,7 +506,7 @@ set_account_string  (ModestAccountMgr *self, const gchar *name,
                     GError **err)
 {
        ModestAccountMgrPrivate *priv;
-       
+
        gchar *keyname;
        gboolean retval;
 
@@ -533,10 +556,10 @@ set_account_int  (ModestAccountMgr *self, const gchar *name,
                  GError **err)
 {
        ModestAccountMgrPrivate *priv;
-       
+
        gchar *keyname;
        gboolean retval;
-       
+
        g_return_val_if_fail (self, FALSE);
        g_return_val_if_fail (name, FALSE);
        g_return_val_if_fail (key, FALSE);
@@ -547,7 +570,7 @@ set_account_int  (ModestAccountMgr *self, const gchar *name,
                keyname = get_account_keyname (name, key);
 
        priv = MODEST_ACCOUNT_MGR_GET_PRIVATE(self);
-       
+
        retval = modest_conf_set_int (priv->modest_conf,keyname,val,err);
 
        g_free (keyname);
@@ -582,21 +605,21 @@ set_account_bool  (ModestAccountMgr *self, const gchar *name,
                   GError **err)
 {
        ModestAccountMgrPrivate *priv;
-       
+
        gchar *keyname;
        gboolean retval;
-       
+
        g_return_val_if_fail (self, FALSE);
        g_return_val_if_fail (name, FALSE);
        g_return_val_if_fail (key, FALSE);
-       
+
        if (server_account)
                keyname = get_server_account_keyname (name, key);
        else
                keyname = get_account_keyname (name, key);
-       
+
        priv = MODEST_ACCOUNT_MGR_GET_PRIVATE(self);
-       
+
        retval = modest_conf_set_bool (priv->modest_conf,keyname,val,err);
 
        g_free (keyname);
@@ -638,14 +661,14 @@ account_exists (ModestAccountMgr *self, const gchar *name, gboolean server_accou
        g_return_val_if_fail (self, FALSE);
        g_return_val_if_fail (name, FALSE);
 
-       if (server_account) 
+       if (server_account)
                keyname = get_account_keyname (name, NULL);
        else
                keyname = get_server_account_keyname (name, NULL);
 
        priv = MODEST_ACCOUNT_MGR_GET_PRIVATE(self);
        retval = modest_conf_key_exists (priv->modest_conf,keyname,err);
-       
+
        g_free (keyname);
        return retval;
 }
@@ -675,10 +698,12 @@ get_account_keyname (const gchar *accname, const gchar *name)
 {
        if (name)
                return g_strconcat
-                       (MODEST_ACCOUNT_NAMESPACE, "/", accname, "/", name, NULL);
+                        (MODEST_ACCOUNT_NAMESPACE, "/",
+                         accname, "/", name, NULL);
        else
-               return g_strconcat
-                       (MODEST_ACCOUNT_NAMESPACE, "/", accname, NULL);
+                return g_strconcat
+                        (MODEST_ACCOUNT_NAMESPACE, "/",
+                         accname, NULL);
 }
 
 
@@ -688,8 +713,10 @@ get_server_account_keyname (const gchar *accname, const gchar *name)
 {
        if (name)
                return g_strconcat
-                       (MODEST_SERVER_ACCOUNT_NAMESPACE, "/", accname, "/", name, NULL);
+                       (MODEST_SERVER_ACCOUNT_NAMESPACE, "/",
+                        accname, "/", name, NULL);
        else
                return g_strconcat
-                       (MODEST_SERVER_ACCOUNT_NAMESPACE, "/", accname, NULL);
+                       (MODEST_SERVER_ACCOUNT_NAMESPACE, "/",
+                        accname, NULL);
 }