From cea054cd54d84479352a43bbabc19c9ce9af5efb Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 8 Aug 2008 04:26:12 +0000 Subject: Merge revisions 35747:35930 from trunk. svn path=/branches/kill-bonobo/; revision=35931 --- mail/message-list.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 8fd0ea8092..9149fd673b 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -2589,7 +2589,7 @@ find_next_selectable (MessageList *ml) return NULL; info = get_message_info (ml, node); - if (is_node_selectable (ml, info)) + if (info && is_node_selectable (ml, info)) return NULL; last = e_tree_row_count (ml->tree); @@ -2603,7 +2603,7 @@ find_next_selectable (MessageList *ml) while (vrow < last) { node = e_tree_node_at_row (et, vrow); info = get_message_info (ml, node); - if (is_node_selectable (ml, info)) + if (info && is_node_selectable (ml, info)) return g_strdup (camel_message_info_uid (info)); vrow ++; } @@ -2615,7 +2615,7 @@ find_next_selectable (MessageList *ml) while (vrow >= 0) { node = e_tree_node_at_row (et, vrow); info = get_message_info (ml, node); - if (is_node_selectable (ml, info)) + if (info && is_node_selectable (ml, info)) return g_strdup (camel_message_info_uid (info)); vrow --; } @@ -3644,6 +3644,9 @@ glib_crapback(void *key, void *data, void *x) struct _glibsuxcrap *y = x; CamelMessageInfo *mi; + if(y->count) + return; + mi = camel_folder_get_message_info(y->folder, key); if (mi) { y->count++; @@ -3651,7 +3654,7 @@ glib_crapback(void *key, void *data, void *x) } } -/* returns number of hidden messages */ +/* returns 0 or 1 depending if there are hidden messages */ unsigned int message_list_hidden(MessageList *ml) { @@ -4310,6 +4313,15 @@ mail_regen_list (MessageList *ml, const char *search, const char *hideexpr, Came camel_folder_thread_messages_ref(m->tree); } + if (message_list_length (ml) <= 0) { + /* there is some info why the message list is empty, let it be something useful */ + char *txt = g_strconcat (_("Generating message list"), "..." , NULL); + + e_tree_set_info_message (m->ml->tree, txt); + + g_free (txt); + } + /* if we're busy already kick off timeout processing, so normal updates are immediate */ if (ml->regen == NULL) ml_regen_timeout(m); -- cgit v1.2.3 From 7ade227e6409c98a4010992450e111cf7bb10520 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 14 Aug 2008 20:19:12 +0000 Subject: Merge revisions 35951:35992 from trunk. svn path=/branches/kill-bonobo/; revision=35994 --- mail/message-list.c | 106 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 78 insertions(+), 28 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 9149fd673b..19e017e211 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -110,6 +110,7 @@ struct _MessageListPrivate { gboolean destroyed; gboolean thread_latest; + gboolean any_row_changed; /* save state before regen list when this is set to true */ }; static struct { @@ -1797,32 +1798,29 @@ save_tree_state(MessageList *ml) filename = mail_config_folder_to_cachename(ml->folder, "et-expanded-"); e_tree_save_expanded_state(ml->tree, filename); g_free(filename); + + ml->priv->any_row_changed = FALSE; } static void -load_tree_expand_all (MessageList *ml, gboolean state) +load_tree_state (MessageList *ml, xmlDoc *expand_state) { - if (ml->folder == NULL || ml->tree == NULL) return; - e_tree_load_all_expanded_state (ml->tree, state); - save_tree_state (ml); -} -static void -load_tree_state (MessageList *ml) -{ - char *filename; + if (expand_state) { + e_tree_load_expanded_state_xml (ml->tree, expand_state); + } else { + char *filename; - if (ml->folder == NULL || ml->tree == NULL) - return; + filename = mail_config_folder_to_cachename (ml->folder, "et-expanded-"); + e_tree_load_expanded_state (ml->tree, filename); + g_free (filename); + } - filename = mail_config_folder_to_cachename (ml->folder, "et-expanded-"); - e_tree_load_expanded_state (ml->tree, filename); - g_free (filename); + ml->priv->any_row_changed = FALSE; } - void message_list_save_state (MessageList *ml) { @@ -2172,6 +2170,12 @@ ml_scrolled (GtkAdjustment *adj, MessageList *ml) g_signal_emit (ml, message_list_signals[MESSAGE_LIST_SCROLLED], 0); } +static void +on_model_row_changed (ETableModel *model, int row, MessageList *ml) +{ + ml->priv->any_row_changed = TRUE; +} + /* * GObject::init */ @@ -2212,6 +2216,7 @@ message_list_init (MessageList *message_list) p->invisible = gtk_invisible_new(); p->destroyed = FALSE; g_object_ref_sink(p->invisible); + p->any_row_changed = FALSE; matom = gdk_atom_intern ("x-uid-list", FALSE); gtk_selection_add_target(p->invisible, GDK_SELECTION_CLIPBOARD, matom, 0); @@ -2367,6 +2372,25 @@ message_list_class_init (MessageListClass *message_list_class) message_list_init_images (); } +static gboolean +read_boolean_with_default (GConfClient *gconf, const char *key, gboolean def_value) +{ + GConfValue *value; + gboolean res; + + g_return_val_if_fail (gconf != NULL, def_value); + g_return_val_if_fail (key != NULL, def_value); + + value = gconf_client_get (gconf, key, NULL); + if (!value) + return def_value; + + res = gconf_value_get_bool (value); + gconf_value_free (value); + + return res; +} + static void message_list_construct (MessageList *message_list) { @@ -2400,11 +2424,11 @@ message_list_construct (MessageList *message_list) message_list); e_tree_memory_set_expanded_default(E_TREE_MEMORY(message_list->model), - gconf_client_get_bool (gconf, - "/apps/evolution/mail/display/thread_expand", - NULL)); + read_boolean_with_default (gconf, + "/apps/evolution/mail/display/thread_expand", + TRUE)); - message_list->priv->thread_latest = gconf_client_get_bool (gconf, "/apps/evolution/mail/display/thread_latest", NULL); + message_list->priv->thread_latest = read_boolean_with_default (gconf, "/apps/evolution/mail/display/thread_latest", TRUE); /* * The etree @@ -2429,6 +2453,8 @@ message_list_construct (MessageList *message_list) atk_object_set_name(a11y, _("Messages")); } + g_signal_connect (e_tree_get_table_adapter (message_list->tree), "model_row_changed", G_CALLBACK (on_model_row_changed), message_list); + g_signal_connect((message_list->tree), "cursor_activated", G_CALLBACK (on_cursor_activated_cmd), message_list); @@ -3869,6 +3895,8 @@ struct _regen_list_msg { GPtrArray *summary; int last_row; /* last selected (cursor) row */ + + xmlDoc *expand_state; /* stored expanded state of the previous view */ }; /* @@ -4116,10 +4144,19 @@ regen_list_done (struct _regen_list_msg *m) e_profile_event_emit("list.buildtree", m->folder->full_name, 0); if (m->dotree) { - if (m->ml->just_set_folder) + gboolean forcing_expand_state = m->ml->expand_all || m->ml->collapse_all; + + if (m->ml->just_set_folder) { m->ml->just_set_folder = FALSE; - else /* Saving the tree state causes bug 352695 but fixes bug 387312 */ - save_tree_state (m->ml); + if (m->expand_state) { + /* rather load state from disk than use the memory data when changing folders */ + xmlFreeDoc (m->expand_state); + m->expand_state = NULL; + } + } + + if (forcing_expand_state) + e_tree_force_expanded_state (m->ml->tree, m->ml->expand_all ? 1 : -1); build_tree (m->ml, m->tree, m->changes); if (m->ml->thread_tree) @@ -4127,12 +4164,13 @@ regen_list_done (struct _regen_list_msg *m) m->ml->thread_tree = m->tree; m->tree = NULL; - if (m->ml->expand_all) - load_tree_expand_all (m->ml, TRUE); - else if (m->ml->collapse_all) - load_tree_expand_all (m->ml, FALSE); - else - load_tree_state (m->ml); + if (forcing_expand_state) { + if (m->ml->folder != NULL && m->ml->tree != NULL) + save_tree_state (m->ml); + /* do not forget to set this back to use the default value... */ + e_tree_force_expanded_state (m->ml->tree, 0); + } else + load_tree_state (m->ml, m->expand_state); m->ml->expand_all = 0; m->ml->collapse_all = 0; @@ -4177,6 +4215,7 @@ regen_list_done (struct _regen_list_msg *m) e_tree_set_info_message (m->ml->tree, NULL); g_signal_emit (m->ml, message_list_signals[MESSAGE_LIST_BUILT], 0); + m->ml->priv->any_row_changed = FALSE; } static void @@ -4206,6 +4245,9 @@ regen_list_free (struct _regen_list_msg *m) /* we have to poke this here as well since we might've been cancelled and regened wont get called */ m->ml->regen = g_list_remove(m->ml->regen, m); + if (m->expand_state) + xmlFreeDoc (m->expand_state); + g_object_unref(m->ml); } @@ -4304,6 +4346,7 @@ mail_regen_list (MessageList *ml, const char *search, const char *hideexpr, Came m->folder = ml->folder; camel_object_ref(m->folder); m->last_row = -1; + m->expand_state = NULL; if ((!m->hidedel || !m->dotree) && ml->thread_tree) { camel_folder_thread_messages_unref(ml->thread_tree); @@ -4320,6 +4363,13 @@ mail_regen_list (MessageList *ml, const char *search, const char *hideexpr, Came e_tree_set_info_message (m->ml->tree, txt); g_free (txt); + } else if (ml->priv->any_row_changed && m->dotree && !ml->just_set_folder && (!ml->search || g_str_equal (ml->search, " "))) { + /* there has been some change on any row, if it was an expand state change, + then let it save; if not, then nothing happen. */ + message_list_save_state (ml); + } else if (m->dotree && !ml->just_set_folder) { + /* remember actual expand state and restore it after regen */ + m->expand_state = e_tree_save_expanded_state_xml (ml->tree); } /* if we're busy already kick off timeout processing, so normal updates are immediate */ -- cgit v1.2.3 From c0a255eb90769638d57ae4122932f75c46e4e531 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 11 Sep 2008 15:34:29 +0000 Subject: Merge revisions 36016:36303 from trunk. svn path=/branches/kill-bonobo/; revision=36307 --- mail/message-list.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 19e017e211..306133610a 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -4205,14 +4205,16 @@ regen_list_done (struct _regen_list_msg *m) } } - if (message_list_length (m->ml) <= 0) { - /* space is used to indicate no search too */ - if (m->ml->search && strcmp (m->ml->search, " ") != 0) - e_tree_set_info_message (m->ml->tree, _("No message satisfies your search criteria. Either clear search with Search->Clear menu item or change it.")); - else - e_tree_set_info_message (m->ml->tree, _("There are no messages in this folder.")); - } else - e_tree_set_info_message (m->ml->tree, NULL); + if (GTK_WIDGET_VISIBLE (GTK_WIDGET (m->ml))) { + if (message_list_length (m->ml) <= 0) { + /* space is used to indicate no search too */ + if (m->ml->search && strcmp (m->ml->search, " ") != 0) + e_tree_set_info_message (m->ml->tree, _("No message satisfies your search criteria. Either clear search with Search->Clear menu item or change it.")); + else + e_tree_set_info_message (m->ml->tree, _("There are no messages in this folder.")); + } else + e_tree_set_info_message (m->ml->tree, NULL); + } g_signal_emit (m->ml, message_list_signals[MESSAGE_LIST_BUILT], 0); m->ml->priv->any_row_changed = FALSE; @@ -4357,12 +4359,14 @@ mail_regen_list (MessageList *ml, const char *search, const char *hideexpr, Came } if (message_list_length (ml) <= 0) { - /* there is some info why the message list is empty, let it be something useful */ - char *txt = g_strconcat (_("Generating message list"), "..." , NULL); + if (GTK_WIDGET_VISIBLE (GTK_WIDGET (ml))) { + /* there is some info why the message list is empty, let it be something useful */ + char *txt = g_strconcat (_("Generating message list"), "..." , NULL); - e_tree_set_info_message (m->ml->tree, txt); + e_tree_set_info_message (m->ml->tree, txt); - g_free (txt); + g_free (txt); + } } else if (ml->priv->any_row_changed && m->dotree && !ml->just_set_folder && (!ml->search || g_str_equal (ml->search, " "))) { /* there has been some change on any row, if it was an expand state change, then let it save; if not, then nothing happen. */ -- cgit v1.2.3 From b2cda1d0c6d44f53f71bad9e256f41188677dfba Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Wed, 1 Oct 2008 20:56:04 +0000 Subject: Merge revisions 36016:36533 from trunk. svn path=/branches/kill-bonobo/; revision=36534 --- mail/message-list.c | 96 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 79 insertions(+), 17 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 306133610a..576bc1505d 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -1,24 +1,24 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* - * Authors: Miguel de Icaza (miguel@ximian.com) - * Bertrand Guiheneuf (bg@aful.org) - * And just about everyone else in evolution ... + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) version 3. * - * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. + * You should have received a copy of the GNU Lesser General Public + * License along with the program; if not, see * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * Authors: + * Miguel de Icaza (miguel@ximian.com) + * Bertrand Guiheneuf (bg@aful.org) + * And just about everyone else in evolution ... + * + * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) * */ @@ -235,6 +235,7 @@ static struct { { "stock_score-highest", NULL }, { "stock_mail-flag-for-followup", NULL }, { "stock_mail-flag-for-followup-done", NULL }, + { "stock_new-meeting", NULL } }; /* FIXME: junk prefs */ @@ -1267,6 +1268,61 @@ get_all_labels (CamelMessageInfo *msg_info, char **label_str, gboolean get_tags) return count; } +static const char * +get_trimmed_subject (CamelMessageInfo *info) +{ + const char *subject; + const char *mlist; + int mlist_len = 0; + gboolean found_mlist; + + subject = camel_message_info_subject (info); + if (!subject || !*subject) + return subject; + + mlist = camel_message_info_mlist (info); + + if (mlist && *mlist) { + const char *mlist_end; + + mlist_end = strchr (mlist, '@'); + if (mlist_end) + mlist_len = mlist_end - mlist; + else + mlist_len = strlen (mlist); + } + + do { + found_mlist = FALSE; + + while (!g_ascii_strncasecmp ((char *) subject, "Re:", 3)) { + subject += 3; + + /* jump over any spaces */ + while (*subject && isspace ((int) *subject)) + subject++; + } + + if (mlist_len && + *subject == '[' && + !g_ascii_strncasecmp ((char *) subject + 1, mlist, mlist_len) && + subject [1 + mlist_len] == ']') { + subject += 1 + mlist_len + 1; /* jump over "[mailing-list]" */ + found_mlist = TRUE; + + /* jump over any spaces */ + while (*subject && isspace ((int) *subject)) + subject++; + } + } while (found_mlist); + + /* jump over any spaces */ + while (*subject && isspace ((int) *subject)) + subject++; + + return subject; +} + static void * ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) { @@ -1340,6 +1396,8 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) str = camel_message_info_user_tag(msg_info, "follow-up"); return (void *)(str ? str : ""); case COL_ATTACHMENT: + if (camel_message_info_user_flag (msg_info, "$has_cal")) + return GINT_TO_POINTER (2); return GINT_TO_POINTER ((camel_message_info_flags(msg_info) & CAMEL_MESSAGE_ATTACHMENTS) != 0); case COL_FROM: str = camel_message_info_from (msg_info); @@ -1349,6 +1407,9 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) case COL_SUBJECT: str = camel_message_info_subject (msg_info); return (void *)(str ? str : ""); + case COL_SUBJECT_TRIMMED: + str = get_trimmed_subject (msg_info); + return (void *)(str ? str : ""); case COL_SUBJECT_NORM: return (void *) get_normalised_string (message_list, msg_info, col); case COL_SENT: { @@ -1734,8 +1795,9 @@ message_list_create_extras (void) for (i = 0; i < 2; i++) images [i] = states_pixmaps [i + 6].pixbuf; + images [2] = states_pixmaps [18].pixbuf; - e_table_extras_add_cell (extras, "render_attachment", e_cell_toggle_new (0, 2, images)); + e_table_extras_add_cell (extras, "render_attachment", e_cell_toggle_new (0, 3, images)); images [1] = states_pixmaps [8].pixbuf; e_table_extras_add_cell (extras, "render_flagged", e_cell_toggle_new (0, 2, images)); -- cgit v1.2.3 From 85b2913a380c69f14ae0254ad23b10fabfb33667 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 24 Oct 2008 23:52:05 +0000 Subject: Merge revisions 36534:36684 from trunk. svn path=/branches/kill-bonobo/; revision=36685 --- mail/message-list.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 576bc1505d..5b3a1b646b 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -2273,6 +2273,8 @@ message_list_init (MessageList *message_list) message_list->cursor_uid = NULL; message_list->last_sel_single = FALSE; + message_list->regen_lock = g_mutex_new (); + /* TODO: Should this only get the selection if we're realised? */ p = message_list->priv = g_malloc0(sizeof(*message_list->priv)); p->invisible = gtk_invisible_new(); @@ -2374,6 +2376,7 @@ message_list_finalise (GObject *object) g_free(message_list->cursor_uid); g_mutex_free(message_list->hide_lock); + g_mutex_free (message_list->regen_lock); g_free(message_list->folder_uri); message_list->folder_uri = NULL; @@ -4244,7 +4247,9 @@ regen_list_done (struct _regen_list_msg *m) m->ml->search = m->search; m->search = NULL; + g_mutex_lock (m->ml->regen_lock); m->ml->regen = g_list_remove(m->ml->regen, m); + g_mutex_unlock (m->ml->regen_lock); if (m->ml->regen == NULL && m->ml->pending_select_uid) { char *uid = m->ml->pending_select_uid; @@ -4307,7 +4312,9 @@ regen_list_free (struct _regen_list_msg *m) camel_folder_change_info_free (m->changes); /* we have to poke this here as well since we might've been cancelled and regened wont get called */ + g_mutex_lock (m->ml->regen_lock); m->ml->regen = g_list_remove(m->ml->regen, m); + g_mutex_unlock (m->ml->regen_lock); if (m->expand_state) xmlFreeDoc (m->expand_state); @@ -4328,7 +4335,9 @@ ml_regen_timeout(struct _regen_list_msg *m) { e_profile_event_emit("list.regenerate", m->folder->full_name, 0); + g_mutex_lock (m->ml->regen_lock); m->ml->regen = g_list_prepend(m->ml->regen, m); + g_mutex_unlock (m->ml->regen_lock); /* TODO: we should manage our own thread stuff, would make cancelling outstanding stuff easier */ mail_msg_fast_ordered_push (m); @@ -4343,8 +4352,11 @@ mail_regen_cancel(MessageList *ml) { /* cancel any outstanding regeneration requests, not we don't clear, they clear themselves */ if (ml->regen) { - GList *l = ml->regen; + GList *l; + + g_mutex_lock (ml->regen_lock); + l = ml->regen; while (l) { MailMsg *mm = l->data; @@ -4352,6 +4364,8 @@ mail_regen_cancel(MessageList *ml) camel_operation_cancel(mm->cancel); l = l->next; } + + g_mutex_unlock (ml->regen_lock); } /* including unqueued ones */ -- cgit v1.2.3 From d158af8cdfa6e4bf85c1e74769e8d61bc469494c Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Wed, 10 Dec 2008 18:30:29 +0000 Subject: Merge revisions 36811:36865 from trunk. svn path=/branches/kill-bonobo/; revision=36867 --- mail/message-list.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 5b3a1b646b..993c387cd7 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -65,8 +65,6 @@ #include "table/e-cell-vbox.h" #include "table/e-cell-hbox.h" -#include "filter/filter-label.h" - #include "em-popup.h" #include "em-utils.h" #include "mail-config.h" -- cgit v1.2.3 From c7d3c9f95609123035ebaa267f9d2e6ecfa8c2e8 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Mon, 12 Jan 2009 04:12:01 +0000 Subject: Merge revisions 36866:37046 from trunk. svn path=/branches/kill-bonobo/; revision=37050 --- mail/message-list.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 993c387cd7..b52ec71b82 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -2358,6 +2358,11 @@ message_list_finalise (GObject *object) g_hash_table_destroy (message_list->normalised_hash); + if (message_list->ensure_uid) { + g_free (message_list->ensure_uid); + message_list->ensure_uid = NULL; + } + if (message_list->thread_tree) camel_folder_thread_messages_unref(message_list->thread_tree); @@ -4030,13 +4035,11 @@ regen_list_exec (struct _regen_list_msg *m) uids = camel_folder_get_uids (m->folder); } else { searchuids = uids = camel_folder_search_by_expression (m->folder, expr, &m->base.ex); - /* If m->changes is not NULL, then it means we are called from folder_changed event, thus we will keep the selected message to be sure it doesn't disappear because it no longer belong to our search filter. */ - if (uids && m->ml->search && ((m->changes && m->ml->cursor_uid) || m->ml->ensure_uid)) { + if (uids && ((m->changes && m->ml->cursor_uid) || m->ml->ensure_uid)) { const char *looking_for = m->ml->cursor_uid; - /* ensure_uid has precedence of cursor_uid */ if (m->ml->ensure_uid) looking_for = m->ml->ensure_uid; @@ -4190,10 +4193,6 @@ regen_list_done (struct _regen_list_msg *m) if (m->ml->priv->destroyed) return; - if (m->ml->ensure_uid) { - g_free (m->ml->ensure_uid); - m->ml->ensure_uid = NULL; - } if (!m->complete) return; -- cgit v1.2.3 From fee5916b60c605ff5086d8fdc2a85c5ea21351f6 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 31 Jan 2009 19:03:12 +0000 Subject: Merge revisions 37108:37199 from trunk. svn path=/branches/kill-bonobo/; revision=37200 --- mail/message-list.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index b52ec71b82..921dc34c58 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -41,6 +41,7 @@ #include #include #include +#include #include @@ -4060,7 +4061,7 @@ regen_list_exec (struct _regen_list_msg *m) on the flag whether we can view deleted messages or not. */ if (!was_deleted || (was_deleted && !m->hidedel)) - g_ptr_array_add (uids, g_strdup (looking_for)); + g_ptr_array_add (uids, (gpointer) camel_pstring_strdup (looking_for)); } } } -- cgit v1.2.3 From 14e8637d6b1a98b4ed6bedc70d0fca744b7b3e0f Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 7 Feb 2009 20:04:52 +0000 Subject: Rewrite the mail label code from top to bottom. - Kill the e-util-labels API and read label information into a single-column GtkListStore. Use GConfBridge to automatically keep GConf synched with the list store. - The list store (a singleton instance) is stored in EShellSettings so it's available everywhere. - The list store serves as the model for EMailLabelTreeView, which itself is embedded in EMailLabelManager; a complete label management UI as seen in the preferences dialog. - EMailLabelDialog is used to add or edit a label. Avoid using a color button, instead embed a GtkColorSelection directly in the dialog so everything is in one window. Open issues: - The weird toggle/color/text menu items in the popup menu aren't there. For now they're just regular toggle items. I'll deal with it later. - Filter intergration is broken at the moment. svn path=/branches/kill-bonobo/; revision=37233 --- mail/message-list.c | 256 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 216 insertions(+), 40 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 921dc34c58..7a87d173f6 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -49,10 +49,12 @@ #include "e-util/e-profile-event.h" #include "e-util/e-util-private.h" #include "e-util/e-util.h" -#include "e-util/e-util-labels.h" #include "misc/e-gui-utils.h" +#include "shell/e-shell.h" +#include "shell/e-shell-settings.h" + #include "table/e-cell-checkbox.h" #include "table/e-cell-hbox.h" #include "table/e-cell-date.h" @@ -66,6 +68,7 @@ #include "table/e-cell-vbox.h" #include "table/e-cell-hbox.h" +#include "e-mail-label-list-store.h" #include "em-popup.h" #include "em-utils.h" #include "mail-config.h" @@ -96,6 +99,10 @@ #define d(x) #define t(x) +#define MESSAGE_LIST_GET_PRIVATE(obj) \ + (G_TYPE_INSTANCE_GET_PRIVATE \ + ((obj), MESSAGE_LIST_TYPE, MessageListPrivate)) + struct _MLSelection { GPtrArray *uids; CamelFolder *folder; @@ -105,6 +112,8 @@ struct _MLSelection { struct _MessageListPrivate { GtkWidget *invisible; /* 4 selection */ + EShellModule *shell_module; + struct _MLSelection clipboard; gboolean destroyed; @@ -112,6 +121,11 @@ struct _MessageListPrivate { gboolean any_row_changed; /* save state before regen list when this is set to true */ }; +enum { + PROP_0, + PROP_SHELL_MODULE +}; + static struct { char *target; GdkAtom atom; @@ -808,7 +822,7 @@ message_list_invert_selection (MessageList *message_list) void message_list_copy(MessageList *ml, gboolean cut) { - struct _MessageListPrivate *p = ml->priv; + MessageListPrivate *p = ml->priv; GPtrArray *uids; clear_selection(ml, &p->clipboard); @@ -1221,52 +1235,123 @@ sanitize_recipients (const gchar *string) } static int -get_all_labels (CamelMessageInfo *msg_info, char **label_str, gboolean get_tags) -{ +get_all_labels (MessageList *message_list, + CamelMessageInfo *msg_info, + gchar **label_str, + gboolean get_tags) +{ + EShell *shell; + EShellModule *shell_module; + EShellSettings *shell_settings; + EMailLabelListStore *store; + GtkTreeIter iter; GString *str; - const char *old_label; + const gchar *property_name; + const gchar *old_label; + gchar *new_label; int count = 0; const CamelFlag *flag; - GSList *labels; - labels = mail_config_get_labels (); + shell_module = message_list_get_shell_module (message_list); + shell = e_shell_module_get_shell (shell_module); + shell_settings = e_shell_get_shell_settings (shell); + + property_name = "mail-label-list-store"; + store = e_shell_settings_get_object (shell_settings, property_name); + str = g_string_new (""); for (flag = camel_message_info_user_flags (msg_info); flag; flag = flag->next) { - const char *name = e_util_labels_get_name (labels, flag->name); + gchar *item; - if (name) { - if (str->len) - g_string_append (str, ", "); + if (!e_mail_label_list_store_lookup (store, flag->name, &iter)) + continue; - if (get_tags) - name = flag->name; + if (get_tags) + item = e_mail_label_list_store_get_tag (store, &iter); + else + item = e_mail_label_list_store_get_name (store, &iter); - g_string_append (str, name); - count++; - } + if (str->len) + g_string_append (str, ", "); + + g_string_append (str, item); + count++; + + g_free (item); } - old_label = e_util_labels_get_new_tag (camel_message_info_user_tag (msg_info, "label")); + old_label = camel_message_info_user_tag (msg_info, "label"); + if (old_label == NULL) + goto exit; + + /* Convert old-style labels ("") to "$Label". */ + new_label = g_alloca (strlen (old_label) + 10); + g_stpcpy (g_stpcpy (new_label, "$Label"), old_label); - if (old_label != NULL) { - const char *name = NULL; + if (e_mail_label_list_store_lookup (store, new_label, &iter)) { + gchar *name = NULL; if (str->len) g_string_append (str, ", "); if (!get_tags) - name = e_util_labels_get_name (labels, old_label); + name = e_mail_label_list_store_get_name (store, &iter); g_string_append (str, (get_tags || !name) ? old_label : name); - ++count; + count++; + + g_free (name); } +exit: *label_str = g_string_free (str, FALSE); + g_object_unref (store); + return count; } +static const gchar * +get_label_color (MessageList *message_list, + const gchar *tag) +{ + EShell *shell; + EShellModule *shell_module; + EShellSettings *shell_settings; + EMailLabelListStore *store; + GtkTreeIter iter; + GdkColor color; + const gchar *property_name; + const gchar *interned = NULL; + gchar *color_spec; + + /* FIXME get_all_labels() should return an array of tree iterators, + * not strings. Now we just have to lookup the tag again. */ + + shell_module = message_list_get_shell_module (message_list); + shell = e_shell_module_get_shell (shell_module); + shell_settings = e_shell_get_shell_settings (shell); + + property_name = "mail-label-list-store"; + store = e_shell_settings_get_object (shell_settings, property_name); + + if (!e_mail_label_list_store_lookup (store, tag, &iter)) + goto exit; + + e_mail_label_list_store_get_color (store, &iter, &color); + + /* XXX Hack to avoid returning an allocated string. */ + color_spec = gdk_color_to_string (&color); + interned = g_intern_string (color_spec); + g_free (color_spec); + +exit: + g_object_unref (store); + + return interned; +} + static const char * get_trimmed_subject (CamelMessageInfo *info) { @@ -1468,9 +1553,8 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) completed = camel_message_info_user_tag(msg_info, "completed-on"); followup = camel_message_info_user_tag(msg_info, "follow-up"); if (colour == NULL) { - if ((n = get_all_labels (msg_info, &labels_string, TRUE)) == 1) { - - colour = e_util_labels_get_color_str (mail_config_get_labels (), labels_string); + if ((n = get_all_labels (message_list, msg_info, &labels_string, TRUE)) == 1) { + colour = get_label_color (message_list, labels_string); } else if (camel_message_info_flags(msg_info) & CAMEL_MESSAGE_FLAGGED) { /* FIXME: extract from the important.xpm somehow. */ colour = "#A7453E"; @@ -1549,7 +1633,7 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) cleansed_str = g_string_new (""); - if (get_all_labels (msg_info, &str, FALSE)) { + if (get_all_labels (message_list, msg_info, &str, FALSE)) { int i; for (i = 0; str[i] != '\0'; ++i) { if (str[i] != '_') { @@ -1945,7 +2029,7 @@ ml_selection_get(GtkWidget *widget, GtkSelectionData *data, guint info, guint ti static gboolean ml_selection_clear_event(GtkWidget *widget, GdkEventSelection *event, MessageList *ml) { - struct _MessageListPrivate *p = ml->priv; + MessageListPrivate *p = ml->priv; clear_selection(ml, &p->clipboard); @@ -2240,13 +2324,25 @@ on_model_row_changed (ETableModel *model, int row, MessageList *ml) /* * GObject::init */ + +static void +message_list_set_shell_module (MessageList *message_list, + EShellModule *shell_module) +{ + g_return_if_fail (message_list->priv->shell_module == NULL); + + message_list->priv->shell_module = g_object_ref (shell_module); +} + static void message_list_init (MessageList *message_list) { - struct _MessageListPrivate *p; + MessageListPrivate *p; GtkAdjustment *adjustment; GdkAtom matom; + message_list->priv = MESSAGE_LIST_GET_PRIVATE (message_list); + adjustment = (GtkAdjustment *) gtk_adjustment_new (0.0, 0.0, G_MAXDOUBLE, 0.0, 0.0, 0.0); gtk_scrolled_window_set_vadjustment ((GtkScrolledWindow *) message_list, adjustment); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (message_list), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); @@ -2275,7 +2371,7 @@ message_list_init (MessageList *message_list) message_list->regen_lock = g_mutex_new (); /* TODO: Should this only get the selection if we're realised? */ - p = message_list->priv = g_malloc0(sizeof(*message_list->priv)); + p = message_list->priv; p->invisible = gtk_invisible_new(); p->destroyed = FALSE; g_object_ref_sink(p->invisible); @@ -2296,7 +2392,7 @@ static void message_list_destroy(GtkObject *object) { MessageList *message_list = MESSAGE_LIST (object); - struct _MessageListPrivate *p = message_list->priv; + MessageListPrivate *p = message_list->priv; p->destroyed = TRUE; @@ -2348,14 +2444,65 @@ message_list_destroy(GtkObject *object) message_list->seen_id = 0; } + /* Chain up to parent's destroy() method. */ GTK_OBJECT_CLASS (message_list_parent_class)->destroy(object); } static void -message_list_finalise (GObject *object) +message_list_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + switch (property_id) { + case PROP_SHELL_MODULE: + message_list_set_shell_module ( + MESSAGE_LIST (object), + g_value_get_object (value)); + return; + } + + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +} + +static void +message_list_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + switch (property_id) { + case PROP_SHELL_MODULE: + g_value_set_object ( + value, message_list_get_shell_module ( + MESSAGE_LIST (object))); + return; + } + + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +} + +static void +message_list_dispose (GObject *object) +{ + MessageListPrivate *priv; + + priv = MESSAGE_LIST_GET_PRIVATE (object); + + if (priv->shell_module != NULL) { + g_object_unref (priv->shell_module); + priv->shell_module = NULL; + } + + /* Chain up to parent's dispose() method. */ + G_OBJECT_CLASS (message_list_parent_class)->dispose (object); +} + +static void +message_list_finalize (GObject *object) { MessageList *message_list = MESSAGE_LIST (object); - struct _MessageListPrivate *p = message_list->priv; + MessageListPrivate *priv = message_list->priv; g_hash_table_destroy (message_list->normalised_hash); @@ -2385,10 +2532,9 @@ message_list_finalise (GObject *object) g_free(message_list->folder_uri); message_list->folder_uri = NULL; - clear_selection(message_list, &p->clipboard); - - g_free(p); + clear_selection(message_list, &priv->clipboard); + /* Chain up to parent's finalize() method. */ G_OBJECT_CLASS (message_list_parent_class)->finalize (object); } @@ -2396,17 +2542,36 @@ message_list_finalise (GObject *object) * GObjectClass::init */ static void -message_list_class_init (MessageListClass *message_list_class) +message_list_class_init (MessageListClass *class) { - GObjectClass *object_class = (GObjectClass *) message_list_class; - GtkObjectClass *gtkobject_class = (GtkObjectClass *) message_list_class; + GObjectClass *object_class; + GtkObjectClass *gtk_object_class; int i; for (i=0;ifinalize = message_list_finalise; - gtkobject_class->destroy = message_list_destroy; + g_type_class_add_private (class, sizeof (MessageListPrivate)); + + object_class = G_OBJECT_CLASS (class); + object_class->set_property = message_list_set_property; + object_class->get_property = message_list_get_property; + object_class->dispose = message_list_dispose; + object_class->finalize = message_list_finalize; + + gtk_object_class = GTK_OBJECT_CLASS (class); + gtk_object_class->destroy = message_list_destroy; + + g_object_class_install_property ( + object_class, + PROP_SHELL_MODULE, + g_param_spec_object ( + "shell-module", + _("Shell Module"), + _("The mail shell module"), + E_TYPE_SHELL_MODULE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); message_list_signals[MESSAGE_SELECTED] = g_signal_new ("message_selected", @@ -2559,19 +2724,30 @@ message_list_construct (MessageList *message_list) * Returns a new message-list widget. **/ GtkWidget * -message_list_new (void) +message_list_new (EShellModule *shell_module) { MessageList *message_list; + g_return_val_if_fail (E_IS_SHELL_MODULE (shell_module), NULL); + message_list = MESSAGE_LIST (g_object_new(message_list_get_type (), "hadjustment", NULL, "vadjustment", NULL, + "shell-module", shell_module, NULL)); message_list_construct (message_list); return GTK_WIDGET (message_list); } +EShellModule * +message_list_get_shell_module (MessageList *message_list) +{ + g_return_val_if_fail (IS_MESSAGE_LIST (message_list), NULL); + + return message_list->priv->shell_module; +} + static void clear_info(char *key, ETreePath *node, MessageList *ml) { -- cgit v1.2.3 From faf1c14c11f3e6026f786e9587715c10b13c723e Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 25 Apr 2009 10:16:00 -0400 Subject: Manual conflict resolution --- mail/message-list.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 5ae5ba2232..3386ff4d3b 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -4242,9 +4242,8 @@ regen_list_exec (struct _regen_list_msg *m) if (!was_deleted || (was_deleted && !m->hidedel)) g_ptr_array_add (uids, (gpointer) camel_pstring_strdup (looking_for)); + } - if (!was_deleted || (was_deleted && !m->hidedel)) - g_ptr_array_add (uids, (gpointer) camel_pstring_strdup (looking_for)); } } } -- cgit v1.2.3 From d9b8a249c4778ba2c385af244661b2e94e360ccf Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 24 Apr 2009 20:33:12 +0200 Subject: Sort UIDs before using them ** Fix for bug #563954 * message-list.c: (regen_list_exec): Sort UIDs before using them to obtain proper order when without sorting. --- mail/message-list.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 3386ff4d3b..dce409ee04 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -4344,6 +4344,8 @@ regen_list_exec (struct _regen_list_msg *m) //camel_folder_summary_reload_from_db (m->folder->summary, NULL); if (!camel_operation_cancel_check(m->base.cancel)) { + camel_folder_sort_uids (m->folder, showuids); + /* update/build a new tree */ if (m->dotree) { if (m->tree) -- cgit v1.2.3 From fab97ac4cfde3511832be5079d7da909bdbc632f Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 27 Apr 2009 12:29:26 +0200 Subject: Hide last junked message too from the non-junk folder ** Fix for bug #579635 --- mail/message-list.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index dce409ee04..11d0f19707 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -4232,7 +4232,8 @@ regen_list_exec (struct _regen_list_msg *m) CamelMessageInfo *looking_info = camel_folder_get_message_info (m->folder, looking_for); if (looking_info) { - gboolean was_deleted = (camel_message_info_flags (looking_info) & CAMEL_MESSAGE_DELETED) != 0; + gboolean is_deleted = (camel_message_info_flags (looking_info) & CAMEL_MESSAGE_DELETED) != 0; + gboolean is_junk = (camel_message_info_flags (looking_info) & CAMEL_MESSAGE_JUNK) != 0; /* I would really like to check for CAMEL_MESSAGE_FOLDER_FLAGGED on a message, so I would know whether it was changed locally, and then just check the changes @@ -4240,7 +4241,7 @@ regen_list_exec (struct _regen_list_msg *m) matter. So here just check whether the file was deleted and we show it based on the flag whether we can view deleted messages or not. */ - if (!was_deleted || (was_deleted && !m->hidedel)) + if ((!is_deleted || (is_deleted && !m->hidedel)) && (!is_junk || (is_junk && !m->hidejunk))) g_ptr_array_add (uids, (gpointer) camel_pstring_strdup (looking_for)); } -- cgit v1.2.3 From 16e2beab9e4d412399f495f6165d27da80cb3675 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 7 May 2009 16:38:32 -0400 Subject: Adapt mail to EShellBackend changes. Again, builds but not tested. Lots of compiler warnings to clean up, but I don't have the energy for it. This was pretty grueling. --- mail/message-list.c | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 39784acfcc..d425ae0494 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -113,7 +113,7 @@ struct _MLSelection { struct _MessageListPrivate { GtkWidget *invisible; /* 4 selection */ - EShellModule *shell_module; + EShellBackend *shell_backend; struct _MLSelection clipboard; gboolean destroyed; @@ -1242,7 +1242,7 @@ get_all_labels (MessageList *message_list, gboolean get_tags) { EShell *shell; - EShellModule *shell_module; + EShellBackend *shell_backend; EShellSettings *shell_settings; EMailLabelListStore *store; GtkTreeIter iter; @@ -1253,8 +1253,8 @@ get_all_labels (MessageList *message_list, int count = 0; const CamelFlag *flag; - shell_module = message_list_get_shell_module (message_list); - shell = e_shell_module_get_shell (shell_module); + shell_backend = message_list_get_shell_backend (message_list); + shell = e_shell_backend_get_shell (shell_backend); shell_settings = e_shell_get_shell_settings (shell); property_name = "mail-label-list-store"; @@ -1318,7 +1318,7 @@ get_label_color (MessageList *message_list, const gchar *tag) { EShell *shell; - EShellModule *shell_module; + EShellBackend *shell_backend; EShellSettings *shell_settings; EMailLabelListStore *store; GtkTreeIter iter; @@ -1330,8 +1330,8 @@ get_label_color (MessageList *message_list, /* FIXME get_all_labels() should return an array of tree iterators, * not strings. Now we just have to lookup the tag again. */ - shell_module = message_list_get_shell_module (message_list); - shell = e_shell_module_get_shell (shell_module); + shell_backend = message_list_get_shell_backend (message_list); + shell = e_shell_backend_get_shell (shell_backend); shell_settings = e_shell_get_shell_settings (shell); property_name = "mail-label-list-store"; @@ -2327,12 +2327,12 @@ on_model_row_changed (ETableModel *model, int row, MessageList *ml) */ static void -message_list_set_shell_module (MessageList *message_list, - EShellModule *shell_module) +message_list_set_shell_backend (MessageList *message_list, + EShellBackend *shell_backend) { - g_return_if_fail (message_list->priv->shell_module == NULL); + g_return_if_fail (message_list->priv->shell_backend == NULL); - message_list->priv->shell_module = g_object_ref (shell_module); + message_list->priv->shell_backend = g_object_ref (shell_backend); } static void @@ -2457,7 +2457,7 @@ message_list_set_property (GObject *object, { switch (property_id) { case PROP_SHELL_MODULE: - message_list_set_shell_module ( + message_list_set_shell_backend ( MESSAGE_LIST (object), g_value_get_object (value)); return; @@ -2475,7 +2475,7 @@ message_list_get_property (GObject *object, switch (property_id) { case PROP_SHELL_MODULE: g_value_set_object ( - value, message_list_get_shell_module ( + value, message_list_get_shell_backend ( MESSAGE_LIST (object))); return; } @@ -2490,9 +2490,9 @@ message_list_dispose (GObject *object) priv = MESSAGE_LIST_GET_PRIVATE (object); - if (priv->shell_module != NULL) { - g_object_unref (priv->shell_module); - priv->shell_module = NULL; + if (priv->shell_backend != NULL) { + g_object_unref (priv->shell_backend); + priv->shell_backend = NULL; } /* Chain up to parent's dispose() method. */ @@ -2567,10 +2567,10 @@ message_list_class_init (MessageListClass *class) object_class, PROP_SHELL_MODULE, g_param_spec_object ( - "shell-module", - _("Shell Module"), - _("The mail shell module"), - E_TYPE_SHELL_MODULE, + "shell-backend", + _("Shell Backend"), + _("The mail shell backend"), + E_TYPE_SHELL_BACKEND, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); @@ -2725,28 +2725,28 @@ message_list_construct (MessageList *message_list) * Returns a new message-list widget. **/ GtkWidget * -message_list_new (EShellModule *shell_module) +message_list_new (EShellBackend *shell_backend) { MessageList *message_list; - g_return_val_if_fail (E_IS_SHELL_MODULE (shell_module), NULL); + g_return_val_if_fail (E_IS_SHELL_BACKEND (shell_backend), NULL); message_list = MESSAGE_LIST (g_object_new(message_list_get_type (), "hadjustment", NULL, "vadjustment", NULL, - "shell-module", shell_module, + "shell-backend", shell_backend, NULL)); message_list_construct (message_list); return GTK_WIDGET (message_list); } -EShellModule * -message_list_get_shell_module (MessageList *message_list) +EShellBackend * +message_list_get_shell_backend (MessageList *message_list) { g_return_val_if_fail (IS_MESSAGE_LIST (message_list), NULL); - return message_list->priv->shell_module; + return message_list->priv->shell_backend; } static void -- cgit v1.2.3 From 2a54f0a220d86b271901697ce938b30c2f3ca41a Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 8 May 2009 09:45:58 -0400 Subject: Adapt calendar to EShellBackend changes. --- mail/message-list.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index d425ae0494..98dab40af1 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -124,7 +124,7 @@ struct _MessageListPrivate { enum { PROP_0, - PROP_SHELL_MODULE + PROP_SHELL_BACKEND }; static struct { @@ -2456,7 +2456,7 @@ message_list_set_property (GObject *object, GParamSpec *pspec) { switch (property_id) { - case PROP_SHELL_MODULE: + case PROP_SHELL_BACKEND: message_list_set_shell_backend ( MESSAGE_LIST (object), g_value_get_object (value)); @@ -2473,7 +2473,7 @@ message_list_get_property (GObject *object, GParamSpec *pspec) { switch (property_id) { - case PROP_SHELL_MODULE: + case PROP_SHELL_BACKEND: g_value_set_object ( value, message_list_get_shell_backend ( MESSAGE_LIST (object))); @@ -2565,7 +2565,7 @@ message_list_class_init (MessageListClass *class) g_object_class_install_property ( object_class, - PROP_SHELL_MODULE, + PROP_SHELL_BACKEND, g_param_spec_object ( "shell-backend", _("Shell Backend"), -- cgit v1.2.3 From a538f3f3100dbdbae1ea172ae3b8344e650d529d Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 16 May 2009 12:11:55 -0400 Subject: Fix several types of pedantic compiler warnings. --- mail/message-list.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 98dab40af1..2a72fe98eb 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -140,7 +140,7 @@ static struct { enum { DND_X_UID_LIST, /* x-uid-list */ DND_MESSAGE_RFC822, /* message/rfc822 */ - DND_TEXT_URI_LIST, /* text/uri-list */ + DND_TEXT_URI_LIST /* text/uri-list */ }; /* What we send */ @@ -184,7 +184,7 @@ enum { NORMALISED_SUBJECT, NORMALISED_FROM, NORMALISED_TO, - NORMALISED_LAST, + NORMALISED_LAST }; /* #define SMART_ADDRESS_COMPARE */ @@ -4344,7 +4344,7 @@ regen_list_exec (struct _regen_list_msg *m) e_profile_event_emit("list.threaduids", m->folder->full_name, 0); - //camel_folder_summary_reload_from_db (m->folder->summary, NULL); + /* camel_folder_summary_reload_from_db (m->folder->summary, NULL); */ if (!camel_operation_cancel_check(m->base.cancel)) { camel_folder_sort_uids (m->folder, showuids); -- cgit v1.2.3 From 2393a5d17e92435cb3d7726b04ff6f4a5c27c8db Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sun, 24 May 2009 11:54:43 -0400 Subject: Eliminate redundant E_ICON_SIZE_* enumeration. --- mail/message-list.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 2a72fe98eb..e970a09a7d 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -1721,7 +1721,7 @@ message_list_init_images (void) for (i = 0; i < G_N_ELEMENTS (states_pixmaps); i++) { if (states_pixmaps[i].icon_name) - states_pixmaps[i].pixbuf = e_icon_factory_get_icon (states_pixmaps[i].icon_name, E_ICON_SIZE_MENU); + states_pixmaps[i].pixbuf = e_icon_factory_get_icon (states_pixmaps[i].icon_name, GTK_ICON_SIZE_MENU); else states_pixmaps[i].pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **) empty_xpm); } -- cgit v1.2.3 From e4afd3f9fb962ea1295a0657ec9f83a427829171 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Tue, 26 May 2009 23:21:02 -0400 Subject: Remove trailing whitespace, again. --- mail/message-list.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index f9a0e9259b..09f080cae0 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -10,7 +10,7 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with the program; if not, see + * License along with the program; if not, see * * * Authors: @@ -2609,7 +2609,7 @@ clear_tree (MessageList *ml, gboolean tfree) ml->tree_root = e_tree_memory_node_insert (E_TREE_MEMORY(etm), NULL, 0, NULL); if (tfree) - e_tree_model_rebuilt (E_TREE_MODEL(etm)); + e_tree_model_rebuilt (E_TREE_MODEL(etm)); #ifdef TIMEIT gettimeofday(&end, NULL); diff = end.tv_sec * 1000 + end.tv_usec/1000; @@ -3573,7 +3573,7 @@ message_list_get_uids(MessageList *ml) ml, g_ptr_array_new() }; - + e_tree_path_foreach(ml->tree, ml_getselected_cb, &data); if (ml->folder && data.uids->len) @@ -3589,11 +3589,11 @@ message_list_get_selected(MessageList *ml) ml, g_ptr_array_new() }; - + e_tree_selected_path_foreach(ml->tree, ml_getselected_cb, &data); if (ml->folder && data.uids->len) - camel_folder_sort_uids (ml->folder, data.uids); + camel_folder_sort_uids (ml->folder, data.uids); return data.uids; } @@ -4282,7 +4282,7 @@ regen_list_done (struct _regen_list_msg *m) if (m->last_row >= e_table_model_row_count (E_TABLE_MODEL (etta))) m->last_row = e_table_model_row_count (E_TABLE_MODEL (etta)) - 1; - + if (m->last_row >= 0) { ETreePath path; -- cgit v1.2.3 From 948235c3d1076dbe6ed2e57a24c16a083bbd9f01 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Wed, 27 May 2009 10:29:19 -0400 Subject: Prefer GLib basic types over C types. --- mail/message-list.c | 396 ++++++++++++++++++++++++++-------------------------- 1 file changed, 198 insertions(+), 198 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 8d84e4ae8c..8050dba5ca 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -107,7 +107,7 @@ struct _MLSelection { GPtrArray *uids; CamelFolder *folder; - char *folder_uri; + gchar *folder_uri; }; struct _MessageListPrivate { @@ -192,7 +192,7 @@ enum { #ifdef SMART_ADDRESS_COMPARE struct _EMailAddress { ENameWestern *wname; - char *address; + gchar *address; }; typedef struct _EMailAddress EMailAddress; @@ -200,11 +200,11 @@ typedef struct _EMailAddress EMailAddress; G_DEFINE_TYPE (MessageList, message_list, E_TREE_SCROLLED_TYPE) -static void on_cursor_activated_cmd (ETree *tree, int row, ETreePath path, gpointer user_data); +static void on_cursor_activated_cmd (ETree *tree, gint row, ETreePath path, gpointer user_data); static void on_selection_changed_cmd(ETree *tree, MessageList *ml); static gint on_click (ETree *tree, gint row, ETreePath path, gint col, GdkEvent *event, MessageList *list); -static char *filter_date (time_t date); -static char *filter_size (int size); +static gchar *filter_date (time_t date); +static gchar *filter_size (gint size); static void folder_changed (CamelObject *o, gpointer event_data, gpointer user_data); @@ -212,11 +212,11 @@ static void save_hide_state(MessageList *ml); static void load_hide_state(MessageList *ml); /* note: @changes is owned/freed by the caller */ -/*static void mail_do_regenerate_messagelist (MessageList *list, const char *search, const char *hideexpr, CamelFolderChangeInfo *changes);*/ -static void mail_regen_list(MessageList *ml, const char *search, const char *hideexpr, CamelFolderChangeInfo *changes); +/*static void mail_do_regenerate_messagelist (MessageList *list, const gchar *search, const gchar *hideexpr, CamelFolderChangeInfo *changes);*/ +static void mail_regen_list(MessageList *ml, const gchar *search, const gchar *hideexpr, CamelFolderChangeInfo *changes); static void mail_regen_cancel(MessageList *ml); -static void clear_info(char *key, ETreePath *node, MessageList *ml); +static void clear_info(gchar *key, ETreePath *node, MessageList *ml); enum { MESSAGE_SELECTED, @@ -257,11 +257,11 @@ static gboolean junk_folder = TRUE; #ifdef SMART_ADDRESS_COMPARE static EMailAddress * -e_mail_address_new (const char *address) +e_mail_address_new (const gchar *address) { CamelInternetAddress *cia; EMailAddress *new; - const char *name = NULL, *addr = NULL; + const gchar *name = NULL, *addr = NULL; cia = camel_internet_address_new (); if (camel_address_unformat (CAMEL_ADDRESS (cia), address) == -1) { @@ -302,7 +302,7 @@ e_mail_address_compare (gconstpointer address1, gconstpointer address2) { const EMailAddress *addr1 = address1; const EMailAddress *addr2 = address2; - int retval; + gint retval; g_return_val_if_fail (addr1 != NULL, 1); g_return_val_if_fail (addr2 != NULL, -1); @@ -365,7 +365,7 @@ address_compare (gconstpointer address1, gconstpointer address2) #ifdef SMART_ADDRESS_COMPARE EMailAddress *addr1, *addr2; #endif /* SMART_ADDRESS_COMPARE */ - int retval; + gint retval; g_return_val_if_fail (address1 != NULL, 1); g_return_val_if_fail (address2 != NULL, -1); @@ -377,13 +377,13 @@ address_compare (gconstpointer address1, gconstpointer address2) e_mail_address_free (addr1); e_mail_address_free (addr2); #else - retval = strcmp ((char *) address1, (char *) address2); + retval = strcmp ((gchar *) address1, (gchar *) address2); #endif /* SMART_ADDRESS_COMPARE */ return retval; } -static char * +static gchar * filter_size (gint size) { gfloat fsize; @@ -402,7 +402,7 @@ filter_size (gint size) } /* Gets the uid of the message displayed at a given view row */ -static const char * +static const gchar * get_message_uid (MessageList *message_list, ETreePath node) { CamelMessageInfo *info; @@ -430,13 +430,13 @@ get_message_info (MessageList *message_list, ETreePath node) return info; } -static const char * -get_normalised_string (MessageList *message_list, CamelMessageInfo *info, int col) +static const gchar * +get_normalised_string (MessageList *message_list, CamelMessageInfo *info, gint col) { - const char *string, *str; - char *normalised; + const gchar *string, *str; + gchar *normalised; EPoolv *poolv; - int index; + gint index; switch (col) { case COL_SUBJECT_NORM: @@ -464,7 +464,7 @@ get_normalised_string (MessageList *message_list, CamelMessageInfo *info, int co poolv = g_hash_table_lookup (message_list->normalised_hash, camel_message_info_uid (info)); if (poolv == NULL) { poolv = e_poolv_new (NORMALISED_LAST); - g_hash_table_insert (message_list->normalised_hash, (char *) camel_message_info_uid (info), poolv); + g_hash_table_insert (message_list->normalised_hash, (gchar *) camel_message_info_uid (info), poolv); } else { str = e_poolv_get (poolv, index); if (*str) @@ -472,10 +472,10 @@ get_normalised_string (MessageList *message_list, CamelMessageInfo *info, int co } if (col == COL_SUBJECT_NORM) { - const unsigned char *subject; + const guchar *subject; - subject = (const unsigned char *) string; - while (!g_ascii_strncasecmp ((char *)subject, "Re:", 3)) { + subject = (const guchar *) string; + while (!g_ascii_strncasecmp ((gchar *)subject, "Re:", 3)) { subject += 3; /* jump over any spaces */ @@ -487,7 +487,7 @@ get_normalised_string (MessageList *message_list, CamelMessageInfo *info, int co while (*subject && isspace ((int) *subject)) subject++; - string = (const char *) subject; + string = (const gchar *) subject; normalised = g_utf8_collate_key (string, -1); } else { /* because addresses require strings, not collate keys */ @@ -515,10 +515,10 @@ clear_selection(MessageList *ml, struct _MLSelection *selection) } static ETreePath -ml_search_forward(MessageList *ml, int start, int end, guint32 flags, guint32 mask) +ml_search_forward(MessageList *ml, gint start, gint end, guint32 flags, guint32 mask) { ETreePath path; - int row; + gint row; CamelMessageInfo *info; ETreeTableAdapter *etta = e_tree_get_table_adapter(ml->tree); @@ -534,10 +534,10 @@ ml_search_forward(MessageList *ml, int start, int end, guint32 flags, guint32 ma } static ETreePath -ml_search_backward(MessageList *ml, int start, int end, guint32 flags, guint32 mask) +ml_search_backward(MessageList *ml, gint start, gint end, guint32 flags, guint32 mask) { ETreePath path; - int row; + gint row; CamelMessageInfo *info; ETreeTableAdapter *etta = e_tree_get_table_adapter(ml->tree); @@ -556,7 +556,7 @@ static ETreePath ml_search_path(MessageList *ml, MessageListSelectDirection direction, guint32 flags, guint32 mask) { ETreePath node; - int row, count; + gint row, count; ETreeTableAdapter *etta = e_tree_get_table_adapter(ml->tree); if (ml->cursor_uid == NULL @@ -653,7 +653,7 @@ message_list_can_select(MessageList *ml, MessageListSelectDirection direction, g * Selects the message with the given UID. **/ void -message_list_select_uid (MessageList *message_list, const char *uid) +message_list_select_uid (MessageList *message_list, const gchar *uid) { ETreePath node; @@ -681,7 +681,7 @@ message_list_select_next_thread (MessageList *ml) { ETreePath node; ETreeTableAdapter *etta = e_tree_get_table_adapter(ml->tree); - int i, count, row; + gint i, count, row; if (!ml->cursor_uid || (node = g_hash_table_lookup(ml->uid_nodemap, ml->cursor_uid)) == NULL) @@ -832,7 +832,7 @@ message_list_copy(MessageList *ml, gboolean cut) if (uids->len > 0) { if (cut) { - int i; + gint i; camel_folder_freeze(ml->folder); for (i=0;ilen;i++) @@ -866,7 +866,7 @@ message_list_paste(MessageList *ml) * SimpleTableModel::col_count */ static int -ml_column_count (ETreeModel *etm, void *data) +ml_column_count (ETreeModel *etm, gpointer data) { return COL_LAST; } @@ -875,7 +875,7 @@ ml_column_count (ETreeModel *etm, void *data) * SimpleTableModel::has_save_id */ static gboolean -ml_has_save_id (ETreeModel *etm, void *data) +ml_has_save_id (ETreeModel *etm, gpointer data) { return TRUE; } @@ -883,8 +883,8 @@ ml_has_save_id (ETreeModel *etm, void *data) /* * SimpleTableModel::get_save_id */ -static char * -ml_get_save_id (ETreeModel *etm, ETreePath path, void *data) +static gchar * +ml_get_save_id (ETreeModel *etm, ETreePath path, gpointer data) { CamelMessageInfo *info; @@ -904,7 +904,7 @@ ml_get_save_id (ETreeModel *etm, ETreePath path, void *data) * SimpleTableModel::has_save_id */ static gboolean -ml_has_get_node_by_id (ETreeModel *etm, void *data) +ml_has_get_node_by_id (ETreeModel *etm, gpointer data) { return TRUE; } @@ -913,7 +913,7 @@ ml_has_get_node_by_id (ETreeModel *etm, void *data) * SimpleTableModel::get_save_id */ static ETreePath -ml_get_node_by_id (ETreeModel *etm, const char *save_id, void *data) +ml_get_node_by_id (ETreeModel *etm, const gchar *save_id, gpointer data) { MessageList *ml; @@ -925,8 +925,8 @@ ml_get_node_by_id (ETreeModel *etm, const char *save_id, void *data) return g_hash_table_lookup(ml->uid_nodemap, save_id); } -static void * -ml_duplicate_value (ETreeModel *etm, int col, const void *value, void *data) +static gpointer +ml_duplicate_value (ETreeModel *etm, gint col, gconstpointer value, gpointer data) { switch (col){ case COL_MESSAGE_STATUS: @@ -940,7 +940,7 @@ ml_duplicate_value (ETreeModel *etm, int col, const void *value, void *data) case COL_SIZE: case COL_FOLLOWUP_FLAG_STATUS: case COL_FOLLOWUP_DUE_BY: - return (void *) value; + return (gpointer) value; case COL_FROM: case COL_SUBJECT: @@ -960,7 +960,7 @@ ml_duplicate_value (ETreeModel *etm, int col, const void *value, void *data) } static void -ml_free_value (ETreeModel *etm, int col, void *value, void *data) +ml_free_value (ETreeModel *etm, gint col, gpointer value, gpointer data) { switch (col){ case COL_MESSAGE_STATUS: @@ -993,8 +993,8 @@ ml_free_value (ETreeModel *etm, int col, void *value, void *data) } } -static void * -ml_initialize_value (ETreeModel *etm, int col, void *data) +static gpointer +ml_initialize_value (ETreeModel *etm, gint col, gpointer data) { switch (col){ case COL_MESSAGE_STATUS: @@ -1029,7 +1029,7 @@ ml_initialize_value (ETreeModel *etm, int col, void *data) } static gboolean -ml_value_is_empty (ETreeModel *etm, int col, const void *value, void *data) +ml_value_is_empty (ETreeModel *etm, gint col, gconstpointer value, gpointer data) { switch (col){ case COL_MESSAGE_STATUS: @@ -1055,14 +1055,14 @@ ml_value_is_empty (ETreeModel *etm, int col, const void *value, void *data) case COL_MIXED_SENDER: case COL_MIXED_RECIPIENTS: case COL_LABELS: - return !(value && *(char *)value); + return !(value && *(gchar *)value); default: g_warning ("This shouldn't be reached\n"); return FALSE; } } -static const char *status_map[] = { +static const gchar *status_map[] = { N_("Unseen"), N_("Seen"), N_("Answered"), @@ -1071,7 +1071,7 @@ static const char *status_map[] = { N_("Multiple Messages"), }; -static const char *score_map[] = { +static const gchar *score_map[] = { N_("Lowest"), N_("Lower"), N_("Low"), @@ -1082,10 +1082,10 @@ static const char *score_map[] = { }; -static char * -ml_value_to_string (ETreeModel *etm, int col, const void *value, void *data) +static gchar * +ml_value_to_string (ETreeModel *etm, gint col, gconstpointer value, gpointer data) { - unsigned int i; + guint i; switch (col){ case COL_MESSAGE_STATUS: @@ -1133,7 +1133,7 @@ ml_value_to_string (ETreeModel *etm, int col, const void *value, void *data) } static GdkPixbuf * -ml_tree_icon_at (ETreeModel *etm, ETreePath path, void *model_data) +ml_tree_icon_at (ETreeModel *etm, ETreePath path, gpointer model_data) { /* we dont really need an icon ... */ return NULL; @@ -1162,7 +1162,7 @@ subtree_unread(MessageList *ml, ETreePath node) } static time_t -subtree_latest(MessageList *ml, ETreePath node, int sent) +subtree_latest(MessageList *ml, ETreePath node, gint sent) { CamelMessageInfo *info; time_t latest = 0, date; @@ -1199,8 +1199,8 @@ sanitize_recipients (const gchar *string) gboolean quoted = FALSE; const gchar *p; GString *recipients = g_string_new (""); - char *single_add; - char **name; + gchar *single_add; + gchar **name; if (!string || !*string) return (gchar *) ""; @@ -1250,7 +1250,7 @@ get_all_labels (MessageList *message_list, const gchar *property_name; const gchar *old_label; gchar *new_label; - int count = 0; + gint count = 0; const CamelFlag *flag; shell_backend = message_list_get_shell_backend (message_list); @@ -1353,12 +1353,12 @@ exit: return interned; } -static const char * +static const gchar * get_trimmed_subject (CamelMessageInfo *info) { - const char *subject; - const char *mlist; - int mlist_len = 0; + const gchar *subject; + const gchar *mlist; + gint mlist_len = 0; gboolean found_mlist; subject = camel_message_info_subject (info); @@ -1368,7 +1368,7 @@ get_trimmed_subject (CamelMessageInfo *info) mlist = camel_message_info_mlist (info); if (mlist && *mlist) { - const char *mlist_end; + const gchar *mlist_end; mlist_end = strchr (mlist, '@'); if (mlist_end) @@ -1380,7 +1380,7 @@ get_trimmed_subject (CamelMessageInfo *info) do { found_mlist = FALSE; - while (!g_ascii_strncasecmp ((char *) subject, "Re:", 3)) { + while (!g_ascii_strncasecmp ((gchar *) subject, "Re:", 3)) { subject += 3; /* jump over any spaces */ @@ -1390,7 +1390,7 @@ get_trimmed_subject (CamelMessageInfo *info) if (mlist_len && *subject == '[' && - !g_ascii_strncasecmp ((char *) subject + 1, mlist, mlist_len) && + !g_ascii_strncasecmp ((gchar *) subject + 1, mlist, mlist_len) && subject [1 + mlist_len] == ']') { subject += 1 + mlist_len + 1; /* jump over "[mailing-list]" */ found_mlist = TRUE; @@ -1408,14 +1408,14 @@ get_trimmed_subject (CamelMessageInfo *info) return subject; } -static void * -ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) +static gpointer +ml_tree_value_at (ETreeModel *etm, ETreePath path, gint col, gpointer model_data) { MessageList *message_list = model_data; CamelMessageInfo *msg_info; CamelException ex; - const char *str; + const gchar *str; guint32 flags; camel_exception_init (&ex); @@ -1441,8 +1441,8 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) case COL_FLAGGED: return GINT_TO_POINTER ((camel_message_info_flags(msg_info) & CAMEL_MESSAGE_FLAGGED) != 0); case COL_SCORE: { - const char *tag; - int score = 0; + const gchar *tag; + gint score = 0; tag = camel_message_info_user_tag(msg_info, "score"); if (tag) @@ -1451,7 +1451,7 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) return GINT_TO_POINTER (score); } case COL_FOLLOWUP_FLAG_STATUS: { - const char *tag, *cmp; + const gchar *tag, *cmp; /* FIXME: this all should be methods off of message-tag-followup class, FIXME: the tag names should be namespaced :( */ @@ -1466,7 +1466,7 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) return GINT_TO_POINTER(0); } case COL_FOLLOWUP_DUE_BY: { - const char *tag; + const gchar *tag; time_t due_by; tag = camel_message_info_user_tag(msg_info, "due-by"); @@ -1479,24 +1479,24 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) } case COL_FOLLOWUP_FLAG: str = camel_message_info_user_tag(msg_info, "follow-up"); - return (void *)(str ? str : ""); + return (gpointer)(str ? str : ""); case COL_ATTACHMENT: if (camel_message_info_user_flag (msg_info, "$has_cal")) return GINT_TO_POINTER (2); return GINT_TO_POINTER ((camel_message_info_flags(msg_info) & CAMEL_MESSAGE_ATTACHMENTS) != 0); case COL_FROM: str = camel_message_info_from (msg_info); - return (void *)(str ? str : ""); + return (gpointer)(str ? str : ""); case COL_FROM_NORM: - return (void *) get_normalised_string (message_list, msg_info, col); + return (gpointer) get_normalised_string (message_list, msg_info, col); case COL_SUBJECT: str = camel_message_info_subject (msg_info); - return (void *)(str ? str : ""); + return (gpointer)(str ? str : ""); case COL_SUBJECT_TRIMMED: str = get_trimmed_subject (msg_info); - return (void *)(str ? str : ""); + return (gpointer)(str ? str : ""); case COL_SUBJECT_NORM: - return (void *) get_normalised_string (message_list, msg_info, col); + return (gpointer) get_normalised_string (message_list, msg_info, col); case COL_SENT: { ETreePath child; @@ -1518,9 +1518,9 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) } case COL_TO: str = camel_message_info_to (msg_info); - return (void *)(str ? str : ""); + return (gpointer)(str ? str : ""); case COL_TO_NORM: - return (void *) get_normalised_string (message_list, msg_info, col); + return (gpointer) get_normalised_string (message_list, msg_info, col); case COL_SIZE: return GINT_TO_POINTER (camel_message_info_size(msg_info)); case COL_DELETED: @@ -1538,9 +1538,9 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) return GINT_TO_POINTER (!(flags & CAMEL_MESSAGE_SEEN)); } case COL_COLOUR: { - const char *colour, *due_by, *completed, *followup; - char *labels_string = NULL; - int n; + const gchar *colour, *due_by, *completed, *followup; + gchar *labels_string = NULL; + gint n; /* Priority: colour tag; label tag; important flag; due-by tag */ @@ -1569,15 +1569,15 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) g_free (labels_string); - return (void *) colour; + return (gpointer) colour; } case COL_LOCATION: { /* Fixme : freeing memory stuff (mem leaks) */ CamelFolder *folder; CamelURL *curl; EAccount *account; - char *location = NULL; - char *euri, *url; + gchar *location = NULL; + gchar *euri, *url; if (CAMEL_IS_VEE_FOLDER(message_list->folder)) { folder = camel_vee_folder_get_location((CamelVeeFolder *)message_list->folder, (CamelVeeMessageInfo *)msg_info, NULL); @@ -1616,34 +1616,34 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) } case COL_MIXED_SENDER: case COL_SENDER:{ - char **sender_name = NULL; + gchar **sender_name = NULL; str = camel_message_info_from (msg_info); if(str && str[0] != '\0'){ - char *res; + gchar *res; sender_name = g_strsplit (str,"<",2); res = g_strdup (*sender_name); g_strfreev (sender_name); - return (void *)(res); + return (gpointer)(res); } else - return (void *)(""); + return (gpointer)(""); } case COL_LABELS:{ - char *str = NULL; + gchar *str = NULL; GString *cleansed_str; cleansed_str = g_string_new (""); if (get_all_labels (message_list, msg_info, &str, FALSE)) { - int i; + gint i; for (i = 0; str[i] != '\0'; ++i) { if (str[i] != '_') { g_string_append_c (cleansed_str, str[i]); } } - return (void *) (g_string_free (cleansed_str, FALSE)); + return (gpointer) (g_string_free (cleansed_str, FALSE)); } else - return (void *) (""); + return (gpointer) (""); } default: g_warning ("This shouldn't be reached\n"); @@ -1651,8 +1651,8 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) } } -static void * -ml_tree_sort_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) +static gpointer +ml_tree_sort_value_at (ETreeModel *etm, ETreePath path, gint col, gpointer model_data) { MessageList *message_list = model_data; CamelMessageInfo *msg_info; @@ -1696,14 +1696,14 @@ ml_tree_sort_value_at (ETreeModel *etm, ETreePath path, int col, void *model_dat } static void -ml_tree_set_value_at (ETreeModel *etm, ETreePath path, int col, - const void *val, void *model_data) +ml_tree_set_value_at (ETreeModel *etm, ETreePath path, gint col, + gconstpointer val, gpointer model_data) { g_warning ("This shouldn't be reached\n"); } static gboolean -ml_tree_is_cell_editable (ETreeModel *etm, ETreePath path, int col, void *model_data) +ml_tree_is_cell_editable (ETreeModel *etm, ETreePath path, gint col, gpointer model_data) { return FALSE; } @@ -1711,7 +1711,7 @@ ml_tree_is_cell_editable (ETreeModel *etm, ETreePath path, int col, void *model_ static void message_list_init_images (void) { - int i; + gint i; /* * Only load once, and share @@ -1723,17 +1723,17 @@ message_list_init_images (void) if (states_pixmaps[i].icon_name) states_pixmaps[i].pixbuf = e_icon_factory_get_icon (states_pixmaps[i].icon_name, GTK_ICON_SIZE_MENU); else - states_pixmaps[i].pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **) empty_xpm); + states_pixmaps[i].pixbuf = gdk_pixbuf_new_from_xpm_data ((const gchar **) empty_xpm); } } -static char * +static gchar * filter_date (time_t date) { time_t nowdate = time(NULL); time_t yesdate; struct tm then, now, yesterday; - char buf[26]; + gchar buf[26]; gboolean done = FALSE; if (date == 0) @@ -1758,7 +1758,7 @@ filter_date (time_t date) } } if (!done) { - int i; + gint i; for (i = 2; i < 7; i++) { yesdate = nowdate - 60 * 60 * 24 * i; localtime_r (&yesdate, &yesterday); @@ -1789,15 +1789,15 @@ filter_date (time_t date) return g_strdup (buf); } -static ECell * create_composite_cell (int col) +static ECell * create_composite_cell (gint col) { ECell *cell_vbox, *cell_hbox, *cell_sub, *cell_date, *cell_from, *cell_tree, *cell_attach; GdkPixbuf *images [7]; GConfClient *gconf; - char *fixed_name = NULL; + gchar *fixed_name = NULL; gboolean show_email; - int i; - int alt_col = (col == COL_FROM) ? COL_SENDER : COL_RECIPIENTS; + gint i; + gint alt_col = (col == COL_FROM) ? COL_SENDER : COL_RECIPIENTS; gboolean same_font = FALSE; gconf = mail_config_get_gconf_client (); @@ -1849,7 +1849,7 @@ static ECell * create_composite_cell (int col) } static void -composite_cell_set_strike_col (ECell *cell, int col) +composite_cell_set_strike_col (ECell *cell, gint col) { g_object_set (G_OBJECT (g_object_get_data(G_OBJECT (cell), "cell_date")), "strikeout_column", col, NULL); g_object_set (G_OBJECT (g_object_get_data(G_OBJECT (cell), "cell_from")), "strikeout_column", col, NULL); @@ -1858,7 +1858,7 @@ composite_cell_set_strike_col (ECell *cell, int col) static ETableExtras * message_list_create_extras (void) { - int i; + gint i; GdkPixbuf *images [7]; ETableExtras *extras; ECell *cell; @@ -1936,7 +1936,7 @@ message_list_create_extras (void) static void save_tree_state(MessageList *ml) { - char *filename; + gchar *filename; if (ml->folder == NULL || ml->tree == NULL) return; @@ -1957,7 +1957,7 @@ load_tree_state (MessageList *ml, xmlDoc *expand_state) if (expand_state) { e_tree_load_expanded_state_xml (ml->tree, expand_state); } else { - char *filename; + gchar *filename; filename = mail_config_folder_to_cachename (ml->folder, "et-expanded-"); e_tree_load_expanded_state (ml->tree, filename); @@ -1980,9 +1980,9 @@ message_list_setup_etree (MessageList *message_list, gboolean outgoing) /* build the spec based on the folder, and possibly from a saved file */ /* otherwise, leave default */ if (message_list->folder) { - char *path; - char *name; - int data = 1; + gchar *path; + gchar *name; + gint data = 1; struct stat st; ETableItem *item = e_tree_get_item (message_list->tree); @@ -2049,7 +2049,7 @@ ml_selection_received(GtkWidget *widget, GtkSelectionData *data, guint time, Mes } static void -ml_tree_drag_data_get (ETree *tree, int row, ETreePath path, int col, +ml_tree_drag_data_get (ETree *tree, gint row, ETreePath path, gint col, GdkDragContext *context, GtkSelectionData *data, guint info, guint time, MessageList *ml) { @@ -2086,9 +2086,9 @@ struct _drop_msg { guint32 action; guint info; - unsigned int move:1; - unsigned int moved:1; - unsigned int aborted:1; + guint move:1; + guint moved:1; + guint aborted:1; }; static gchar * @@ -2159,7 +2159,7 @@ ml_drop_action(struct _drop_msg *m) } static void -ml_drop_popup_copy(EPopup *ep, EPopupItem *item, void *data) +ml_drop_popup_copy(EPopup *ep, EPopupItem *item, gpointer data) { struct _drop_msg *m = data; @@ -2168,7 +2168,7 @@ ml_drop_popup_copy(EPopup *ep, EPopupItem *item, void *data) } static void -ml_drop_popup_move(EPopup *ep, EPopupItem *item, void *data) +ml_drop_popup_move(EPopup *ep, EPopupItem *item, gpointer data) { struct _drop_msg *m = data; @@ -2177,7 +2177,7 @@ ml_drop_popup_move(EPopup *ep, EPopupItem *item, void *data) } static void -ml_drop_popup_cancel(EPopup *ep, EPopupItem *item, void *data) +ml_drop_popup_cancel(EPopup *ep, EPopupItem *item, gpointer data) { struct _drop_msg *m = data; @@ -2193,7 +2193,7 @@ static EPopupItem ml_drop_popup_menu[] = { }; static void -ml_drop_popup_free(EPopup *ep, GSList *items, void *data) +ml_drop_popup_free(EPopup *ep, GSList *items, gpointer data) { g_slist_free(items); @@ -2201,7 +2201,7 @@ ml_drop_popup_free(EPopup *ep, GSList *items, void *data) } static void -ml_tree_drag_data_received (ETree *tree, int row, ETreePath path, int col, +ml_tree_drag_data_received (ETree *tree, gint row, ETreePath path, gint col, GdkDragContext *context, gint x, gint y, GtkSelectionData *data, guint info, guint time, MessageList *ml) @@ -2230,7 +2230,7 @@ ml_tree_drag_data_received (ETree *tree, int row, ETreePath path, int col, EMPopup *emp; GSList *menus = NULL; GtkMenu *menu; - int i; + gint i; emp = em_popup_new("org.gnome.mail.messagelist.popup.drop"); for (i=0;itargets; targets; targets = targets->next) { - int i; + gint i; d(printf("atom drop '%s'\n", gdk_atom_name(targets->data))); for (i=0;idata == (void *)ml_drag_info[i].atom) + if (targets->data == (gpointer)ml_drag_info[i].atom) actions |= ml_drag_info[i].actions; } d(printf("\n")); @@ -2317,7 +2317,7 @@ ml_scrolled (GtkAdjustment *adj, MessageList *ml) } static void -on_model_row_changed (ETableModel *model, int row, MessageList *ml) +on_model_row_changed (ETableModel *model, gint row, MessageList *ml) { ml->priv->any_row_changed = TRUE; } @@ -2547,7 +2547,7 @@ message_list_class_init (MessageListClass *class) { GObjectClass *object_class; GtkObjectClass *gtk_object_class; - int i; + gint i; for (i=0;imodel = @@ -2750,7 +2750,7 @@ message_list_get_shell_backend (MessageList *message_list) } static void -clear_info(char *key, ETreePath *node, MessageList *ml) +clear_info(gchar *key, ETreePath *node, MessageList *ml) { CamelMessageInfo *info; @@ -2847,13 +2847,13 @@ is_node_selectable (MessageList *ml, CamelMessageInfo *info) /* We try and find something that is selectable in our tree. There is * actually no assurance that we'll find something that will still be * there next time, but its probably going to work most of the time. */ -static char * +static gchar * find_next_selectable (MessageList *ml) { ETreePath node; - int last; - int vrow_orig; - int vrow; + gint last; + gint vrow_orig; + gint vrow; ETree *et = ml->tree; CamelMessageInfo *info; @@ -2901,19 +2901,19 @@ find_next_selectable (MessageList *ml) #define BROKEN_ETREE /* avoid some broken code in etree(?) by not using the incremental update */ -static void build_subtree (MessageList *ml, ETreePath parent, CamelFolderThreadNode *c, int *row); +static void build_subtree (MessageList *ml, ETreePath parent, CamelFolderThreadNode *c, gint *row); -static void build_subtree_diff (MessageList *ml, ETreePath parent, ETreePath path, CamelFolderThreadNode *c, int *row); +static void build_subtree_diff (MessageList *ml, ETreePath parent, ETreePath path, CamelFolderThreadNode *c, gint *row); static void build_tree (MessageList *ml, CamelFolderThread *thread, CamelFolderChangeInfo *changes) { - int row = 0; + gint row = 0; ETreeModel *etm = ml->model; #ifndef BROKEN_ETREE ETreePath *top; #endif - char *saveuid = NULL; + gchar *saveuid = NULL; #ifdef BROKEN_ETREE GPtrArray *selected; #endif @@ -2955,7 +2955,7 @@ build_tree (MessageList *ml, CamelFolderThread *thread, CamelFolderChangeInfo *c message_list_free_uids(ml, selected); #else } else { - static int tree_equal(ETreeModel *etm, ETreePath ap, CamelFolderThreadNode *bp); + static gint tree_equal(ETreeModel *etm, ETreePath ap, CamelFolderThreadNode *bp); build_subtree_diff(ml, ml->tree_root, top, thread->tree, &row); top = e_tree_model_node_get_first_child(etm, ml->tree_root); @@ -2991,7 +2991,7 @@ build_tree (MessageList *ml, CamelFolderThread *thread, CamelFolderChangeInfo *c is faster than inserting to the right row :( */ /* Otherwise, this code would probably go as it does the same thing essentially */ static void -build_subtree (MessageList *ml, ETreePath parent, CamelFolderThreadNode *c, int *row) +build_subtree (MessageList *ml, ETreePath parent, CamelFolderThreadNode *c, gint *row) { ETreeModel *tree = ml->model; ETreePath node; @@ -3004,8 +3004,8 @@ build_subtree (MessageList *ml, ETreePath parent, CamelFolderThreadNode *c, int continue; } - node = e_tree_memory_node_insert(E_TREE_MEMORY(tree), parent, -1, (void *)c->message); - g_hash_table_insert(ml->uid_nodemap, (void *)camel_message_info_uid(c->message), node); + node = e_tree_memory_node_insert(E_TREE_MEMORY(tree), parent, -1, (gpointer)c->message); + g_hash_table_insert(ml->uid_nodemap, (gpointer)camel_message_info_uid(c->message), node); camel_folder_ref_message_info(ml->folder, (CamelMessageInfo *)c->message); if (c->child) { @@ -3073,7 +3073,7 @@ tree_equal(ETreeModel *etm, ETreePath ap, CamelFolderThreadNode *bp) /* adds a single node, retains save state, and handles adding children if required */ static void -add_node_diff(MessageList *ml, ETreePath parent, ETreePath path, CamelFolderThreadNode *c, int *row, int myrow) +add_node_diff(MessageList *ml, ETreePath parent, ETreePath path, CamelFolderThreadNode *c, gint *row, gint myrow) { ETreeModel *etm = ml->model; ETreePath node; @@ -3082,8 +3082,8 @@ add_node_diff(MessageList *ml, ETreePath parent, ETreePath path, CamelFolderThre /* we just update the hashtable key, umm, does this leak the info on the message node? */ g_hash_table_remove(ml->uid_nodemap, camel_message_info_uid(c->message)); - node = e_tree_memory_node_insert(E_TREE_MEMORY(etm), parent, myrow, (void *)c->message); - g_hash_table_insert(ml->uid_nodemap, (void *)camel_message_info_uid(c->message), node); + node = e_tree_memory_node_insert(E_TREE_MEMORY(etm), parent, myrow, (gpointer)c->message); + g_hash_table_insert(ml->uid_nodemap, (gpointer)camel_message_info_uid(c->message), node); camel_folder_ref_message_info(ml->folder, (CamelMessageInfo *)c->message); (*row)++; @@ -3094,13 +3094,13 @@ add_node_diff(MessageList *ml, ETreePath parent, ETreePath path, CamelFolderThre /* removes node, children recursively and all associated data */ static void -remove_node_diff(MessageList *ml, ETreePath node, int depth) +remove_node_diff(MessageList *ml, ETreePath node, gint depth) { ETreeModel *etm = ml->model; ETreePath cp, cn; CamelMessageInfo *info; - t(printf("Removing node: %s\n", (char *)e_tree_memory_node_get_data(etm, node))); + t(printf("Removing node: %s\n", (gchar *)e_tree_memory_node_get_data(etm, node))); /* we depth-first remove all node data's ... */ cp = e_tree_model_node_get_first_child(etm, node); @@ -3125,12 +3125,12 @@ remove_node_diff(MessageList *ml, ETreePath node, int depth) /* applies a new tree structure to an existing tree, but only by changing things that have changed */ static void -build_subtree_diff(MessageList *ml, ETreePath parent, ETreePath path, CamelFolderThreadNode *c, int *row) +build_subtree_diff(MessageList *ml, ETreePath parent, ETreePath path, CamelFolderThreadNode *c, gint *row) { ETreeModel *etm = ml->model; ETreePath ap, *ai, *at, *tmp; CamelFolderThreadNode *bp, *bi, *bt; - int i, j, myrow = 0; + gint i, j, myrow = 0; ap = path; bp = c; @@ -3158,7 +3158,7 @@ build_subtree_diff(MessageList *ml, ETreePath parent, ETreePath path, CamelFolde /* if this is a message row, check/update the row id map */ if (g_hash_table_lookup_extended(ml->uid_rowmap, camel_message_info_uid(bp->message), &olduid, &oldrow)) { if ((int)oldrow != (*row)) { - g_hash_table_insert(ml->uid_rowmap, olduid, (void *)(*row)); + g_hash_table_insert(ml->uid_rowmap, olduid, (gpointer)(*row)); } } else { g_warning("Cannot find uid %s in table?", camel_message_info_uid(bp->message)); @@ -3241,8 +3241,8 @@ static void build_flat (MessageList *ml, GPtrArray *summary, CamelFolderChangeInfo *changes) { ETreeModel *etm = ml->model; - char *saveuid = NULL; - int i; + gchar *saveuid = NULL; + gint i; #ifdef BROKEN_ETREE GPtrArray *selected; #endif @@ -3271,7 +3271,7 @@ build_flat (MessageList *ml, GPtrArray *summary, CamelFolderChangeInfo *changes) CamelMessageInfo *info = summary->pdata[i]; node = e_tree_memory_node_insert(E_TREE_MEMORY(etm), ml->tree_root, -1, info); - g_hash_table_insert(ml->uid_nodemap, (void *)camel_message_info_uid(info), node); + g_hash_table_insert(ml->uid_nodemap, (gpointer)camel_message_info_uid(info), node); camel_folder_ref_message_info(ml->folder, info); } e_tree_memory_thaw(E_TREE_MEMORY(etm)); @@ -3324,7 +3324,7 @@ message_list_change_first_visible_parent (MessageList *ml, ETreePath node) static void build_flat_diff(MessageList *ml, CamelFolderChangeInfo *changes) { - int i; + gint i; ETreePath node; CamelMessageInfo *info; @@ -3354,9 +3354,9 @@ build_flat_diff(MessageList *ml, CamelFolderChangeInfo *changes) for (i=0;iuid_added->len;i++) { info = camel_folder_get_message_info (ml->folder, changes->uid_added->pdata[i]); if (info) { - d(printf(" %s\n", (char *)changes->uid_added->pdata[i])); + d(printf(" %s\n", (gchar *)changes->uid_added->pdata[i])); node = e_tree_memory_node_insert (E_TREE_MEMORY (ml->model), ml->tree_root, -1, info); - g_hash_table_insert (ml->uid_nodemap, (void *)camel_message_info_uid (info), node); + g_hash_table_insert (ml->uid_nodemap, (gpointer)camel_message_info_uid (info), node); } } @@ -3384,11 +3384,11 @@ build_flat_diff(MessageList *ml, CamelFolderChangeInfo *changes) static void -mail_folder_hide_by_flag (CamelFolder *folder, MessageList *ml, CamelFolderChangeInfo **changes, int flag) +mail_folder_hide_by_flag (CamelFolder *folder, MessageList *ml, CamelFolderChangeInfo **changes, gint flag) { CamelFolderChangeInfo *newchanges, *oldchanges = *changes; CamelMessageInfo *info; - int i; + gint i; newchanges = camel_folder_change_info_new (); @@ -3428,7 +3428,7 @@ main_folder_changed (CamelObject *o, gpointer event_data, gpointer user_data) MessageList *ml = MESSAGE_LIST (user_data); CamelFolderChangeInfo *changes = (CamelFolderChangeInfo *)event_data; CamelFolder *folder = (CamelFolder *)o; - int i; + gint i; /* may be NULL if we're in the process of being destroyed */ if (ml->async_event == NULL) @@ -3500,7 +3500,7 @@ folder_changed (CamelObject *o, gpointer event_data, gpointer user_data) * the "Outgoing folder" column view. **/ void -message_list_set_folder (MessageList *message_list, CamelFolder *folder, const char *uri, gboolean outgoing) +message_list_set_folder (MessageList *message_list, CamelFolder *folder, const gchar *uri, gboolean outgoing) { ETreeModel *etm = message_list->model; gboolean hide_deleted; @@ -3558,7 +3558,7 @@ message_list_set_folder (MessageList *message_list, CamelFolder *folder, const c } if (folder) { - int strikeout_col = -1; + gint strikeout_col = -1; ECell *cell; camel_object_ref (folder); @@ -3605,7 +3605,7 @@ on_cursor_activated_idle (gpointer data) { MessageList *message_list = data; ESelectionModel *esm = e_tree_get_selection_model (message_list->tree); - int selected = e_selection_model_selected_count (esm); + gint selected = e_selection_model_selected_count (esm); if (selected == 1 && message_list->cursor_uid) { d(printf ("emitting cursor changed signal, for uid %s\n", message_list->cursor_uid)); @@ -3619,10 +3619,10 @@ on_cursor_activated_idle (gpointer data) } static void -on_cursor_activated_cmd (ETree *tree, int row, ETreePath path, gpointer user_data) +on_cursor_activated_cmd (ETree *tree, gint row, ETreePath path, gpointer user_data) { MessageList *message_list = MESSAGE_LIST (user_data); - const char *new_uid; + const gchar *new_uid; if (path == NULL) new_uid = NULL; @@ -3652,7 +3652,7 @@ static void on_selection_changed_cmd(ETree *tree, MessageList *ml) { GPtrArray *uids; - char *newuid; + gchar *newuid; ETreePath cursor; /* not sure if we could just ignore this for the cursor, i think sometimes you @@ -3661,7 +3661,7 @@ on_selection_changed_cmd(ETree *tree, MessageList *ml) if (uids->len == 1) newuid = uids->pdata[0]; else if ((cursor = e_tree_get_cursor(tree))) - newuid = (char *)camel_message_info_uid(e_tree_memory_node_get_data((ETreeMemory *)tree, cursor)); + newuid = (gchar *)camel_message_info_uid(e_tree_memory_node_get_data((ETreeMemory *)tree, cursor)); else newuid = NULL; @@ -3687,7 +3687,7 @@ static gint on_click (ETree *tree, gint row, ETreePath path, gint col, GdkEvent *event, MessageList *list) { CamelMessageInfo *info; - int flag; + gint flag; guint32 flags; if (col == COL_MESSAGE_STATUS) @@ -3729,10 +3729,10 @@ struct _ml_selected_data { }; static void -ml_getselected_cb(ETreePath path, void *user_data) +ml_getselected_cb(ETreePath path, gpointer user_data) { struct _ml_selected_data *data = user_data; - const char *uid; + const gchar *uid; if (e_tree_model_node_is_root (data->ml->model, path)) return; @@ -3777,7 +3777,7 @@ message_list_get_selected(MessageList *ml) void message_list_set_selected(MessageList *ml, GPtrArray *uids) { - int i; + gint i; ETreeSelectionModel *etsm; ETreePath node; GPtrArray *paths = g_ptr_array_new(); @@ -3814,7 +3814,7 @@ message_list_thaw(MessageList *ml) void message_list_free_uids(MessageList *ml, GPtrArray *uids) { - int i; + gint i; for (i=0;ilen;i++) g_free(uids->pdata[i]); @@ -3867,7 +3867,7 @@ message_list_set_hidedeleted (MessageList *ml, gboolean hidedeleted) } void -message_list_set_search (MessageList *ml, const char *search) +message_list_set_search (MessageList *ml, const gchar *search) { if (search == NULL || search[0] == '\0') if (ml->search == NULL || ml->search[0] == '\0') @@ -3891,7 +3891,7 @@ message_list_set_search (MessageList *ml, const char *search) /* will ensure that the message with UID uid will be in the message list after the next rebuild */ void -message_list_ensure_message (MessageList *ml, const char *uid) +message_list_ensure_message (MessageList *ml, const gchar *uid) { g_return_if_fail (ml != NULL); @@ -3907,12 +3907,12 @@ message_list_length (MessageList *ml) } struct _glibsuxcrap { - unsigned int count; + guint count; CamelFolder *folder; }; static void -glib_crapback(void *key, void *data, void *x) +glib_crapback(gpointer key, gpointer data, gpointer x) { struct _glibsuxcrap *y = x; CamelMessageInfo *mi; @@ -3931,7 +3931,7 @@ glib_crapback(void *key, void *data, void *x) unsigned int message_list_hidden(MessageList *ml) { - unsigned int hidden = 0; + guint hidden = 0; MESSAGE_LIST_LOCK (ml, hide_lock); if (ml->hidden && ml->folder) { @@ -3959,7 +3959,7 @@ message_list_hidden(MessageList *ml) 100 messages. */ void -message_list_hide_add (MessageList *ml, const char *expr, unsigned int lower, unsigned int upper) +message_list_hide_add (MessageList *ml, const gchar *expr, guint lower, guint upper) { MESSAGE_LIST_LOCK (ml, hide_lock); @@ -3977,8 +3977,8 @@ message_list_hide_add (MessageList *ml, const char *expr, unsigned int lower, un void message_list_hide_uids (MessageList *ml, GPtrArray *uids) { - int i; - char *uid; + gint i; + gchar *uid; /* first see if we need to do any work, if so, then do it all at once */ for (i = 0; i < uids->len; i++) { @@ -4045,7 +4045,7 @@ message_list_hide_clear (MessageList *ml) static void load_hide_state (MessageList *ml) { - char *filename; + gchar *filename; FILE *in; gint32 version, lower, upper; @@ -4071,7 +4071,7 @@ load_hide_state (MessageList *ml) camel_file_util_decode_fixed_int32 (in, &upper); ml->hide_after = upper; while (!feof(in)) { - char *olduid, *uid; + gchar *olduid, *uid; if (camel_file_util_decode_string (in, &olduid) != -1) { uid = e_mempool_strdup(ml->hidden_pool, olduid); @@ -4088,7 +4088,7 @@ load_hide_state (MessageList *ml) } static void -hide_save_1 (char *uid, char *keydata, FILE *out) +hide_save_1 (gchar *uid, gchar *keydata, FILE *out) { camel_file_util_encode_string (out, uid); } @@ -4098,7 +4098,7 @@ hide_save_1 (char *uid, char *keydata, FILE *out) static void save_hide_state (MessageList *ml) { - char *filename; + gchar *filename; FILE *out; if (ml->folder == NULL) @@ -4126,11 +4126,11 @@ save_hide_state (MessageList *ml) struct _regen_list_msg { MailMsg base; - int complete; + gint complete; MessageList *ml; - char *search; - char *hideexpr; + gchar *search; + gchar *hideexpr; CamelFolderChangeInfo *changes; gboolean dotree; /* we are building a tree */ gboolean hidedel; /* we want to/dont want to show deleted messages */ @@ -4141,7 +4141,7 @@ struct _regen_list_msg { CamelFolder *folder; GPtrArray *summary; - int last_row; /* last selected (cursor) row */ + gint last_row; /* last selected (cursor) row */ xmlDoc *expand_state; /* stored expanded state of the previous view */ }; @@ -4168,7 +4168,7 @@ regen_list_exec (struct _regen_list_msg *m) GPtrArray *uids, *uidnew, *showuids, *searchuids = NULL; CamelMessageInfo *info; ETreePath cursor; - int i; + gint i; gchar *expr = NULL; if (m->folder != m->ml->folder) @@ -4218,7 +4218,7 @@ regen_list_exec (struct _regen_list_msg *m) thus we will keep the selected message to be sure it doesn't disappear because it no longer belong to our search filter. */ if (uids && ((m->changes && m->ml->cursor_uid) || m->ml->ensure_uid)) { - const char *looking_for = m->ml->cursor_uid; + const gchar *looking_for = m->ml->cursor_uid; /* ensure_uid has precedence of cursor_uid */ if (m->ml->ensure_uid) looking_for = m->ml->ensure_uid; @@ -4269,7 +4269,7 @@ regen_list_exec (struct _regen_list_msg *m) for (i = 0; i < uidnew->len; i++) { if (g_hash_table_lookup (m->ml->hidden, uidnew->pdata[i]) == NULL) { - char *uid = e_mempool_strdup (m->ml->hidden_pool, uidnew->pdata[i]); + gchar *uid = e_mempool_strdup (m->ml->hidden_pool, uidnew->pdata[i]); g_hash_table_insert (m->ml->hidden, uid, uid); } } @@ -4289,12 +4289,12 @@ regen_list_exec (struct _regen_list_msg *m) /* perform uid hiding */ if (m->ml->hidden || m->ml->hide_before != ML_HIDE_NONE_START || m->ml->hide_after != ML_HIDE_NONE_END) { - int start, end; + gint start, end; uidnew = g_ptr_array_new (); /* first, hide matches */ if (m->ml->hidden) { - int subtr = 0; + gint subtr = 0; for (i = 0; i < uids->len; i++) { if (g_hash_table_lookup (m->ml->hidden, uids->pdata[i]) == NULL) @@ -4302,7 +4302,7 @@ regen_list_exec (struct _regen_list_msg *m) else if (m->last_row >= 0) { /* if we are going to hide message above last selected row, then we should decrease our last row number, to put cursor on a proper place. */ - ETreePath node = g_hash_table_lookup (m->ml->uid_nodemap, (const char *) uids->pdata[i]); + ETreePath node = g_hash_table_lookup (m->ml->uid_nodemap, (const gchar *) uids->pdata[i]); if (node && m->last_row > e_tree_table_adapter_row_of_node (e_tree_get_table_adapter (m->ml->tree), node)) subtr ++; @@ -4447,7 +4447,7 @@ regen_list_done (struct _regen_list_msg *m) g_mutex_unlock (m->ml->regen_lock); if (m->ml->regen == NULL && m->ml->pending_select_uid) { - char *uid = m->ml->pending_select_uid; + gchar *uid = m->ml->pending_select_uid; m->ml->pending_select_uid = NULL; message_list_select_uid(m->ml, uid); @@ -4485,7 +4485,7 @@ regen_list_done (struct _regen_list_msg *m) static void regen_list_free (struct _regen_list_msg *m) { - int i; + gint i; e_profile_event_emit("list.regenerated", m->folder->full_name, 0); @@ -4573,7 +4573,7 @@ mail_regen_cancel(MessageList *ml) } static void -mail_regen_list (MessageList *ml, const char *search, const char *hideexpr, CamelFolderChangeInfo *changes) +mail_regen_list (MessageList *ml, const gchar *search, const gchar *hideexpr, CamelFolderChangeInfo *changes) { struct _regen_list_msg *m; GConfClient *gconf; @@ -4632,7 +4632,7 @@ mail_regen_list (MessageList *ml, const char *search, const char *hideexpr, Came if (message_list_length (ml) <= 0) { if (GTK_WIDGET_VISIBLE (GTK_WIDGET (ml))) { /* there is some info why the message list is empty, let it be something useful */ - char *txt = g_strconcat (_("Generating message list"), "..." , NULL); + gchar *txt = g_strconcat (_("Generating message list"), "..." , NULL); e_tree_set_info_message (m->ml->tree, txt); -- cgit v1.2.3 From 14f8eee012382f04090ea9277e9567d5f32e8bf0 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 28 May 2009 13:06:29 -0400 Subject: Whitespace cleanup. --- mail/message-list.c | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 8050dba5ca..1291a1404c 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -1585,32 +1585,32 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, gint col, gpointer model_data folder = message_list->folder; } - url = mail_tools_folder_to_url (folder); - euri = em_uri_from_camel(url); - - account = mail_config_get_account_by_source_url (url); - - if (account) { - curl = camel_url_new (url, &ex); - location = g_strconcat (account->name, ":", curl->path, NULL); - } else { - /* Local account */ - euri = em_uri_from_camel(url); - curl = camel_url_new (euri, &ex); - if (curl->host && !strcmp(curl->host, "local") && curl->user && !strcmp(curl->user, "local")) - location = g_strconcat (_("On This Computer"), ":",curl->path, NULL); - } - - camel_exception_clear (&ex); + url = mail_tools_folder_to_url (folder); + euri = em_uri_from_camel(url); + + account = mail_config_get_account_by_source_url (url); + + if (account) { + curl = camel_url_new (url, &ex); + location = g_strconcat (account->name, ":", curl->path, NULL); + } else { + /* Local account */ + euri = em_uri_from_camel(url); + curl = camel_url_new (euri, &ex); + if (curl->host && !strcmp(curl->host, "local") && curl->user && !strcmp(curl->user, "local")) + location = g_strconcat (_("On This Computer"), ":",curl->path, NULL); + } + + camel_exception_clear (&ex); camel_url_free (curl); - g_free (url); - g_free (euri); + g_free (url); + g_free (euri); - return location; + return location; } case COL_MIXED_RECIPIENTS: case COL_RECIPIENTS:{ - str = camel_message_info_to (msg_info); + str = camel_message_info_to (msg_info); return sanitize_recipients(str); } @@ -1645,7 +1645,7 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, gint col, gpointer model_data } else return (gpointer) (""); } - default: + default: g_warning ("This shouldn't be reached\n"); return NULL; } @@ -1832,7 +1832,7 @@ static ECell * create_composite_cell (gint col) cell_sub = e_cell_text_new(fixed_name? fixed_name:NULL, GTK_JUSTIFY_LEFT); g_object_set (G_OBJECT (cell_sub), -/* "bold_column", COL_UNREAD, */ +/* "bold_column", COL_UNREAD, */ "color_column", COL_COLOUR, NULL); cell_tree = e_cell_tree_new (NULL, NULL, TRUE, cell_sub); @@ -2660,7 +2660,7 @@ message_list_construct (MessageList *message_list) e_tree_memory_set_expanded_default(E_TREE_MEMORY(message_list->model), read_boolean_with_default (gconf, - "/apps/evolution/mail/display/thread_expand", + "/apps/evolution/mail/display/thread_expand", TRUE)); message_list->priv->thread_latest = read_boolean_with_default (gconf, "/apps/evolution/mail/display/thread_latest", TRUE); @@ -4038,7 +4038,7 @@ message_list_hide_clear (MessageList *ml) /* version 1 file is: uintf 1 uintf hide_before - uintf hide_after + uintf hide_after string* uids */ -- cgit v1.2.3 From 433eac7844481b8ceda0bae8bf08f6bb623185b0 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Mon, 1 Jun 2009 19:09:19 -0400 Subject: More code cleanup. --- mail/message-list.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 1291a1404c..d28e9a9d0e 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -297,7 +297,7 @@ e_mail_address_free (EMailAddress *addr) /* Note: by the time this function is called, the strings have already been normalised which means we can assume all lowercase chars and we can just use strcmp for the final comparison. */ -static int +static gint e_mail_address_compare (gconstpointer address1, gconstpointer address2) { const EMailAddress *addr1 = address1; @@ -359,7 +359,7 @@ e_mail_address_compare (gconstpointer address1, gconstpointer address2) /* Note: by the time this function is called, the strings have already been normalised which means we can assume all lowercase chars and we can just use strcmp for the final comparison. */ -static int +static gint address_compare (gconstpointer address1, gconstpointer address2) { #ifdef SMART_ADDRESS_COMPARE @@ -479,12 +479,12 @@ get_normalised_string (MessageList *message_list, CamelMessageInfo *info, gint c subject += 3; /* jump over any spaces */ - while (*subject && isspace ((int) *subject)) + while (*subject && isspace ((gint) *subject)) subject++; } /* jump over any spaces */ - while (*subject && isspace ((int) *subject)) + while (*subject && isspace ((gint) *subject)) subject++; string = (const gchar *) subject; @@ -865,7 +865,7 @@ message_list_paste(MessageList *ml) /* * SimpleTableModel::col_count */ -static int +static gint ml_column_count (ETreeModel *etm, gpointer data) { return COL_LAST; @@ -1140,7 +1140,7 @@ ml_tree_icon_at (ETreeModel *etm, ETreePath path, gpointer model_data) } /* return true if there are any unread messages in the subtree */ -static int +static gint subtree_unread(MessageList *ml, ETreePath node) { CamelMessageInfo *info; @@ -1235,7 +1235,7 @@ sanitize_recipients (const gchar *string) return g_string_free (recipients, FALSE); } -static int +static gint get_all_labels (MessageList *message_list, CamelMessageInfo *msg_info, gchar **label_str, @@ -1384,7 +1384,7 @@ get_trimmed_subject (CamelMessageInfo *info) subject += 3; /* jump over any spaces */ - while (*subject && isspace ((int) *subject)) + while (*subject && isspace ((gint) *subject)) subject++; } @@ -1396,13 +1396,13 @@ get_trimmed_subject (CamelMessageInfo *info) found_mlist = TRUE; /* jump over any spaces */ - while (*subject && isspace ((int) *subject)) + while (*subject && isspace ((gint) *subject)) subject++; } } while (found_mlist); /* jump over any spaces */ - while (*subject && isspace ((int) *subject)) + while (*subject && isspace ((gint) *subject)) subject++; return subject; @@ -3017,7 +3017,7 @@ build_subtree (MessageList *ml, ETreePath parent, CamelFolderThreadNode *c, gint /* compares a thread tree node with the etable tree node to see if they point to the same object */ -static int +static gint node_equal(ETreeModel *etm, ETreePath ap, CamelFolderThreadNode *bp) { CamelMessageInfo *info; @@ -3032,7 +3032,7 @@ node_equal(ETreeModel *etm, ETreePath ap, CamelFolderThreadNode *bp) #ifndef BROKEN_ETREE /* debug function - compare the two trees to see if they are the same */ -static int +static gint tree_equal(ETreeModel *etm, ETreePath ap, CamelFolderThreadNode *bp) { CamelMessageInfo *info; @@ -3157,7 +3157,7 @@ build_subtree_diff(MessageList *ml, ETreePath parent, ETreePath path, CamelFolde gpointer olduid, oldrow; /* if this is a message row, check/update the row id map */ if (g_hash_table_lookup_extended(ml->uid_rowmap, camel_message_info_uid(bp->message), &olduid, &oldrow)) { - if ((int)oldrow != (*row)) { + if ((gint)oldrow != (*row)) { g_hash_table_insert(ml->uid_rowmap, olduid, (gpointer)(*row)); } } else { @@ -3900,7 +3900,7 @@ message_list_ensure_message (MessageList *ml, const gchar *uid) } /* returns the number of messages displayable *after* expression hiding has taken place */ -unsigned int +guint message_list_length (MessageList *ml) { return ml->hide_unhidden; @@ -3928,7 +3928,7 @@ glib_crapback(gpointer key, gpointer data, gpointer x) } /* returns 0 or 1 depending if there are hidden messages */ -unsigned int +guint message_list_hidden(MessageList *ml) { guint hidden = 0; @@ -3991,7 +3991,7 @@ message_list_hide_uids (MessageList *ml, GPtrArray *uids) uid = e_mempool_strdup (ml->hidden_pool, uids->pdata[i]); g_hash_table_insert (ml->hidden, uid, uid); - for ( ; i < uids->len; i++) { + for (; i < uids->len; i++) { if (g_hash_table_lookup (ml->uid_nodemap, uids->pdata[i])) { uid = e_mempool_strdup (ml->hidden_pool, uids->pdata[i]); g_hash_table_insert (ml->hidden, uid, uid); @@ -4657,7 +4657,7 @@ mail_regen_list (MessageList *ml, const gchar *search, const gchar *hideexpr, Ca } -double +gdouble message_list_get_scrollbar_position (MessageList *ml) { return gtk_range_get_value ((GtkRange *) ((GtkScrolledWindow *) ml)->vscrollbar); -- cgit v1.2.3 From 374bd42f69aca2e132fd854c9619f3d7491f1f96 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sun, 12 Jul 2009 23:33:07 -0400 Subject: Fix excessive whitespace. --- mail/message-list.c | 8 -------- 1 file changed, 8 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index d28e9a9d0e..d3db1f37ba 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -719,7 +719,6 @@ message_list_select_all (MessageList *message_list) e_selection_model_select_all (etsm); } - typedef struct thread_select_info { MessageList *ml; GPtrArray *paths; @@ -1081,7 +1080,6 @@ static const gchar *score_map[] = { N_("Highest"), }; - static gchar * ml_value_to_string (ETreeModel *etm, gint col, gconstpointer value, gpointer data) { @@ -2700,7 +2698,6 @@ message_list_construct (MessageList *message_list) g_signal_connect((message_list->tree), "selection_change", G_CALLBACK (on_selection_changed_cmd), message_list); - e_tree_drag_source_set(message_list->tree, GDK_BUTTON1_MASK, ml_drag_types, sizeof(ml_drag_types)/sizeof(ml_drag_types[0]), GDK_ACTION_MOVE|GDK_ACTION_COPY|GDK_ACTION_ASK); @@ -2843,7 +2840,6 @@ is_node_selectable (MessageList *ml, CamelMessageInfo *info) return FALSE; } - /* We try and find something that is selectable in our tree. There is * actually no assurance that we'll find something that will still be * there next time, but its probably going to work most of the time. */ @@ -3382,7 +3378,6 @@ build_flat_diff(MessageList *ml, CamelFolderChangeInfo *changes) } #endif /* ! BROKEN_ETREE */ - static void mail_folder_hide_by_flag (CamelFolder *folder, MessageList *ml, CamelFolderChangeInfo **changes, gint flag) { @@ -4391,7 +4386,6 @@ regen_list_done (struct _regen_list_msg *m) if (m->ml->priv->destroyed) return; - if (!m->complete) return; @@ -4656,14 +4650,12 @@ mail_regen_list (MessageList *ml, const gchar *search, const gchar *hideexpr, Ca } } - gdouble message_list_get_scrollbar_position (MessageList *ml) { return gtk_range_get_value ((GtkRange *) ((GtkScrolledWindow *) ml)->vscrollbar); } - void message_list_set_scrollbar_position (MessageList *ml, double pos) { -- cgit v1.2.3 From fa360fde289f9b850191f89059d1a5e6d67c07c7 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 18 Jul 2009 14:07:42 -0400 Subject: More whitespace cleanup. --- mail/message-list.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index d3db1f37ba..8f96a27f55 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -927,7 +927,7 @@ ml_get_node_by_id (ETreeModel *etm, const gchar *save_id, gpointer data) static gpointer ml_duplicate_value (ETreeModel *etm, gint col, gconstpointer value, gpointer data) { - switch (col){ + switch (col) { case COL_MESSAGE_STATUS: case COL_FLAGGED: case COL_SCORE: @@ -961,7 +961,7 @@ ml_duplicate_value (ETreeModel *etm, gint col, gconstpointer value, gpointer dat static void ml_free_value (ETreeModel *etm, gint col, gpointer value, gpointer data) { - switch (col){ + switch (col) { case COL_MESSAGE_STATUS: case COL_FLAGGED: case COL_SCORE: @@ -995,7 +995,7 @@ ml_free_value (ETreeModel *etm, gint col, gpointer value, gpointer data) static gpointer ml_initialize_value (ETreeModel *etm, gint col, gpointer data) { - switch (col){ + switch (col) { case COL_MESSAGE_STATUS: case COL_FLAGGED: case COL_SCORE: @@ -1030,7 +1030,7 @@ ml_initialize_value (ETreeModel *etm, gint col, gpointer data) static gboolean ml_value_is_empty (ETreeModel *etm, gint col, gconstpointer value, gpointer data) { - switch (col){ + switch (col) { case COL_MESSAGE_STATUS: case COL_FLAGGED: case COL_SCORE: @@ -1085,7 +1085,7 @@ ml_value_to_string (ETreeModel *etm, gint col, gconstpointer value, gpointer dat { guint i; - switch (col){ + switch (col) { case COL_MESSAGE_STATUS: i = GPOINTER_TO_UINT(value); if (i > 5) @@ -1425,7 +1425,7 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, gint col, gpointer model_data msg_info = e_tree_memory_node_get_data (E_TREE_MEMORY(etm), path); g_return_val_if_fail (msg_info != NULL, NULL); - switch (col){ + switch (col) { case COL_MESSAGE_STATUS: flags = camel_message_info_flags(msg_info); if (flags & CAMEL_MESSAGE_ANSWERED) @@ -1616,7 +1616,7 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, gint col, gpointer model_data case COL_SENDER:{ gchar **sender_name = NULL; str = camel_message_info_from (msg_info); - if(str && str[0] != '\0'){ + if (str && str[0] != '\0') { gchar *res; sender_name = g_strsplit (str,"<",2); res = g_strdup (*sender_name); @@ -3912,7 +3912,7 @@ glib_crapback(gpointer key, gpointer data, gpointer x) struct _glibsuxcrap *y = x; CamelMessageInfo *mi; - if(y->count) + if (y->count) return; mi = camel_folder_get_message_info(y->folder, key); -- cgit v1.2.3 From 45d475c31b2dbda8033021984ba9a429b9eddf51 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sun, 9 Aug 2009 20:03:24 -0400 Subject: Kill EMMenu and EMPopup. Also finish adapting Templates plugin to EPluginUI. It was still leaning pretty hard on EMPopup. --- mail/message-list.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index ce1b20123e..b80431d5ff 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -70,7 +70,6 @@ #include "table/e-cell-hbox.h" #include "e-mail-label-list-store.h" -#include "em-popup.h" #include "em-utils.h" #include "mail-config.h" #include "mail-mt.h" @@ -2156,6 +2155,7 @@ ml_drop_action(struct _drop_msg *m) mail_msg_unordered_push (m); } +#if 0 /* KILL-BONOBO */ static void ml_drop_popup_copy(EPopup *ep, EPopupItem *item, gpointer data) { @@ -2241,6 +2241,7 @@ ml_tree_drag_data_received (ETree *tree, gint row, ETreePath path, gint col, ml_drop_action(m); } } +#endif struct search_child_struct { gboolean found; @@ -2709,8 +2710,10 @@ message_list_construct (MessageList *message_list) ml_drop_types, sizeof(ml_drop_types)/sizeof(ml_drop_types[0]), GDK_ACTION_MOVE|GDK_ACTION_COPY|GDK_ACTION_ASK); +#if 0 /* KILL-BONOBO */ g_signal_connect(message_list->tree, "tree_drag_data_received", G_CALLBACK(ml_tree_drag_data_received), message_list); +#endif g_signal_connect(message_list->tree, "drag-motion", G_CALLBACK(ml_tree_drag_motion), message_list); } -- cgit v1.2.3 From 50302d03b3ce145b165db2ddef4e92ad190cbef9 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Tue, 4 Aug 2009 15:04:02 +0200 Subject: Bug #205137 - Configurable date formats in components --- mail/message-list.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index b80431d5ff..7e0fb9b4c2 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -1811,7 +1811,8 @@ static ECell * create_composite_cell (gint col) images [i] = states_pixmaps [i + 6].pixbuf; cell_attach = e_cell_toggle_new (0, 2, images); - cell_date = e_cell_date_new(NULL, GTK_JUSTIFY_RIGHT); + cell_date = e_cell_date_new (NULL, GTK_JUSTIFY_RIGHT); + e_cell_date_set_format_component (E_CELL_DATE (cell_date), "mail"); g_object_set (G_OBJECT (cell_date), "bold_column", COL_UNREAD, "color_column", COL_COLOUR, @@ -1894,6 +1895,7 @@ message_list_create_extras (void) /* date cell */ cell = e_cell_date_new (NULL, GTK_JUSTIFY_LEFT); + e_cell_date_set_format_component (E_CELL_DATE (cell), "mail"); g_object_set (G_OBJECT (cell), "bold_column", COL_UNREAD, "color_column", COL_COLOUR, @@ -1927,6 +1929,10 @@ message_list_create_extras (void) cell = create_composite_cell (COL_TO); e_table_extras_add_cell (extras, "render_composite_to", cell); + /* set proper format component for a default 'date' cell renderer */ + cell = e_table_extras_get_cell (extras, "date"); + e_cell_date_set_format_component (E_CELL_DATE (cell), "mail"); + return extras; } -- cgit v1.2.3 From 9ff9063fe66817737f89decc3fdadb473fa51278 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Mon, 17 Aug 2009 16:54:42 -0400 Subject: =?UTF-8?q?Bug=C2=A0591829=20-=20Dragging=20mails=20to=20folder=20?= =?UTF-8?q?tree=20does=20not=20work?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mail/message-list.c | 71 +++-------------------------------------------------- 1 file changed, 4 insertions(+), 67 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 7e0fb9b4c2..714768ef21 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -131,7 +131,7 @@ static struct { GdkAtom atom; guint32 actions; } ml_drag_info[] = { - { "x-uid-list", NULL, GDK_ACTION_ASK|GDK_ACTION_MOVE|GDK_ACTION_COPY }, + { "x-uid-list", NULL, GDK_ACTION_MOVE|GDK_ACTION_COPY }, { "message/rfc822", NULL, GDK_ACTION_COPY }, { "text/uri-list", NULL, GDK_ACTION_COPY }, }; @@ -2161,49 +2161,6 @@ ml_drop_action(struct _drop_msg *m) mail_msg_unordered_push (m); } -#if 0 /* KILL-BONOBO */ -static void -ml_drop_popup_copy(EPopup *ep, EPopupItem *item, gpointer data) -{ - struct _drop_msg *m = data; - - m->action = GDK_ACTION_COPY; - ml_drop_action(m); -} - -static void -ml_drop_popup_move(EPopup *ep, EPopupItem *item, gpointer data) -{ - struct _drop_msg *m = data; - - m->action = GDK_ACTION_MOVE; - ml_drop_action(m); -} - -static void -ml_drop_popup_cancel(EPopup *ep, EPopupItem *item, gpointer data) -{ - struct _drop_msg *m = data; - - m->aborted = TRUE; - mail_msg_unref(m); -} - -static EPopupItem ml_drop_popup_menu[] = { - { E_POPUP_ITEM, (gchar *) "00.emc.02", (gchar *) N_("_Copy"), ml_drop_popup_copy, NULL, (gchar *) "folder-copy", 0 }, - { E_POPUP_ITEM, (gchar *) "00.emc.03", (gchar *) N_("_Move"), ml_drop_popup_move, NULL, (gchar *) "folder-move", 0 }, - { E_POPUP_BAR, (gchar *) "10.emc" }, - { E_POPUP_ITEM, (gchar *) "99.emc.00", (gchar *) N_("Cancel _Drag"), ml_drop_popup_cancel, NULL, NULL, 0 }, -}; - -static void -ml_drop_popup_free(EPopup *ep, GSList *items, gpointer data) -{ - g_slist_free(items); - - /* FIXME: free data if no item was selected? */ -} - static void ml_tree_drag_data_received (ETree *tree, gint row, ETreePath path, gint col, GdkDragContext *context, gint x, gint y, @@ -2230,24 +2187,8 @@ ml_tree_drag_data_received (ETree *tree, gint row, ETreePath path, gint col, memcpy(m->selection->data, data->data, data->length); m->selection->length = data->length; - if (context->action == GDK_ACTION_ASK) { - EMPopup *emp; - GSList *menus = NULL; - GtkMenu *menu; - gint i; - - emp = em_popup_new("org.gnome.mail.messagelist.popup.drop"); - for (i=0;isuggested_action; if (action == GDK_ACTION_COPY && (actions & GDK_ACTION_MOVE)) action = GDK_ACTION_MOVE; - else if (action == GDK_ACTION_ASK && (actions & (GDK_ACTION_MOVE|GDK_ACTION_COPY)) != (GDK_ACTION_MOVE|GDK_ACTION_COPY)) - action = GDK_ACTION_MOVE; gdk_drag_status(context, action, time); @@ -2707,19 +2646,17 @@ message_list_construct (MessageList *message_list) e_tree_drag_source_set(message_list->tree, GDK_BUTTON1_MASK, ml_drag_types, sizeof(ml_drag_types)/sizeof(ml_drag_types[0]), - GDK_ACTION_MOVE|GDK_ACTION_COPY|GDK_ACTION_ASK); + GDK_ACTION_MOVE|GDK_ACTION_COPY); g_signal_connect(message_list->tree, "tree_drag_data_get", G_CALLBACK(ml_tree_drag_data_get), message_list); e_tree_drag_dest_set(message_list->tree, GTK_DEST_DEFAULT_ALL, ml_drop_types, sizeof(ml_drop_types)/sizeof(ml_drop_types[0]), - GDK_ACTION_MOVE|GDK_ACTION_COPY|GDK_ACTION_ASK); + GDK_ACTION_MOVE|GDK_ACTION_COPY); -#if 0 /* KILL-BONOBO */ g_signal_connect(message_list->tree, "tree_drag_data_received", G_CALLBACK(ml_tree_drag_data_received), message_list); -#endif g_signal_connect(message_list->tree, "drag-motion", G_CALLBACK(ml_tree_drag_motion), message_list); } -- cgit v1.2.3