* add modest_tny_account_store_get_tny_account_from_server_account,
authorDirk-Jan C. Binnema <dirk-jan.binnema@nokia.com>
Wed, 31 Jan 2007 09:18:41 +0000 (09:18 +0000)
committerDirk-Jan C. Binnema <dirk-jan.binnema@nokia.com>
Wed, 31 Jan 2007 09:18:41 +0000 (09:18 +0000)
to get the corresponding TnyAccount for a server account
* small cleanups

pmo-trunk-r764

src/modest-tny-account-store.c
src/modest-tny-account-store.h

index 7141f6a..02e4c1d 100644 (file)
@@ -35,6 +35,7 @@
 #include <tny-store-account.h>
 #include <tny-transport-account.h>
 #include <tny-device.h>
+#include <tny-simple-list.h>
 #include <tny-account-store.h>
 #include <tny-camel-transport-account.h>
 #include <tny-camel-imap-store-account.h>
@@ -707,8 +708,18 @@ static gboolean
 modest_tny_account_store_alert (TnyAccountStore *self, TnyAlertType type,
                                const gchar *prompt)
 {
-       g_printerr ("modest: alert_func not implemented (%d, %s)\n",
-                   type, prompt);
+       const gchar* typename;
+
+       switch (type) {
+       case TNY_ALERT_TYPE_INFO   : typename = "info"; break;
+       case TNY_ALERT_TYPE_WARNING: typename = "warning"; break;
+       case TNY_ALERT_TYPE_ERROR  : typename = "error"; break;
+       default: g_return_val_if_reached (FALSE);
+       }
+               
+       g_printerr ("modest: alert_func not implemented (%s:%s)\n",
+                   typename, prompt);
+       
        return TRUE;
 }
 
@@ -760,3 +771,30 @@ modest_tny_account_store_get_local_folders_account    (ModestTnyAccountStore *se
        return MODEST_TNY_ACCOUNT_STORE_GET_PRIVATE (self)->local_folders;
 }
 
+TnyAccount*
+modest_tny_account_store_get_tny_account_from_server_account (ModestTnyAccountStore *self,
+                                                             const gchar* server_account)
+{
+       TnyAccount      *account = NULL;
+       TnyList         *accounts;
+       TnyIterator     *iter;
+       
+       g_return_val_if_fail (self, NULL);
+       g_return_val_if_fail (server_account, NULL);
+
+       accounts = tny_simple_list_new ();
+       modest_tny_account_store_get_accounts (TNY_ACCOUNT_STORE(self),
+                                              accounts, TNY_ACCOUNT_STORE_BOTH);       
+       iter = tny_list_create_iterator (accounts);
+       
+       while (tny_iterator_is_done (iter)) {
+               account = TNY_ACCOUNT(tny_iterator_get_current(iter));
+               if (strcmp (tny_account_get_id (account), server_account) == 0)
+                       break;
+       }
+       
+       g_object_unref (G_OBJECT(iter));
+       g_object_unref (G_OBJECT(accounts));
+
+       return account;
+}
index 5bc3723..5aedd90 100644 (file)
@@ -109,6 +109,19 @@ TnySessionCamel*    tny_account_store_get_session    (TnyAccountStore *self);
  */
 TnyAccount*    modest_tny_account_store_get_local_folders_account    (ModestTnyAccountStore *self);
 
+
+/**
+ * modest_tny_account_store_get_account_from_server_account
+ * @server_account: the server account name
+ * 
+ * this function gets a reference to the #TnyAccount corresponding
+ * to a given server account.
+ *
+ * Returns: a  #TnyFolder corresponding to a given server account, or NULL in case
+ * of error
+ */
+TnyAccount*  modest_tny_account_store_get_tny_account_from_server_account
+                   (ModestTnyAccountStore *self, const gchar* server_account);
 G_END_DECLS
 
 #endif /* __MODEST_TNY_ACCOUNT_STORE_H__ */