X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-init.c;h=37016d40aab3258f8cc50c86969653d2635c78fe;hp=8f09230454dfc4d83293322e3240e036c3fef26e;hb=96d9a8c787c693406a0f26e3d3a00065c7236fe5;hpb=4101edcca626f2e9621bfea4c9893178f74d5d90 diff --git a/src/modest-init.c b/src/modest-init.c index 8f09230..37016d4 100644 --- a/src/modest-init.c +++ b/src/modest-init.c @@ -46,6 +46,8 @@ #include #include #include +#include "widgets/modest-global-settings-dialog.h" +#include "modest-tny-msg.h" static gboolean init_header_columns (ModestConf *conf, gboolean overwrite); static gboolean init_local_folders (void); @@ -104,13 +106,13 @@ static const FolderCols SENT_COLUMNS_TWOLINES[] = { #ifdef MODEST_PLATFORM_MAEMO static const TnyFolderType LOCAL_FOLDERS[] = { - TNY_FOLDER_TYPE_OUTBOX, +/* TNY_FOLDER_TYPE_OUTBOX, */ TNY_FOLDER_TYPE_DRAFTS, TNY_FOLDER_TYPE_SENT }; #else static const TnyFolderType LOCAL_FOLDERS[] = { - TNY_FOLDER_TYPE_OUTBOX, +/* TNY_FOLDER_TYPE_OUTBOX, */ TNY_FOLDER_TYPE_DRAFTS, TNY_FOLDER_TYPE_SENT, TNY_FOLDER_TYPE_TRASH, @@ -136,7 +138,9 @@ modest_init_init_core (void) init_debug_g_type(); init_debug_logging(); - g_thread_init(NULL); + if (!g_thread_supported()) + g_thread_init(NULL); + gdk_threads_init (); if (!modest_runtime_init()) { @@ -303,6 +307,29 @@ init_header_columns (ModestConf *conf, gboolean overwrite) return TRUE; } +gboolean modest_init_one_local_folder (gchar *maildir_path) +{ + static const gchar* maildirs[] = { + "cur", "new", "tmp" + }; + + int j; + for (j = 0; j != G_N_ELEMENTS(maildirs); ++j) { + gchar *dir = g_build_filename (maildir_path, + maildirs[j], + NULL); + if (g_mkdir_with_parents (dir, 0755) < 0) { + g_printerr ("modest: failed to create %s\n", dir); + g_free (dir); + return FALSE; + } + + g_free (dir); + } + + return TRUE; +} + /** * init_local_folders: * @@ -314,30 +341,22 @@ init_header_columns (ModestConf *conf, gboolean overwrite) */ static gboolean init_local_folders (void) -{ - int i; - gchar *maildir_path; - static const gchar* maildirs[] = { - "cur", "new", "tmp" - }; - - maildir_path = modest_local_folder_info_get_maildir_path (); +{ + gchar *maildir_path = modest_local_folder_info_get_maildir_path (); + /* Create each of the standard on-disk folders. + * Per-account outbox folders will be created when first needed. */ + int i; for (i = 0; i != G_N_ELEMENTS(LOCAL_FOLDERS); ++i) { - int j; - for (j = 0; j != G_N_ELEMENTS(maildirs); ++j) { - gchar *dir; - dir = g_build_filename (maildir_path, + gchar *dir = g_build_filename (maildir_path, modest_local_folder_info_get_type_name(LOCAL_FOLDERS[i]), - maildirs[j], - NULL); - if (g_mkdir_with_parents (dir, 0755) < 0) { - g_printerr ("modest: failed to create %s\n", dir); - g_free (dir); - g_free (maildir_path); - return FALSE; - } - g_free(dir); + NULL); + const gboolean created = modest_init_one_local_folder (dir); + g_free(dir); + + if (!created) { + g_free (maildir_path); + return FALSE; } } @@ -559,6 +578,27 @@ init_default_settings (ModestConf *conf) 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); + + if (!modest_conf_key_exists (conf, MODEST_CONF_UPDATE_WHEN_CONNECTED_BY, NULL)) + modest_conf_set_int (conf, MODEST_CONF_UPDATE_WHEN_CONNECTED_BY, MODEST_CONNECTED_VIA_WLAN, NULL); + + if (!modest_conf_key_exists (conf, MODEST_CONF_UPDATE_INTERVAL, NULL)) + modest_conf_set_int (conf, MODEST_CONF_UPDATE_INTERVAL, MODEST_UPDATE_INTERVAL_15_MIN, NULL); + + if (!modest_conf_key_exists (conf, MODEST_CONF_MSG_SIZE_LIMIT, NULL)) + modest_conf_set_int (conf, MODEST_CONF_MSG_SIZE_LIMIT, 1000, NULL); + + if (!modest_conf_key_exists (conf, MODEST_CONF_PLAY_SOUND_MSG_ARRIVE, NULL)) + modest_conf_set_bool (conf, MODEST_CONF_PLAY_SOUND_MSG_ARRIVE, FALSE, NULL); + + if (!modest_conf_key_exists (conf, MODEST_CONF_PREFER_FORMATTED_TEXT, NULL)) + modest_conf_set_bool (conf, MODEST_CONF_PREFER_FORMATTED_TEXT, TRUE, NULL); + + if (!modest_conf_key_exists (conf, MODEST_CONF_REPLY_TYPE, NULL)) + modest_conf_set_int (conf, MODEST_CONF_REPLY_TYPE, MODEST_TNY_MSG_REPLY_TYPE_QUOTE, NULL); } @@ -584,8 +624,13 @@ init_device_name (ModestConf *conf) else devname[len] = '\0'; - modest_conf_set_string (conf, MODEST_CONF_DEVICE_NAME,devname, NULL); + GError *err = NULL; + if (!modest_conf_set_string (conf, MODEST_CONF_DEVICE_NAME,devname, &err)) { + g_printerr ("modest: error setting device name '%s': %s", + devname, err ? err->message: "?"); + g_error_free (err); + } } - + g_free (devname); }