trying to commit
[modest] / src / modest-init.c
index 6fc3f80..8f09230 100644 (file)
@@ -55,6 +55,7 @@ static void     init_stock_icons (void);
 static void     init_debug_g_type (void);
 static void     init_debug_logging (void);
 static void     init_default_settings (ModestConf *conf);
+static void     init_device_name (ModestConf *conf);
 
 /*
  * defaults for the column headers
@@ -62,42 +63,43 @@ static void     init_default_settings (ModestConf *conf);
 typedef struct {
        ModestHeaderViewColumn col;
        guint                  width;
+       gint                  sort;
 } FolderCols;
 
 static const FolderCols INBOX_COLUMNS_DETAILS[] = {
-       {MODEST_HEADER_VIEW_COLUMN_MSGTYPE, 40},
-       {MODEST_HEADER_VIEW_COLUMN_ATTACH,  40},
-       {MODEST_HEADER_VIEW_COLUMN_FROM,    80},
-       {MODEST_HEADER_VIEW_COLUMN_SUBJECT, 80},
-       {MODEST_HEADER_VIEW_COLUMN_RECEIVED_DATE, 60},
-       {MODEST_HEADER_VIEW_COLUMN_SIZE, 50}
+       {MODEST_HEADER_VIEW_COLUMN_MSGTYPE, 40, 0},
+       {MODEST_HEADER_VIEW_COLUMN_ATTACH,  40, 0},
+       {MODEST_HEADER_VIEW_COLUMN_FROM,    80, 0},
+       {MODEST_HEADER_VIEW_COLUMN_SUBJECT, 80, 0},
+       {MODEST_HEADER_VIEW_COLUMN_RECEIVED_DATE, 60, 0},
+       {MODEST_HEADER_VIEW_COLUMN_SIZE, 50, 0}
 };
 
 static const FolderCols INBOX_COLUMNS_TWOLINES[] = {
-       {MODEST_HEADER_VIEW_COLUMN_COMPACT_FLAG, 40},
-       {MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_IN, 180},
-       {MODEST_HEADER_VIEW_COLUMN_COMPACT_RECEIVED_DATE, 240}
+       {MODEST_HEADER_VIEW_COLUMN_COMPACT_FLAG, 40, 0},
+       {MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_IN, 180, 0},
+       {MODEST_HEADER_VIEW_COLUMN_COMPACT_RECEIVED_DATE, 240, -1}
 };
 
 static const FolderCols OUTBOX_COLUMNS_DETAILS[] = {
-       {MODEST_HEADER_VIEW_COLUMN_MSGTYPE, 40},
-       {MODEST_HEADER_VIEW_COLUMN_ATTACH,  40},
-       {MODEST_HEADER_VIEW_COLUMN_TO,    80},
-       {MODEST_HEADER_VIEW_COLUMN_SUBJECT, 80},
-       {MODEST_HEADER_VIEW_COLUMN_SENT_DATE, 80},
-       {MODEST_HEADER_VIEW_COLUMN_SIZE, 50}
+       {MODEST_HEADER_VIEW_COLUMN_MSGTYPE, 40, 0},
+       {MODEST_HEADER_VIEW_COLUMN_ATTACH,  40, 0},
+       {MODEST_HEADER_VIEW_COLUMN_TO,    80, 0},
+       {MODEST_HEADER_VIEW_COLUMN_SUBJECT, 80, 0},
+       {MODEST_HEADER_VIEW_COLUMN_SENT_DATE, 80, 0},
+       {MODEST_HEADER_VIEW_COLUMN_SIZE, 50, 0}
 };
 
 static const FolderCols OUTBOX_COLUMNS_TWOLINES[] = {
-       {MODEST_HEADER_VIEW_COLUMN_COMPACT_FLAG, 40},
-       {MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_OUT,180},
-       {MODEST_HEADER_VIEW_COLUMN_STATUS, 240}
+       {MODEST_HEADER_VIEW_COLUMN_COMPACT_FLAG, 40, 0},
+       {MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_OUT,180, 0},
+       {MODEST_HEADER_VIEW_COLUMN_STATUS, 240, 0}
 };
 
 static const FolderCols SENT_COLUMNS_TWOLINES[] = {
-       {MODEST_HEADER_VIEW_COLUMN_COMPACT_FLAG, 40},
-       {MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_OUT,180},
-       {MODEST_HEADER_VIEW_COLUMN_COMPACT_SENT_DATE, 240}
+       {MODEST_HEADER_VIEW_COLUMN_COMPACT_FLAG, 40, 0},
+       {MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_OUT,180, 0},
+       {MODEST_HEADER_VIEW_COLUMN_COMPACT_SENT_DATE, 240, -1}
 };
 
 #ifdef MODEST_PLATFORM_MAEMO
@@ -143,6 +145,10 @@ modest_init_init_core (void)
                return FALSE;
        }
 
+
+       /* do an initial guess for the device name */
+       init_device_name (modest_runtime_get_conf());
+
        if (!modest_platform_init()) {
                modest_init_uninit ();
                g_printerr ("modest: failed to run platform-specific initialization\n");
@@ -185,7 +191,7 @@ modest_init_init_ui (gint argc, gchar** argv)
 
        /* Set application name */
        g_set_application_name (modest_platform_get_app_name());
-       g_warning (modest_platform_get_app_name());
+       /* g_message (modest_platform_get_app_name()); */
 
        init_stock_icons ();
        return TRUE;
@@ -232,8 +238,8 @@ save_header_settings (ModestConf *conf, TnyFolderType type,
        /* the format is necessarily the same as the one in modest-widget-memory */
        str = g_string_new (NULL);
        for (i = 0; i != col_num; ++i) 
-               g_string_append_printf (str, "%d:%d ",
-                                       cols[i].col, cols[i].width); 
+               g_string_append_printf (str, "%d:%d:%d ",
+                                       cols[i].col, cols[i].width, cols[i].sort); 
 
        modest_conf_set_string (conf, key, str->str, NULL);
        g_free (key);
@@ -348,7 +354,7 @@ free_element (gpointer data, gpointer user_data)
 }
 
 
-
+/* TODO: This is a duplicate of modest_account_mgr_set_first_account_as_default(). */
 /**
  * init_default_account_maybe:
  *
@@ -366,7 +372,7 @@ init_default_account_maybe  (ModestAccountMgr *acc_mgr)
        gchar *default_account;
        gboolean retval = TRUE;
        
-       all_accounts = modest_account_mgr_account_names (acc_mgr);
+       all_accounts = modest_account_mgr_account_names (acc_mgr, TRUE /* enabled accounts only */);
        if (all_accounts) { /* if there are any accounts, there should be a default one */
                default_account = 
                        modest_account_mgr_get_default_account (acc_mgr);
@@ -394,14 +400,14 @@ static void
 init_debug_g_type (void)
 {
        GTypeDebugFlags gflags;
-       ModestInitDebugFlags mflags;
+       ModestRuntimeDebugFlags mflags;
        
        gflags = 0;
        mflags = modest_runtime_get_debug_flags ();
 
-       if (mflags & MODEST_INIT_DEBUG_DEBUG_OBJECTS)
+       if (mflags & MODEST_RUNTIME_DEBUG_DEBUG_OBJECTS)
                gflags |= G_TYPE_DEBUG_OBJECTS;
-       if (mflags & MODEST_INIT_DEBUG_DEBUG_SIGNALS)
+       if (mflags & MODEST_RUNTIME_DEBUG_DEBUG_SIGNALS)
                gflags |= G_TYPE_DEBUG_SIGNALS;
 
        g_type_init_with_debug_flags (gflags);
@@ -410,10 +416,10 @@ init_debug_g_type (void)
 static void
 init_debug_logging (void)
 {
-       ModestInitDebugFlags mflags;
+       ModestRuntimeDebugFlags mflags;
        mflags = modest_runtime_get_debug_flags ();
        
-       if (mflags & MODEST_INIT_DEBUG_ABORT_ON_WARNING)
+       if (mflags & MODEST_RUNTIME_DEBUG_ABORT_ON_WARNING)
                g_log_set_always_fatal (G_LOG_LEVEL_ERROR |
                                        G_LOG_LEVEL_CRITICAL |
                                        G_LOG_LEVEL_WARNING);
@@ -423,11 +429,19 @@ init_debug_logging (void)
 static void
 init_i18n (void)
 {
+       const gchar* gettext_package;
        /* Setup gettext, to use our .po files: */
        /* GETTEXT_PACKAGE and MODEST_LOCALE_DIR are defined in config.h */
-       bindtextdomain (GETTEXT_PACKAGE, MODEST_LOCALE_DIR);
-       bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-       textdomain (GETTEXT_PACKAGE);
+#ifdef MODEST_HILDON_VERSION_0
+       gettext_package = GETTEXT_PACKAGE;
+       bindtextdomain (gettext_package, MODEST_LOCALE_DIR);
+#else
+       gettext_package = "osso-email"; /* HACK to use the localizations */
+       bindtextdomain (gettext_package, "/usr/share/locale");
+#endif /*MODEST_HILDON_VERSION_0*/
+       
+       bind_textdomain_codeset (gettext_package, "UTF-8");
+       textdomain (gettext_package);
 }
 
 
@@ -546,3 +560,32 @@ init_default_settings (ModestConf *conf)
                modest_conf_set_bool (conf, MODEST_CONF_CONNECT_AT_STARTUP, TRUE, NULL);
 
 }
+
+
+/* set the device name -- note this is an initial guess from /etc/hostname
+ * on maemo-device it will most probably be replaced with the Bluetooth device
+ * name later during starting (see maemo/modest-maemo-utils.[ch])
+ */
+static void
+init_device_name (ModestConf *conf)
+{
+       int len = 255; /* max len */
+       gchar *devname = NULL;
+       
+       if (!g_file_get_contents("/etc/hostname", &devname, &len, NULL) || len < 2 || len > 254) {
+               g_printerr ("modest: failed to read hostname\n");
+               modest_conf_set_string (conf, MODEST_CONF_DEVICE_NAME,
+                                       MODEST_LOCAL_FOLDERS_DEFAULT_DISPLAY_NAME,
+                                       NULL);
+       } else {
+               /* remove the \n at the end */
+               if (devname[len-1] == '\n')
+                       devname[len-1] = '\0';
+               else
+                       devname[len] = '\0';
+
+               modest_conf_set_string (conf, MODEST_CONF_DEVICE_NAME,devname, NULL);
+       }
+
+       g_free (devname);
+}