X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-init.c;h=d0cc3e2a7eaef691cb1e1511d9fea3e738099b5e;hb=0d2c9c5be16269deae5f0414985292686a61022c;hp=99e183f8d1dda3928367982a49df6ef85f6aa7d4;hpb=06536a525801914c10d4caf9ca9acd6a5ac86cfe;p=modest diff --git a/src/modest-init.c b/src/modest-init.c index 99e183f..d0cc3e2 100644 --- a/src/modest-init.c +++ b/src/modest-init.c @@ -61,6 +61,10 @@ 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); + + +static gboolean _is_initialized = FALSE; /* * defaults for the column headers @@ -121,7 +125,8 @@ static const TnyFolderType LOCAL_FOLDERS[] = { }; #endif /* MODEST_PLATFORM_MAEMO */ -static GList* new_cold_ids_gslist_from_array( const FolderCols* cols, guint col_num) +static GList* +new_cold_ids_gslist_from_array( const FolderCols* cols, guint col_num) { GList *result = NULL; @@ -171,23 +176,24 @@ modest_init_get_default_header_view_column_ids (TnyFolderType folder_type, Modes return result; } + gboolean -modest_init_init_core (int argc, char *argv[]) +modest_init (int argc, char *argv[]) { gboolean reset; - static gboolean invoked = FALSE; - if (invoked) { + if (_is_initialized) { g_printerr ("modest: modest_init_init_core may only be invoked once\n"); - g_assert (!invoked); /* abort */ 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"); @@ -200,11 +206,9 @@ modest_init_init_core (int argc, char *argv[]) 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(argc, argv)) { modest_init_uninit (); @@ -231,20 +235,21 @@ modest_init_init_core (int argc, char *argv[]) modest_init_uninit (); g_printerr ("modest: failed to init default account\n"); return FALSE; - } + } - return TRUE; + if (!init_ui (argc, argv)) { + modest_init_uninit (); + g_printerr ("modest: failed to init ui\n"); + return FALSE; + } + + return _is_initialized = 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()); */ @@ -252,12 +257,10 @@ modest_init_init_ui (gint argc, gchar** argv) /* Init stock icons */ init_stock_icons (); - /* Init notification system */ + /* Init notification system */ #ifdef MODEST_HAVE_HILDON_NOTIFY notify_init ("Basics"); #endif - - return TRUE; } @@ -265,12 +268,16 @@ modest_init_init_ui (gint argc, gchar** argv) gboolean modest_init_uninit (void) { + if (!_is_initialized) + return TRUE; + + if (gnome_vfs_initialized()) /* apparently, this returns TRUE, even after a shutdown */ + gnome_vfs_shutdown (); + if (!modest_runtime_uninit()) g_printerr ("modest: failed to uninit runtime\n"); - if (gnome_vfs_initialized()) - gnome_vfs_shutdown (); - + _is_initialized = FALSE; return TRUE; } @@ -320,7 +327,7 @@ save_header_settings (ModestConf *conf, TnyFolderType type, if ( col_num > 0 ) { gint sort_col_id; - if (cols[i].col == MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_OUT) + 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; @@ -442,7 +449,8 @@ modest_init_local_folders (const gchar* location_filepath) */ gchar *dir = g_build_filename (maildir_path, - "Archive", NULL); + modest_local_folder_info_get_type_name(TNY_FOLDER_TYPE_ARCHIVE), + NULL); const gboolean created = modest_init_one_local_folder (dir); g_free(dir); @@ -583,8 +591,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 }, */ @@ -601,8 +609,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, */ @@ -646,7 +654,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); @@ -657,23 +665,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_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_SHOW_TOOLBAR_FULLSCREEN, NULL)) - modest_conf_set_bool (conf, MODEST_CONF_SHOW_TOOLBAR_FULLSCREEN, 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); -/* Not used: - 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);