X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-init.c;h=b45399264d6402fcf4de275519e9aa65e6fa0aaf;hp=5ef1a0fe481f74790e5553a8429fc4c91f2af706;hb=7ca6e9e5aff9996bac9eb8304d8255a9f00999a6;hpb=ec580f3b749b412d1fcd0c704c552d57ecddd5e9 diff --git a/src/modest-init.c b/src/modest-init.c index 5ef1a0f..b453992 100644 --- a/src/modest-init.c +++ b/src/modest-init.c @@ -48,6 +48,7 @@ #include #include "widgets/modest-global-settings-dialog.h" #include "modest-tny-msg.h" +#include #ifdef MODEST_PLATFORM_MAEMO #include "modest-hildon-includes.h" #endif @@ -63,6 +64,9 @@ 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 */ @@ -73,7 +77,7 @@ typedef struct { } FolderCols; -static const guint MODEST_MAIN_PANED_POS = 280; +static const guint MODEST_MAIN_PANED_POS_PERCENTAGE = 30; static const FolderCols INBOX_COLUMNS_DETAILS[] = { {MODEST_HEADER_VIEW_COLUMN_MSGTYPE, 40, 0}, @@ -122,7 +126,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; @@ -177,19 +182,19 @@ gboolean 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"); @@ -238,8 +243,8 @@ modest_init (int argc, char *argv[]) g_printerr ("modest: failed to init ui\n"); return FALSE; } - - return TRUE; + + return _is_initialized = TRUE; } @@ -264,12 +269,19 @@ 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 (); + if (!modest_platform_uninit()) + g_printerr ("modest: failed to uninit platform\n"); + _is_initialized = FALSE; return TRUE; } @@ -386,11 +398,12 @@ init_header_columns (ModestConf *conf, gboolean overwrite) }; } - key = _modest_widget_memory_get_keyname (MODEST_CONF_MAIN_PANED_KEY, MODEST_WIDGET_MEMORY_PARAM_POS); + key = _modest_widget_memory_get_keyname (MODEST_CONF_MAIN_PANED_KEY, + MODEST_WIDGET_MEMORY_PARAM_POS); /* if we're not in overwrite mode, only write stuff it * there was nothing before */ if (overwrite || !modest_conf_key_exists(conf, key, NULL)) - modest_conf_set_int (conf, key, MODEST_MAIN_PANED_POS, NULL); + modest_conf_set_int (conf, key, MODEST_MAIN_PANED_POS_PERCENTAGE, NULL); g_free (key); return TRUE; @@ -441,7 +454,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); @@ -513,9 +527,9 @@ init_debug_g_type (void) gflags = 0; mflags = modest_runtime_get_debug_flags (); - if (mflags & MODEST_RUNTIME_DEBUG_DEBUG_OBJECTS) + if (mflags & MODEST_RUNTIME_DEBUG_OBJECTS) gflags |= G_TYPE_DEBUG_OBJECTS; - if (mflags & MODEST_RUNTIME_DEBUG_DEBUG_SIGNALS) + if (mflags & MODEST_RUNTIME_DEBUG_SIGNALS) gflags |= G_TYPE_DEBUG_SIGNALS; g_type_init_with_debug_flags (gflags); @@ -537,23 +551,26 @@ 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 */ -/* #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); + /* little trick make en_GB the fallback language, instead + * of the logical IDs + * we need the ugly ifdefs, because modest_platform_init is + * too late. + */ + const gchar *lc_messages = getenv ("LC_MESSAGES"); + + if (!lc_messages) { + setenv ("LANGUAGE", "en_GB", 1); + setenv ("LC_MESSAGES", "en_GB", 1); + } else { + gchar *language = g_strdup_printf ("%s:en_GB", lc_messages); + setenv ("LANGUAGE", language, 1); + g_free (language); + } + /* end of little trick */ - setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, MODEST_LOCALE_DIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); } @@ -606,7 +623,7 @@ init_stock_icons (void) /* MODEST_TOOLBAR_ICON_NEXT, */ /* MODEST_TOOLBAR_ICON_PREV, */ /* MODEST_TOOLBAR_ICON_STOP */ - MODEST_TOOLBAR_ICON_FORMAT_BULLETS, +/* MODEST_TOOLBAR_ICON_FORMAT_BULLETS, */ }; registered = TRUE; @@ -656,23 +673,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); -/* 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); @@ -704,7 +730,7 @@ init_default_settings (ModestConf *conf) static void init_device_name (ModestConf *conf) { - unsigned int len = 255; /* max len */ + gsize len = 255; /* max len */ gchar *devname = NULL; if (!g_file_get_contents("/etc/hostname", &devname, &len, NULL) || len < 2 || len > 254) {