X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-init.c;h=690f7c8a3953e1c7333f825dd6744db748a1efe1;hp=98ed12d6619bddc1234f2f33f43f347de0d4fe46;hb=2fbc6870fbfcb6c2a1198b302141e268acd4b94c;hpb=d82c5a67d7390812b37ac7cdb2a48ec299ab2b68 diff --git a/src/modest-init.c b/src/modest-init.c index 98ed12d..690f7c8 100644 --- a/src/modest-init.c +++ b/src/modest-init.c @@ -61,6 +61,7 @@ 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); +static gboolean init_ui (gint argc, gchar** argv); /* * defaults for the column headers @@ -133,7 +134,8 @@ static GList* new_cold_ids_gslist_from_array( const FolderCols* cols, guint col_ return result; } -GList * modest_init_get_default_header_view_column_ids (TnyFolderType folder_type, ModestHeaderViewStyle style) +GList* +modest_init_get_default_header_view_column_ids (TnyFolderType folder_type, ModestHeaderViewStyle style) { GList *result = NULL; @@ -170,8 +172,9 @@ GList * modest_init_get_default_header_view_column_ids (TnyFolderType folder_typ return result; } + gboolean -modest_init_init_core (void) +modest_init (int argc, char *argv[]) { gboolean reset; static gboolean invoked = FALSE; @@ -182,28 +185,36 @@ modest_init_init_core (void) return FALSE; } else invoked = TRUE; - + init_i18n(); init_debug_g_type(); init_debug_logging(); + + /* initialize the prng, we need it when creating random files */ + srandom((int)getpid()); + + if (!gnome_vfs_initialized()) { + if (!gnome_vfs_init ()) { + g_printerr ("modest: failed to init gnome-vfs\n"); + return FALSE; + } + } if (!modest_runtime_init()) { modest_init_uninit (); g_printerr ("modest: failed to initialize the modest runtime\n"); return FALSE; } - - + /* do an initial guess for the device name */ init_device_name (modest_runtime_get_conf()); - - if (!modest_platform_init()) { + + if (!modest_platform_init(argc, argv)) { modest_init_uninit (); g_printerr ("modest: failed to run platform-specific initialization\n"); return FALSE; } - /* based on the debug settings, we decide whether to overwrite old settings */ reset = modest_runtime_get_debug_flags () & MODEST_RUNTIME_DEBUG_FACTORY_SETTINGS; if (!init_header_columns(modest_runtime_get_conf(), reset)) { modest_init_uninit (); @@ -223,20 +234,21 @@ modest_init_init_core (void) modest_init_uninit (); g_printerr ("modest: failed to init default account\n"); return FALSE; + } + + if (!init_ui (argc, argv)) { + modest_init_uninit (); + g_printerr ("modest: failed to init ui\n"); + return FALSE; } return TRUE; } -gboolean -modest_init_init_ui (gint argc, gchar** argv) +static gboolean +init_ui (gint argc, gchar** argv) { - if (!gtk_init_check(&argc, &argv)) { - g_printerr ("modest: failed to initialize graphical ui\n"); - return FALSE; - } - /* Set application name */ g_set_application_name (modest_platform_get_app_name()); /* g_message (modest_platform_get_app_name()); */ @@ -244,11 +256,10 @@ modest_init_init_ui (gint argc, gchar** argv) /* Init stock icons */ init_stock_icons (); - /* Init notification system */ - #ifndef MODEST_HILDON_VERSION_0 + /* Init notification system */ +#ifdef MODEST_HAVE_HILDON_NOTIFY notify_init ("Basics"); - #endif - +#endif return TRUE; } @@ -258,7 +269,10 @@ modest_init_uninit (void) { if (!modest_runtime_uninit()) g_printerr ("modest: failed to uninit runtime\n"); - + + if (gnome_vfs_initialized()) + gnome_vfs_shutdown (); + return TRUE; } @@ -276,6 +290,8 @@ save_header_settings (ModestConf *conf, TnyFolderType type, { int i; gchar *key; + gchar *sort_key; + gchar *sort_value; GString *str; g_return_val_if_fail (cols, FALSE); @@ -283,10 +299,14 @@ save_header_settings (ModestConf *conf, TnyFolderType type, key = _modest_widget_memory_get_keyname_with_double_type ("header-view", type, style, MODEST_WIDGET_MEMORY_PARAM_COLUMN_WIDTH); + sort_key = _modest_widget_memory_get_keyname_with_double_type ("header-view", + type, style, + MODEST_WIDGET_MEMORY_PARAM_COLUMN_SORT); /* if we're not in overwrite mode, only write stuff it * there was nothing before */ if (!overwrite && modest_conf_key_exists(conf, key, NULL)) { g_free (key); + g_free (sort_key); return TRUE; } @@ -299,6 +319,18 @@ save_header_settings (ModestConf *conf, TnyFolderType type, modest_conf_set_string (conf, key, str->str, NULL); g_free (key); g_string_free (str, TRUE); + + if ( col_num > 0 ) { + gint sort_col_id; + if (cols[0].col == MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_OUT) + sort_col_id = TNY_GTK_HEADER_LIST_MODEL_DATE_SENT_TIME_T_COLUMN; + else + sort_col_id = TNY_GTK_HEADER_LIST_MODEL_DATE_RECEIVED_TIME_T_COLUMN; + sort_value = g_strdup_printf("%d:%d:%d", sort_col_id, GTK_SORT_DESCENDING, 0); + modest_conf_set_string (conf, sort_key, sort_value, NULL); + g_free (sort_value); + } + g_free (sort_key); return TRUE; } @@ -402,15 +434,32 @@ gboolean modest_init_one_local_folder (gchar *maildir_path) gboolean modest_init_local_folders (const gchar* location_filepath) { + gboolean retval = TRUE; + gchar *maildir_path = modest_local_folder_info_get_maildir_path (location_filepath); if (location_filepath) { - /* For instance, for memory card, just create the top-level .modest folder: */ + /* For instance, for memory card, just create the top-level .modest folder + * and one "archive" folder (so that messages can be put somewhere): + */ + + gchar *dir = g_build_filename (maildir_path, + modest_local_folder_info_get_type_name(TNY_FOLDER_TYPE_ARCHIVE), + NULL); + const gboolean created = modest_init_one_local_folder (dir); + g_free(dir); + + if (!created) { + retval = FALSE; + } + + #if 0 + /* Do this if we only create the top-level dir: */ if (g_mkdir_with_parents (maildir_path, 0755) < 0) { g_printerr ("modest: %s: failed to create %s\n", __FUNCTION__, location_filepath); - g_free (maildir_path); - return FALSE; + retval = FALSE; } + #endif } else { /* Create each of the standard on-disk folders. @@ -424,14 +473,13 @@ modest_init_local_folders (const gchar* location_filepath) g_free(dir); if (!created) { - g_free (maildir_path); - return FALSE; + retval = FALSE; } } } g_free (maildir_path); - return TRUE; + return retval; } /** @@ -496,14 +544,16 @@ 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 */ -#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*/ +/* #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*\/ */ + gettext_package = GETTEXT_PACKAGE; + bind_textdomain_codeset (gettext_package, "UTF-8"); textdomain (gettext_package); @@ -536,8 +586,8 @@ init_stock_icons (void) { MODEST_STOCK_NEW_MAIL, "new mail", 0, 0, NULL }, /* { MODEST_STOCK_SEND_RECEIVE, "send receive", 0, 0, NULL }, */ { MODEST_STOCK_REPLY, "reply", 0, 0, NULL }, - { MODEST_STOCK_REPLY_ALL, "reply all", 0, 0, NULL }, - { MODEST_STOCK_FORWARD, "forward", 0, 0, NULL }, +/* { MODEST_STOCK_REPLY_ALL, "reply all", 0, 0, NULL }, */ +/* { MODEST_STOCK_FORWARD, "forward", 0, 0, NULL }, */ { MODEST_STOCK_DELETE, "delete", 0, 0, NULL }, /* { MODEST_STOCK_NEXT, "next", 0, 0, NULL }, */ /* { MODEST_STOCK_PREV, "prev", 0, 0, NULL }, */ @@ -554,8 +604,8 @@ init_stock_icons (void) MODEST_TOOLBAR_ICON_NEW_MAIL, /* MODEST_TOOLBAR_ICON_SEND_RECEIVE, */ MODEST_TOOLBAR_ICON_REPLY, - MODEST_TOOLBAR_ICON_REPLY_ALL, - MODEST_TOOLBAR_ICON_FORWARD, +/* MODEST_TOOLBAR_ICON_REPLY_ALL, */ +/* MODEST_TOOLBAR_ICON_FORWARD, */ MODEST_TOOLBAR_ICON_DELETE, /* MODEST_TOOLBAR_ICON_NEXT, */ /* MODEST_TOOLBAR_ICON_PREV, */ @@ -599,7 +649,7 @@ init_stock_icons (void) g_object_unref (transparent); } else - g_warning ("failed to load %s icon", items_names[i]); + g_warning ("Modest: %s: failed to load %s icon", __FUNCTION__, items_names[i]); } /* Drop our reference to the factory, GTK will hold a reference. */ g_object_unref (factory); @@ -610,21 +660,32 @@ init_stock_icons (void) static void init_default_settings (ModestConf *conf) { - if (!modest_conf_key_exists (conf, MODEST_CONF_SHOW_TOOLBAR, NULL)) - modest_conf_set_bool (conf, MODEST_CONF_SHOW_TOOLBAR, TRUE, NULL); + /* Show toolbar keys */ + if (!modest_conf_key_exists (conf, MODEST_CONF_MAIN_WINDOW_SHOW_TOOLBAR, NULL)) + modest_conf_set_bool (conf, MODEST_CONF_MAIN_WINDOW_SHOW_TOOLBAR, TRUE, NULL); - if (!modest_conf_key_exists (conf, MODEST_CONF_SHOW_TOOLBAR_FULLSCREEN, NULL)) - modest_conf_set_bool (conf, MODEST_CONF_SHOW_TOOLBAR_FULLSCREEN, TRUE, NULL); + if (!modest_conf_key_exists (conf, MODEST_CONF_MAIN_WINDOW_SHOW_TOOLBAR_FULLSCREEN, NULL)) + modest_conf_set_bool (conf, MODEST_CONF_MAIN_WINDOW_SHOW_TOOLBAR_FULLSCREEN, TRUE, NULL); + + if (!modest_conf_key_exists (conf, MODEST_CONF_MSG_VIEW_WINDOW_SHOW_TOOLBAR, NULL)) + modest_conf_set_bool (conf, MODEST_CONF_MSG_VIEW_WINDOW_SHOW_TOOLBAR, TRUE, NULL); + + if (!modest_conf_key_exists (conf, MODEST_CONF_MSG_VIEW_WINDOW_SHOW_TOOLBAR_FULLSCREEN, NULL)) + modest_conf_set_bool (conf, MODEST_CONF_MSG_VIEW_WINDOW_SHOW_TOOLBAR_FULLSCREEN, TRUE, NULL); + + if (!modest_conf_key_exists (conf, MODEST_CONF_EDIT_WINDOW_SHOW_TOOLBAR, NULL)) + modest_conf_set_bool (conf, MODEST_CONF_EDIT_WINDOW_SHOW_TOOLBAR, TRUE, NULL); + if (!modest_conf_key_exists (conf, MODEST_CONF_EDIT_WINDOW_SHOW_TOOLBAR_FULLSCREEN, NULL)) + modest_conf_set_bool (conf, MODEST_CONF_EDIT_WINDOW_SHOW_TOOLBAR_FULLSCREEN, TRUE, NULL); + + /* Editor keys */ if (!modest_conf_key_exists (conf, MODEST_CONF_SHOW_CC, NULL)) modest_conf_set_bool (conf, MODEST_CONF_SHOW_CC, TRUE, NULL); if (!modest_conf_key_exists (conf, MODEST_CONF_SHOW_BCC, NULL)) modest_conf_set_bool (conf, MODEST_CONF_SHOW_BCC, FALSE, NULL); - if (!modest_conf_key_exists (conf, MODEST_CONF_CONNECT_AT_STARTUP, NULL)) - modest_conf_set_bool (conf, MODEST_CONF_CONNECT_AT_STARTUP, TRUE, NULL); - /* Global settings */ if (!modest_conf_key_exists (conf, MODEST_CONF_AUTO_UPDATE, NULL)) modest_conf_set_bool (conf, MODEST_CONF_AUTO_UPDATE, TRUE, NULL);