diff options
author | Matthew Barnes <mbarnes@src.gnome.org> | 2008-08-15 04:19:12 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@src.gnome.org> | 2008-08-15 04:19:12 +0800 |
commit | 7ade227e6409c98a4010992450e111cf7bb10520 (patch) | |
tree | bdd716d894ae2f3b1affaa6bb68950a89441db13 /mail | |
parent | cca29c3424aede2bb3c9ec5a6d255ce490d3511b (diff) | |
download | gsoc2013-evolution-7ade227e6409c98a4010992450e111cf7bb10520.tar gsoc2013-evolution-7ade227e6409c98a4010992450e111cf7bb10520.tar.gz gsoc2013-evolution-7ade227e6409c98a4010992450e111cf7bb10520.tar.bz2 gsoc2013-evolution-7ade227e6409c98a4010992450e111cf7bb10520.tar.lz gsoc2013-evolution-7ade227e6409c98a4010992450e111cf7bb10520.tar.xz gsoc2013-evolution-7ade227e6409c98a4010992450e111cf7bb10520.tar.zst gsoc2013-evolution-7ade227e6409c98a4010992450e111cf7bb10520.zip |
Merge revisions 35951:35992 from trunk.
svn path=/branches/kill-bonobo/; revision=35994
Diffstat (limited to 'mail')
-rw-r--r-- | mail/ChangeLog | 66 | ||||
-rw-r--r-- | mail/em-config.c | 1 | ||||
-rw-r--r-- | mail/em-event.c | 1 | ||||
-rw-r--r-- | mail/em-folder-browser.c | 25 | ||||
-rw-r--r-- | mail/em-folder-utils.c | 1 | ||||
-rw-r--r-- | mail/em-format-hook.c | 2 | ||||
-rw-r--r-- | mail/em-format-html-display.c | 15 | ||||
-rw-r--r-- | mail/em-format-html.c | 1 | ||||
-rw-r--r-- | mail/em-junk-hook.c | 1 | ||||
-rw-r--r-- | mail/em-menu.c | 1 | ||||
-rw-r--r-- | mail/em-network-prefs.c | 1 | ||||
-rw-r--r-- | mail/em-popup.c | 1 | ||||
-rw-r--r-- | mail/mail-mt.c | 7 | ||||
-rw-r--r-- | mail/mail-send-recv.c | 17 | ||||
-rw-r--r-- | mail/message-list.c | 106 | ||||
-rw-r--r-- | mail/message-tag-followup.c | 17 | ||||
-rw-r--r-- | mail/searchtypes.xml | 15 |
17 files changed, 201 insertions, 77 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 84f7066075..df3c3b1f60 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,69 @@ +2008-08-13 Moritz Mertinkat <moritz@mertinkat.net> + + * em-format-html.c: Added meaningful user agent for HTTP requests + used to load remote images. The original part (CamelHttpStream/1.0) + has been kept for backward compatibility. + +2008-08-12 Milan Crha <mcrha@redhat.com> + + ** Fix for bug #519292 + + * message-list.c: (read_boolean_with_default), + (message_list_construct): Read 'thread_expand' and 'thread_latest' + safely with TRUE as default if key doesn't exist. + +2008-08-11 Matthew Barnes <mbarnes@redhat.com> + + ** Fixes part of bug #546892 + + * em-folder-browser.c: + * em-format-html-display.c: + * mail-send-recv.c: + * message-tag-followup.c: + Prefer gtk_image_new_from_icon_name() over e_icon_factory_get_image(). + + * mail-send-recv.c: + * message-tag-followup.c: + Prefer gtk_window_set_icon_name() over gtk_window_set_icon_list(). + + * mail-mt.c: + e_activity_handler_cancelable_operation_started() no longer takes a + GdkPixbuf. It was ignoring the pixbuf anyway ever since we added a + spinner icon. + +2008-08-11 Milan Crha <mcrha@redhat.com> + + ** Fix for bug #519292 + + * message-list.c: (load_tree_expand_all): Drop function. + * message-list.c: (regen_list_done): Rather use desired expanded state + value when creating the tree instead of the default model's value for + this to have 'expand/collapse all' commands work better and quicker. + +2008-08-11 Milan Crha <mcrha@redhat.com> + + ** Fix for bug #352695 + + * message-list.c: (struct _MessageListPrivate), (save_tree_state), + (load_tree_state), (on_model_row_changed), (message_list_init), + (message_list_construct), (struct _regen_list_msg), (regen_list_done), + (regen_list_free), (mail_regen_list): Be able to recognize whether + there has been any change on any row in a list and save expanded + state only in case there was any change. Also use in-memory storing + of the expanded state in case we do not want to rewrite full view + It's for searches only, and it's not stored between sessions. + +2008-08-11 Srinivasa Ragavan <sragavan@novell.com> + + ** Part fix for bug #529743 + + * searchtypes.xml: Support Subject or Recipients contain search. + +2008-08-11 Srinivasa Ragavan <sragavan@novell.com> + + * mail/message-list.c: Don't use uninitialized exception. It leads to + freeing uninitialized memory. + 2008-08-07 Paul Bolle <pebolle@tiscali.nl> ** Fix for bug #546788 diff --git a/mail/em-config.c b/mail/em-config.c index f350074701..b4e9e3c981 100644 --- a/mail/em-config.c +++ b/mail/em-config.c @@ -33,7 +33,6 @@ #include "em-config.h" #include "libedataserver/e-msgport.h" -#include <e-util/e-icon-factory.h> #include "em-utils.h" #include "em-composer-utils.h" diff --git a/mail/em-event.c b/mail/em-event.c index 2ce8d8afc0..950f2488fb 100644 --- a/mail/em-event.c +++ b/mail/em-event.c @@ -32,7 +32,6 @@ #include "em-event.h" #include "composer/e-msg-composer.h" #include "libedataserver/e-msgport.h" -#include <e-util/e-icon-factory.h> #include <camel/camel-store.h> #include <camel/camel-folder.h> diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index 5871cfc4cc..4b25b560f7 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -293,10 +293,19 @@ generate_viewoption_menu (GtkWidget *emfv) for (i = 0; emfb_view_items[i].search.id != -1; ++i) { if (emfb_view_items[i].search.text) { char *str; + str = e_str_without_underscores (_(emfb_view_items[i].search.text)); menu_item = gtk_image_menu_item_new_with_label (str); - if (emfb_view_items[i].image) - gtk_image_menu_item_set_image ((GtkImageMenuItem *)menu_item, e_icon_factory_get_image (emfb_view_items[i].image, E_ICON_SIZE_MENU)); + if (emfb_view_items[i].image) { + GtkWidget *image; + + image = gtk_image_new_from_icon_name ( + emfb_view_items[i].image, + GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image ( + GTK_IMAGE_MENU_ITEM (menu_item), + image); + } g_free (str); } else { menu_item = gtk_menu_item_new (); @@ -351,8 +360,16 @@ generate_viewoption_menu (GtkWidget *emfv) char *str; str = e_str_without_underscores (_(temp_view_items[i].search.text)); menu_item = gtk_image_menu_item_new_with_label (str); - if (temp_view_items[i].image) - gtk_image_menu_item_set_image ((GtkImageMenuItem *)menu_item, e_icon_factory_get_image (temp_view_items[i].image, E_ICON_SIZE_MENU)); + if (temp_view_items[i].image) { + GtkWidget *image; + + image = gtk_image_new_from_icon_name ( + temp_view_items[i].image, + GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image ( + GTK_IMAGE_MENU_ITEM (menu_item), + image); + } g_free (str); } else { menu_item = gtk_menu_item_new (); diff --git a/mail/em-folder-utils.c b/mail/em-folder-utils.c index 551d14bcec..b1ec99f25e 100644 --- a/mail/em-folder-utils.c +++ b/mail/em-folder-utils.c @@ -51,7 +51,6 @@ #include "e-util/e-mktemp.h" #include "e-util/e-request.h" -#include "e-util/e-icon-factory.h" #include "e-util/e-error.h" diff --git a/mail/em-format-hook.c b/mail/em-format-hook.c index d548418493..58d0563887 100644 --- a/mail/em-format-hook.c +++ b/mail/em-format-hook.c @@ -31,8 +31,6 @@ #include "em-format-hook.h" -#include <e-util/e-icon-factory.h> - #include <glib/gi18n.h> diff --git a/mail/em-format-html-display.c b/mail/em-format-html-display.c index 36b7e74cf6..199ff19b67 100644 --- a/mail/em-format-html-display.c +++ b/mail/em-format-html-display.c @@ -1181,15 +1181,16 @@ efhd_xpkcs7mime_button(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObje { GtkWidget *icon, *button; struct _smime_pobject *po = (struct _smime_pobject *)pobject; - const char *name; + const char *icon_name; /* FIXME: need to have it based on encryption and signing too */ if (po->valid->sign.status != 0) - name = smime_sign_table[po->valid->sign.status].icon; + icon_name = smime_sign_table[po->valid->sign.status].icon; else - name = smime_encrypt_table[po->valid->encrypt.status].icon; + icon_name = smime_encrypt_table[po->valid->encrypt.status].icon; - icon = e_icon_factory_get_image (name, E_ICON_SIZE_LARGE_TOOLBAR); + icon = gtk_image_new_from_icon_name ( + icon_name, GTK_ICON_SIZE_LARGE_TOOLBAR); gtk_widget_show(icon); button = gtk_button_new(); @@ -2371,7 +2372,8 @@ efhd_attachment_optional(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPOb button = gtk_button_new(); hbox = gtk_hbox_new (FALSE, 0); - img = e_icon_factory_get_image ("stock_show-all", E_ICON_SIZE_BUTTON); + img = gtk_image_new_from_icon_name ( + "stock_show-all", GTK_ICON_SIZE_BUTTON); label = gtk_label_new_with_mnemonic(_("View _Unformatted")); g_object_set_data (G_OBJECT (button), "text-label", (gpointer)label); gtk_box_pack_start (GTK_BOX (hbox), img, TRUE, TRUE, 2); @@ -2390,7 +2392,8 @@ efhd_attachment_optional(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPOb button = gtk_button_new(); hbox = gtk_hbox_new (FALSE, 0); - img = e_icon_factory_get_image ("stock_open", E_ICON_SIZE_BUTTON); + img = gtk_image_new_from_stock ( + GTK_STOCK_OPEN, GTK_ICON_SIZE_BUTTON); label = gtk_label_new_with_mnemonic(_("O_pen With")); gtk_box_pack_start (GTK_BOX (hbox), img, TRUE, TRUE, 2); gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 2); diff --git a/mail/em-format-html.c b/mail/em-format-html.c index bb2d176b6e..99c670e5ae 100644 --- a/mail/em-format-html.c +++ b/mail/em-format-html.c @@ -497,6 +497,7 @@ static void emfh_gethttp(struct _EMFormatHTMLJob *job, int cancelled) } instream = camel_http_stream_new(CAMEL_HTTP_METHOD_GET, ((EMFormat *)job->format)->session, url); + camel_http_stream_set_user_agent((CamelHttpStream *)instream, "CamelHttpStream/1.0 Evolution/" VERSION); proxy = em_utils_get_proxy_uri(); camel_http_stream_set_proxy((CamelHttpStream *)instream, proxy); g_free(proxy); diff --git a/mail/em-junk-hook.c b/mail/em-junk-hook.c index d2bf9983f9..0b63334d41 100644 --- a/mail/em-junk-hook.c +++ b/mail/em-junk-hook.c @@ -29,7 +29,6 @@ #include <glib.h> #include "em-junk-hook.h" #include "mail-session.h" -#include <e-util/e-icon-factory.h> #include "e-util/e-error.h" #include "em-utils.h" #include <camel/camel-junk-plugin.h> diff --git a/mail/em-menu.c b/mail/em-menu.c index a6a60af235..e8021e1bea 100644 --- a/mail/em-menu.c +++ b/mail/em-menu.c @@ -33,7 +33,6 @@ #include "em-menu.h" #include "libedataserver/e-msgport.h" -#include <e-util/e-icon-factory.h> #include "em-utils.h" #include "em-composer-utils.h" diff --git a/mail/em-network-prefs.c b/mail/em-network-prefs.c index 31b703864a..2f3f85d791 100644 --- a/mail/em-network-prefs.c +++ b/mail/em-network-prefs.c @@ -42,7 +42,6 @@ #include "e-util/e-error.h" #include "e-util/e-util-private.h" -#include "e-util/e-icon-factory.h" #include "mail-config.h" #include "em-config.h" diff --git a/mail/em-popup.c b/mail/em-popup.c index 76e59daad3..10fae903be 100644 --- a/mail/em-popup.c +++ b/mail/em-popup.c @@ -35,7 +35,6 @@ #include "em-popup.h" #include "libedataserver/e-msgport.h" -#include <e-util/e-icon-factory.h> #include "em-utils.h" #include "em-composer-utils.h" diff --git a/mail/mail-mt.c b/mail/mail-mt.c index d147132689..9657da5f13 100644 --- a/mail/mail-mt.c +++ b/mail/mail-mt.c @@ -71,8 +71,6 @@ struct _MailMsgPrivate { gboolean cancelable; }; -static GdkPixbuf *progress_icon = NULL; - /* mail_msg stuff */ #ifdef LOG_OPS static FILE *log; @@ -983,9 +981,6 @@ op_status_exec (struct _op_status_msg *m) } else { data->activity_state = 1; - if (progress_icon == NULL) - progress_icon = e_icon_factory_get_icon ("mail-unread", E_ICON_SIZE_MENU); - MAIL_MT_UNLOCK (mail_msg_lock); if (msg->info->desc) what = msg->info->desc (msg); @@ -996,7 +991,7 @@ op_status_exec (struct _op_status_msg *m) what = g_strdup(""); } - data->activity_id = e_activity_handler_cancelable_operation_started (activity_handler, "evolution-mail", progress_icon, what, TRUE, (void (*) (gpointer)) camel_operation_cancel, msg->cancel); + data->activity_id = e_activity_handler_cancelable_operation_started (activity_handler, "evolution-mail", what, TRUE, (void (*) (gpointer)) camel_operation_cancel, msg->cancel); g_free (what); MAIL_MT_LOCK (mail_msg_lock); diff --git a/mail/mail-send-recv.c b/mail/mail-send-recv.c index ab4cc41006..588d1287ae 100644 --- a/mail/mail-send-recv.c +++ b/mail/mail-send-recv.c @@ -46,7 +46,6 @@ #include "mail-send-recv.h" #include "mail-folder-cache.h" #include "em-event.h" -#include <e-util/e-icon-factory.h> #include <e-util/gconf-bridge.h> #define d(x) @@ -379,7 +378,6 @@ build_dialog (EAccountList *accounts, CamelFolder *outbox, const char *destinati char *pretty_url; EAccount *account; EIterator *iter; - GList *icon_list; EMEventTargetSendReceive *target; gd = (GtkDialog *)(send_recv_dialog = gtk_dialog_new_with_buttons(_("Send & Receive Mail"), NULL, GTK_DIALOG_NO_SEPARATOR, NULL)); @@ -401,12 +399,7 @@ build_dialog (EAccountList *accounts, CamelFolder *outbox, const char *destinati gtk_widget_show (cancel_button); gtk_dialog_add_action_widget (gd, cancel_button, GTK_RESPONSE_CANCEL); - icon_list = e_icon_factory_get_icon_list ("mail-send-receive"); - if (icon_list) { - gtk_window_set_icon_list (GTK_WINDOW (gd), icon_list); - g_list_foreach (icon_list, (GFunc) g_object_unref, NULL); - g_list_free (icon_list); - } + gtk_window_set_icon_name (GTK_WINDOW (gd), "mail-send-receive"); num_sources = 0; @@ -487,8 +480,8 @@ build_dialog (EAccountList *accounts, CamelFolder *outbox, const char *destinati } else if (info->timeout_id == 0) info->timeout_id = g_timeout_add (STATUS_TIMEOUT, operation_status_timeout, info); - recv_icon = e_icon_factory_get_image ( - "mail-inbox", E_ICON_SIZE_LARGE_TOOLBAR); + recv_icon = gtk_image_new_from_icon_name ( + "mail-inbox", GTK_ICON_SIZE_LARGE_TOOLBAR); pretty_url = format_url (source->url, account->name); label = gtk_label_new (NULL); gtk_label_set_ellipsize ( @@ -564,8 +557,8 @@ build_dialog (EAccountList *accounts, CamelFolder *outbox, const char *destinati } else if (info->timeout_id == 0) info->timeout_id = g_timeout_add (STATUS_TIMEOUT, operation_status_timeout, info); - send_icon = e_icon_factory_get_image ( - "mail-outbox", E_ICON_SIZE_LARGE_TOOLBAR); + send_icon = gtk_image_new_from_icon_name ( + "mail-outbox", GTK_ICON_SIZE_LARGE_TOOLBAR); pretty_url = format_url (destination, NULL); label = gtk_label_new (NULL); gtk_label_set_ellipsize ( 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 */ diff --git a/mail/message-tag-followup.c b/mail/message-tag-followup.c index 48f55456e4..52fc313e30 100644 --- a/mail/message-tag-followup.c +++ b/mail/message-tag-followup.c @@ -35,7 +35,6 @@ #include <libgnomeui/gnome-pixmap.h> #include <glib/gi18n.h> -#include "e-util/e-icon-factory.h" #include "e-util/e-util-private.h" #include "misc/e-dateedit.h" @@ -271,19 +270,13 @@ construct (MessageTagEditor *editor) GtkWidget *widget; GList *strings; GladeXML *gui; - GList *icon_list; - GdkPixbuf *pixbuf; int i; char *gladefile; gtk_window_set_title (GTK_WINDOW (editor), _("Flag to Follow Up")); - icon_list = e_icon_factory_get_icon_list ("stock_mail-flag-for-followup"); - if (icon_list) { - gtk_window_set_icon_list (GTK_WINDOW (editor), icon_list); - g_list_foreach (icon_list, (GFunc) g_object_unref, NULL); - g_list_free (icon_list); - } + gtk_window_set_icon_name ( + GTK_WINDOW (editor), "stock_mail-flag-for-followup"); gtk_dialog_set_has_separator (GTK_DIALOG (editor), FALSE); gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (editor)->vbox), 0); @@ -302,9 +295,9 @@ construct (MessageTagEditor *editor) gtk_box_set_child_packing (GTK_BOX (GTK_DIALOG (editor)->vbox), widget, TRUE, TRUE, 6, GTK_PACK_START); widget = glade_xml_get_widget (gui, "pixmap"); - pixbuf = e_icon_factory_get_icon ("stock_mail-flag-for-followup", E_ICON_SIZE_DIALOG); - gtk_image_set_from_pixbuf ((GtkImage *)widget, pixbuf); - g_object_unref (pixbuf); + gtk_image_set_from_icon_name ( + GTK_IMAGE (widget), "stock_mail-flag-for-followup", + GTK_ICON_SIZE_DIALOG); followup->message_list = GTK_TREE_VIEW (glade_xml_get_widget (gui, "message_list")); model = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); diff --git a/mail/searchtypes.xml b/mail/searchtypes.xml index 1f7dcfe44a..d48fc251af 100644 --- a/mail/searchtypes.xml +++ b/mail/searchtypes.xml @@ -462,6 +462,21 @@ </rule> <rule grouping="any" source="demand"> + <_title>Subject or Recipients contains</_title> + <partset> + <part name="subject"> + <value name="subject-type" type="option" value="contains"/> + <value name="subject" type="string"/> + </part> + <part name="to"> + <value name="recipient-type" type="option" value="contains"/> + <value name="recipient" type="address"/> + </part> + </partset> + <sources/> + </rule> + + <rule grouping="any" source="demand"> <_title>Recipients contain</_title> <partset> <part name="to"> |