* modest-widget-memory.[ch]:
[modest] / src / modest-main.c
index 1f836ab..118db3f 100644 (file)
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
 #include <tny-list.h>
+#include <tny-transport-account.h>
+#include <tny-account-store.h>
+#include <tny-list.h>
+#include <tny-simple-list.h>
 
-#include <tny-account-store-iface.h>
-#include <tny-list-iface.h>
-
+#include "config.h"
 #include "modest-conf.h"
 #include "modest-account-mgr.h"
 #include "modest-ui.h"
 #include "modest-icon-factory.h"
-#include "modest-tny-transport-actions.h"
 #include "modest-tny-account-store.h"
+#include "modest-tny-platform-factory.h"
+#include "modest-mail-operation.h"
 
 
-#ifdef MODEST_ENABLE_HILDON /* Hildon includes */
+#if MODEST_PLATFORM_ID==2 
 #include <libosso.h>
-#endif /* MODEST_ENABLE_HILDON */
+#endif /* MODEST_PLATFORM==2 */
 
 /* return values */
 #define MODEST_ERR_NONE    0
 
 static gboolean hildon_init (); /* NOP if HILDON is not defined */
 
-static int start_ui (ModestConf *conf, const gchar* mailto, const gchar *cc,
+static int start_ui (const gchar* mailto, const gchar *cc,
                     const gchar *bcc, const gchar* subject, const gchar *body);
 
-static int send_mail (ModestConf *conf, const gchar* mailto, const gchar *cc, const gchar *bcc,
+static int send_mail (const gchar* mailto, const gchar *cc, const gchar *bcc,
                      const gchar* subject, const gchar *body);
 
 int
 main (int argc, char *argv[])
 {
        GOptionContext   *context        = NULL;
+       TnyPlatformFactory *fact         = NULL;
        ModestConf       *modest_conf    = NULL;
 
        GError *err = NULL;
@@ -79,23 +83,28 @@ main (int argc, char *argv[])
 
        static GOptionEntry options[] = {
                { "debug",  'd', 0, G_OPTION_ARG_NONE, &debug,
-                 "Run in debug mode" },
+                 "Run in debug mode", NULL},
                { "mailto", 'm', 0, G_OPTION_ARG_STRING, &mailto,
-                 "New email to <addresses> (comma-separated)"},
+                 "New email to <addresses> (comma-separated)", NULL},
                { "subject", 's', 0, G_OPTION_ARG_STRING, &subject,
-                 "Subject for a new mail"},
+                 "Subject for a new mail", NULL},
                { "body", 'b', 0, G_OPTION_ARG_STRING, &body,
-                 "Body for a new email"},
+                 "Body for a new email", NULL},
                { "cc",  'c', 0, G_OPTION_ARG_STRING, &cc,
-                 "Cc: addresses for a new mail (comma-separated)"},
+                 "Cc: addresses for a new mail (comma-separated)", NULL},
                { "bcc", 'x', 0, G_OPTION_ARG_STRING, &bcc,
-                 "Bcc: addresses for a new mail (comma-separated)"},
+                 "Bcc: addresses for a new mail (comma-separated)", NULL},
                { "batch", 'y', 0, G_OPTION_ARG_NONE, &batch,
-                 "Run in batch mode (don't show UI)"},
-               { NULL }
+                 "Run in batch mode (don't show UI)", NULL},
+               { NULL, 0, 0, 0, NULL, NULL, NULL }
        };
 
-       g_type_init ();
+       bindtextdomain (GETTEXT_PACKAGE, MODESTLOCALEDIR);
+       bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+       textdomain (GETTEXT_PACKAGE);
+
+       g_type_init ();         
+       g_thread_init (NULL);
 
        context = g_option_context_new (NULL);
        g_option_context_add_main_entries (context, options, NULL);
@@ -109,7 +118,8 @@ main (int argc, char *argv[])
        }
        g_option_context_free (context);
        
-       modest_conf = MODEST_CONF(modest_conf_new());
+       fact = modest_tny_platform_factory_get_instance ();
+       modest_conf = modest_tny_platform_factory_get_modest_conf_instance (fact);
        if (!modest_conf) {
                g_printerr ("modest: failed to initialize config system, exiting\n");
                retval = MODEST_ERR_CONF;
@@ -124,21 +134,19 @@ main (int argc, char *argv[])
        
        if (!batch) {
                gtk_init (&argc, &argv);
-               retval = start_ui (modest_conf, mailto, cc, bcc, subject, body);
+               retval = start_ui (mailto, cc, bcc, subject, body);
        } else 
-               retval = send_mail (modest_conf, mailto, cc, bcc, subject, body);
+               retval = send_mail (mailto, cc, bcc, subject, body);
                
        
 cleanup:
-       if (modest_conf)
-               g_object_unref (G_OBJECT(modest_conf));
        
        return retval;
 }
 
 
 static int
