#include <modest-account-mgr.h>
#include <modest-account-mgr-helpers.h>
#include <modest-icon-names.h>
+#include "widgets/modest-global-settings-dialog.h"
+#include "modest-tny-msg.h"
+#ifdef MODEST_PLATFORM_MAEMO
+#include <hildon/hildon-notification.h>
+#else
+#include <libnotify/notify.h>
+#endif
static gboolean init_header_columns (ModestConf *conf, gboolean overwrite);
-static gboolean init_local_folders (void);
static gboolean init_default_account_maybe (ModestAccountMgr *acc_mgr);
static void init_i18n (void);
static void init_stock_icons (void);
gint sort;
} FolderCols;
+
+static const guint MODEST_MAIN_PANED_POS = 280;
+
static const FolderCols INBOX_COLUMNS_DETAILS[] = {
{MODEST_HEADER_VIEW_COLUMN_MSGTYPE, 40, 0},
{MODEST_HEADER_VIEW_COLUMN_ATTACH, 40, 0},
};
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}
};
static const FolderCols OUTBOX_COLUMNS_DETAILS[] = {
};
static const FolderCols OUTBOX_COLUMNS_TWOLINES[] = {
- {MODEST_HEADER_VIEW_COLUMN_COMPACT_FLAG, 40, 0},
- {MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_OUT,180, 0},
- {MODEST_HEADER_VIEW_COLUMN_STATUS, 240, 0}
+ {MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER_OUT,180, 0}
+// {MODEST_HEADER_VIEW_COLUMN_STATUS, 240, 0}
};
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}
};
#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,
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()) {
init_default_settings (modest_runtime_get_conf ());
- if (!init_local_folders()) {
+ if (!modest_init_local_folders(NULL)) {
modest_init_uninit ();
g_printerr ("modest: failed to init local folders\n");
return FALSE;
}
- if (!init_default_account_maybe(modest_runtime_get_account_mgr ())) {
+ if (!init_default_account_maybe (modest_runtime_get_account_mgr ())) {
modest_init_uninit ();
g_printerr ("modest: failed to init default account\n");
return FALSE;
/* Set application name */
g_set_application_name (modest_platform_get_app_name());
- g_message (modest_platform_get_app_name());
+ /* g_message (modest_platform_get_app_name()); */
+ /* Init stock icons */
init_stock_icons ();
+
+ /* Init notification system */
+ notify_init ("Basics");
+
return TRUE;
}
init_header_columns (ModestConf *conf, gboolean overwrite)
{
int folder_type;
+ gchar *key;
for (folder_type = TNY_FOLDER_TYPE_UNKNOWN;
folder_type <= TNY_FOLDER_TYPE_CALENDAR; ++folder_type) {
overwrite);
};
}
+
+ 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);
+
+ g_free (key);
+ 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: %s: failed to create %s\n", __FUNCTION__, dir);
+ g_free (dir);
+ return FALSE;
+ }
+
+ g_free (dir);
+ }
+
return TRUE;
}
/**
- * init_local_folders:
+ * modest_init_local_folders:
*
* create the Local Folders folder under cache, if they
* do not exist yet.
* Returns: TRUE if the folder were already there, or
* they were created, FALSE otherwise
*/
-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 ();
-
- 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);
+gboolean
+modest_init_local_folders (const gchar* location_filepath)
+{
+ gchar *maildir_path = modest_local_folder_info_get_maildir_path (location_filepath);
+
+ if (location_filepath) {
+ /* For instance, for memory card, just create the top-level .modest folder: */
+ if (g_mkdir_with_parents (maildir_path, 0755) < 0) {
+ g_printerr ("modest: %s: failed to create %s\n", __FUNCTION__, location_filepath);
+ g_free (maildir_path);
+ return FALSE;
+ }
+ }
+ else {
+ /* 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) {
+ gchar *dir = g_build_filename (maildir_path,
+ modest_local_folder_info_get_type_name(LOCAL_FOLDERS[i]),
+ NULL);
+ const gboolean created = modest_init_one_local_folder (dir);
+ g_free(dir);
+
+ if (!created) {
g_free (maildir_path);
return FALSE;
}
- g_free(dir);
}
}
return TRUE;
}
-
-
-static void
-free_element (gpointer data, gpointer user_data)
-{
- g_free (data);
-}
-
-
-/* TODO: This is a duplicate of modest_account_mgr_set_first_account_as_default(). */
/**
* init_default_account_maybe:
*
static gboolean
init_default_account_maybe (ModestAccountMgr *acc_mgr)
{
- GSList *all_accounts = NULL;
gchar *default_account;
gboolean retval = TRUE;
-
- 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);
- 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);
- }
+
+ default_account = modest_account_mgr_get_default_account (acc_mgr);
+ if (!default_account)
+ retval = modest_account_mgr_set_first_account_as_default (acc_mgr);
+ g_free (default_account);
+
return retval;
}
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);
}
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);
}