X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-init.c;h=37016d40aab3258f8cc50c86969653d2635c78fe;hb=96d9a8c787c693406a0f26e3d3a00065c7236fe5;hp=e6d695c1cb29f22d847dacc0041a0efb221584fb;hpb=0789247d553240d477f7122a5d0e6a4d78c54ebb;p=modest diff --git a/src/modest-init.c b/src/modest-init.c index e6d695c..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); @@ -78,7 +80,7 @@ static const FolderCols INBOX_COLUMNS_DETAILS[] = { static const FolderCols INBOX_COLUMNS_TWOLINES[] = { {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} + {MODEST_HEADER_VIEW_COLUMN_COMPACT_RECEIVED_DATE, 240, -1} }; static const FolderCols OUTBOX_COLUMNS_DETAILS[] = { @@ -99,18 +101,18 @@ static const FolderCols OUTBOX_COLUMNS_TWOLINES[] = { static const FolderCols SENT_COLUMNS_TWOLINES[] = { {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} + {MODEST_HEADER_VIEW_COLUMN_COMPACT_SENT_DATE, 240, -1} }; #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()) { @@ -191,7 +195,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; @@ -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; } } @@ -354,7 +373,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: * @@ -372,7 +391,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); @@ -429,11 +448,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); } @@ -551,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); } @@ -576,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); }