-start_ui (ModestConf *conf, const gchar* mailto, const gchar *cc, const gchar *bcc,
+start_ui (const gchar* mailto, const gchar *cc, const gchar *bcc,
          const gchar* subject, const gchar *body)
 {
 
@@ -149,7 +157,7 @@ start_ui (ModestConf *conf, const gchar* mailto, const gchar *cc, const gchar *b
        GtkWidget *win;
        #endif
        
-       modest_ui = MODEST_UI(modest_ui_new (conf));
+       modest_ui = MODEST_UI(modest_ui_new ());
        if (!modest_ui) {
                g_printerr ("modest: failed to initialize ui, exiting\n");
                retval = MODEST_ERR_UI;
@@ -194,18 +202,17 @@ cleanup:
 static gboolean
 hildon_init ()
 {
-#ifdef MODEST_ENABLE_HILDON
-
+#if MODEST_PLATFORM_ID==2 
+       
        osso_context_t *osso_context =
                osso_initialize(PACKAGE, PACKAGE_VERSION,
                                TRUE, NULL);    
        if (!osso_context) {
-               g_printerr ("modest: failed to aquire osso context, exiting\n");
-
+               g_printerr ("modest: failed to acquire osso context\n");
                return FALSE;
-               
        }
-#endif /* MODEST_ENABLE_HILDON */
+       
+#endif /* MODEST_PLATFORM_ID==2 */
 
        return TRUE;
 }
@@ -213,52 +220,57 @@ hildon_init ()
 
 
 static int
-send_mail (ModestConf *conf, const gchar* mailto, const gchar *cc, const gchar *bcc,
+send_mail (const gchar* mailto, const gchar *cc, const gchar *bcc,
           const gchar* subject, const gchar *body)
 {
        ModestAccountMgr *acc_mgr = NULL;
-       ModestTnyAccountStore *acc_store = NULL;
+       TnyPlatformFactory *fact = NULL;
+       TnyAccountStore *acc_store = NULL;
+       ModestMailOperation *mail_operation;
 
-       TnyListIface *accounts = NULL;
-       TnyIteratorIface *iter = NULL;
-       TnyTransportAccountIface *account = NULL;       
+       TnyList *accounts = NULL;
+       TnyIterator *iter = NULL;
+       TnyTransportAccount *account = NULL;    
        int retval;
-       
-       acc_mgr   = modest_account_mgr_new (conf);
-       acc_store = modest_tny_account_store_new (acc_mgr);     
 
-       accounts = TNY_LIST_IFACE(tny_list_new ());
-       tny_account_store_iface_get_accounts (TNY_ACCOUNT_STORE_IFACE(acc_store), accounts,
-                                             TNY_ACCOUNT_STORE_IFACE_TRANSPORT_ACCOUNTS);
+       fact = modest_tny_platform_factory_get_instance ();
+       acc_mgr = modest_tny_platform_factory_get_modest_account_mgr_instance (fact);
+       acc_store = tny_platform_factory_new_account_store (fact);      
+
+       accounts = TNY_LIST(tny_simple_list_new ());
+       tny_account_store_get_accounts (TNY_ACCOUNT_STORE(acc_store), accounts,
+                                             TNY_ACCOUNT_STORE_TRANSPORT_ACCOUNTS);
 
-       iter = tny_list_iface_create_iterator(accounts);
-       tny_iterator_iface_first (iter);
-       if (tny_iterator_iface_is_done (iter)) {
+       iter = tny_list_create_iterator(accounts);
+       tny_iterator_first (iter);
+       if (tny_iterator_is_done (iter)) {
                g_printerr("modest: no transport accounts defined\n");
                retval = MODEST_ERR_SEND;
                goto cleanup;
        }
 
-       account = TNY_TRANSPORT_ACCOUNT_IFACE (tny_iterator_iface_current(iter));
+       account = TNY_TRANSPORT_ACCOUNT (tny_iterator_get_current(iter));
+
+       mail_operation = modest_mail_operation_new ();
+
+       modest_mail_operation_send_new_mail (mail_operation,
+                                            account,
+                                            "djcb@djcbsoftware.nl", mailto, cc, bcc, 
+                                            subject, body, NULL);
 
-       if (!modest_tny_transport_actions_send_message ( account,
-                                                        "<>", mailto, cc, bcc, subject, body,
-                                                        NULL)) {
+
+       if (modest_mail_operation_get_status (mail_operation) == 
+           MODEST_MAIL_OPERATION_STATUS_FAILED) {
                retval = MODEST_ERR_SEND;
                goto cleanup;
        } else
                retval = MODEST_ERR_NONE; /* hurray! */
-                                                        
+
 cleanup:
-       if (iter)
-               g_object_unref (G_OBJECT(iter));
-       if (accounts)
-               g_object_unref (G_OBJECT(accounts));
-       if (acc_store)
-               g_object_unref (G_OBJECT(acc_store));
-       if (acc_mgr)
-               g_object_unref (G_OBJECT(acc_mgr));
-       
+       if (iter) g_object_unref (G_OBJECT (iter));
+       if (accounts) g_object_unref (G_OBJECT (accounts));
+       if (mail_operation) g_object_unref (G_OBJECT (mail_operation));
+
        return retval;
 }