X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-init.c;h=a9568d5b04708289d3ada2e2943fe150637164dd;hp=de67233dc7a4416be24588138c9e74398d3a4e64;hb=d57f2c3462ad26c4758c033f91b2289ff8455137;hpb=cff6e187da1ccf008a4672b0892c06be55f4f3a2 diff --git a/src/modest-init.c b/src/modest-init.c index de67233..a9568d5 100644 --- a/src/modest-init.c +++ b/src/modest-init.c @@ -28,50 +28,57 @@ */ #include +#include #include #include #include #include #include +#include #include +#include +#include +#include typedef struct { ModestHeaderViewColumn col; guint width; } FolderCols; - -#if MODEST_PLATFORM_ID==1 /*gtk*/ -static const FolderCols INBOX_COLUMNS[] = { - {MODEST_HEADER_VIEW_COLUMN_MSGTYPE, 20}, - {MODEST_HEADER_VIEW_COLUMN_ATTACH, 20}, - {MODEST_HEADER_VIEW_COLUMN_FROM, 50}, - {MODEST_HEADER_VIEW_COLUMN_SUBJECT, 50}, - {MODEST_HEADER_VIEW_COLUMN_RECEIVED_DATE, 50}, - {MODEST_HEADER_VIEW_COLUMN_SIZE, 30}, +static const FolderCols INBOX_COLUMNS_DETAILS[] = { + {MODEST_HEADER_VIEW_COLUMN_MSGTYPE, 40}, + {MODEST_HEADER_VIEW_COLUMN_ATTACH, 40}, + {MODEST_HEADER_VIEW_COLUMN_FROM, 80}, + {MODEST_HEADER_VIEW_COLUMN_SUBJECT, 80}, + {MODEST_HEADER_VIEW_COLUMN_RECEIVED_DATE, 60}, + {MODEST_HEADER_VIEW_COLUMN_SIZE, 50} +}; +static const FolderCols INBOX_COLUMNS_TWOLINES[] = { + {MODEST_HEADER_VIEW_COLUMN_MSGTYPE, 40}, + {MODEST_HEADER_VIEW_COLUMN_ATTACH, 40}, + {MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_IN, 200} }; -static const FolderCols OUTBOX_COLUMNS[] = { - {MODEST_HEADER_VIEW_COLUMN_MSGTYPE, 20}, - {MODEST_HEADER_VIEW_COLUMN_ATTACH, 20}, - {MODEST_HEADER_VIEW_COLUMN_TO, 50}, - {MODEST_HEADER_VIEW_COLUMN_SUBJECT, 50}, - {MODEST_HEADER_VIEW_COLUMN_SENT_DATE, 50}, - {MODEST_HEADER_VIEW_COLUMN_SIZE, 30}, +static const FolderCols OUTBOX_COLUMNS_DETAILS[] = { + {MODEST_HEADER_VIEW_COLUMN_MSGTYPE, 40}, + {MODEST_HEADER_VIEW_COLUMN_ATTACH, 40}, + {MODEST_HEADER_VIEW_COLUMN_TO, 80}, + {MODEST_HEADER_VIEW_COLUMN_SUBJECT, 80}, + {MODEST_HEADER_VIEW_COLUMN_SENT_DATE, 80}, + {MODEST_HEADER_VIEW_COLUMN_SIZE, 50} }; -#elif MODEST_PLATFORM==2 /*maemo*/ -static const FolderCols INBOX_COLUMNS = { - {MODEST_HEADER_VIEW_COLUMN_MSGTYPE, 20}, - {MODEST_HEADER_VIEW_COLUMN_ATTACH, 20}, - {MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_IN,150}, +static const FolderCols OUTBOX_COLUMNS_TWOLINES[] = { + {MODEST_HEADER_VIEW_COLUMN_MSGTYPE, 40}, + {MODEST_HEADER_VIEW_COLUMN_ATTACH, 40}, + {MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_OUT,200}, }; -static const FolderCols OUTBOX_COLUMNS = { - {MODEST_HEADER_VIEW_COLUMN_MSGTYPE, 20}, - {MODEST_HEADER_VIEW_COLUMN_ATTACH, 20}, - {MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_OUT,150}, + +static const TnyFolderType LOCAL_FOLDERS[] = { + TNY_FOLDER_TYPE_OUTBOX, + TNY_FOLDER_TYPE_DRAFTS, + TNY_FOLDER_TYPE_SENT, + TNY_FOLDER_TYPE_ARCHIVE }; -#endif /*MODEST_PLATFORM*/ - static ModestTnyPlatformFactory* get_platform_factory (void) @@ -103,13 +110,29 @@ get_modest_conf (void) } +static ModestAccountMgr* +get_account_mgr (void) +{ + ModestTnyPlatformFactory *fact = + get_platform_factory (); + ModestAccountMgr *acc_mgr = + modest_tny_platform_factory_get_account_mgr_instance (fact); + if (!acc_mgr) { + g_printerr ("modest: cannot get modest account mgr instance\n"); + return NULL; + } + return acc_mgr; +} + + /* NOTE: the exact details of this format are important, as they * are also used in modest-widget-memory. FIXME: make a shared function * for this with widget-memory */ static gboolean -save_header_settings (ModestConf *conf, TnyFolderType type, const FolderCols* cols, - guint col_num, gboolean overwrite) +save_header_settings (ModestConf *conf, TnyFolderType type, + ModestHeaderViewStyle style, const FolderCols* cols, + guint col_num, gboolean overwrite) { int i; gchar *key; @@ -117,9 +140,9 @@ save_header_settings (ModestConf *conf, TnyFolderType type, const FolderCols* co g_return_val_if_fail (cols, FALSE); - key = _modest_widget_memory_get_keyname_with_type ("header-view", - type, - MODEST_WIDGET_MEMORY_PARAM_COLUMN_WIDTH); + key = _modest_widget_memory_get_keyname_with_double_type ("header-view", + type, style, + MODEST_WIDGET_MEMORY_PARAM_COLUMN_WIDTH); /* if we're not in overwrite mode, only write stuff it * there was nothing before */ if (!overwrite && modest_conf_key_exists(conf, key, NULL)) { @@ -160,14 +183,29 @@ modest_init_header_columns (gboolean overwrite) case TNY_FOLDER_TYPE_OUTBOX: case TNY_FOLDER_TYPE_SENT: case TNY_FOLDER_TYPE_DRAFTS: - save_header_settings (conf, folder_type, OUTBOX_COLUMNS, - G_N_ELEMENTS(OUTBOX_COLUMNS), - overwrite); - break; + save_header_settings (conf, folder_type, + MODEST_HEADER_VIEW_STYLE_DETAILS, + OUTBOX_COLUMNS_DETAILS, + G_N_ELEMENTS(OUTBOX_COLUMNS_DETAILS), + overwrite); + save_header_settings (conf, folder_type, + MODEST_HEADER_VIEW_STYLE_TWOLINES, + OUTBOX_COLUMNS_TWOLINES, + G_N_ELEMENTS(OUTBOX_COLUMNS_TWOLINES), + overwrite); + break; + default: - save_header_settings (conf, folder_type, INBOX_COLUMNS, - G_N_ELEMENTS(INBOX_COLUMNS), - overwrite); + save_header_settings (conf, folder_type, + MODEST_HEADER_VIEW_STYLE_DETAILS, + INBOX_COLUMNS_DETAILS, + G_N_ELEMENTS(INBOX_COLUMNS_DETAILS), + overwrite); + save_header_settings (conf, folder_type, + MODEST_HEADER_VIEW_STYLE_TWOLINES, + INBOX_COLUMNS_TWOLINES, + G_N_ELEMENTS(INBOX_COLUMNS_TWOLINES), + overwrite); }; } return TRUE; @@ -176,5 +214,78 @@ modest_init_header_columns (gboolean overwrite) gboolean modest_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 (); + + 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, + 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); + } + } + + g_free (maildir_path); return TRUE; } + + + +static void +free_element (gpointer data, gpointer user_data) +{ + g_free (data); +} + + +gboolean +modest_init_default_account_maybe (void) +{ + ModestAccountMgr *acc_mgr; + + GSList *all_accounts = NULL; + gchar *default_account; + gboolean retval = TRUE; + + acc_mgr = get_account_mgr (); + if (!acc_mgr) { + g_printerr ("modest: cannot get modest account mgr\n"); + return FALSE; + } + + all_accounts = modest_account_mgr_account_names (acc_mgr, NULL); + if (all_accounts) { /* if there are any accounts, there should be a default one */ + default_account = + modest_account_mgr_get_default_account (acc_mgr); + if (!default_account) { + gchar *first_account; + g_printerr ("modest: no default account defined\n"); + first_account = (gchar*)all_accounts->data; + if ((retval = modest_account_mgr_set_default_account (acc_mgr, first_account))) + g_printerr ("modest: set '%s' as the default account\n", + first_account); + else + g_printerr ("modest: failed to set '%s' as the default account\n", + first_account); + g_free (default_account); + } + g_slist_foreach (all_accounts, free_element, NULL); + g_slist_free (all_accounts); + } + return retval; +}