From d46731bf2070fce02c467cc71edcdccc9037becb Mon Sep 17 00:00:00 2001 From: Not Zed Date: Thu, 28 Apr 2005 10:00:15 +0000 Subject: add some message list loading/profiling points, "list". 2005-04-28 Not Zed * message-list.c: add some message list loading/profiling points, "list". * em-folder-view.c: add some message display/loading profiling points, "goto". svn path=/trunk/; revision=29240 --- mail/ChangeLog | 8 ++++++++ mail/em-folder-view.c | 27 +++++++++++++++++++++++++-- mail/message-list.c | 15 +++++++++++++-- 3 files changed, 46 insertions(+), 4 deletions(-) (limited to 'mail') diff --git a/mail/ChangeLog b/mail/ChangeLog index 44d6e157d5..15e20cb515 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,11 @@ +2005-04-28 Not Zed + + * message-list.c: add some message list loading/profiling points, + "list". + + * em-folder-view.c: add some message display/loading profiling + points, "goto". + 2005-04-12 Not Zed ** See bug #273752 diff --git a/mail/em-folder-view.c b/mail/em-folder-view.c index 8a5690ef85..a0431f65b6 100644 --- a/mail/em-folder-view.c +++ b/mail/em-folder-view.c @@ -69,6 +69,7 @@ #include #include #include +#include #include "em-format-html-display.h" #include "em-format-html-print.h" @@ -162,6 +163,14 @@ static guint signals[LAST_SIGNAL]; static void emfv_selection_get(GtkWidget *widget, GtkSelectionData *data, guint info, guint time_stamp, EMFolderView *emfv); static void emfv_selection_clear_event(GtkWidget *widget, GdkEventSelection *event, EMFolderView *emfv); +#ifdef ENABLE_PROFILING +static void +emfv_format_complete(EMFormat *emf, EMFolderView *emfv) +{ + e_profile_event_emit("goto.done", emf->uid?emf->uid:"", 0); +} +#endif + static void emfv_init(GObject *o) { @@ -197,7 +206,9 @@ emfv_init(GObject *o) g_signal_connect(emfv->preview, "link_clicked", G_CALLBACK(emfv_format_link_clicked), emfv); g_signal_connect(emfv->preview, "popup_event", G_CALLBACK(emfv_format_popup_event), emfv); g_signal_connect (emfv->preview, "on_url", G_CALLBACK (emfv_on_url_cb), emfv); - +#ifdef ENABLE_PROFILING + g_signal_connect(emfv->preview, "complete", G_CALLBACK (emfv_format_complete), emfv); +#endif p->invisible = gtk_invisible_new(); g_signal_connect(p->invisible, "selection_get", G_CALLBACK(emfv_selection_get), emfv); g_signal_connect(p->invisible, "selection_clear_event", G_CALLBACK(emfv_selection_clear_event), emfv); @@ -620,6 +631,8 @@ emfv_set_folder_uri(EMFolderView *emfv, const char *uri) static void emfv_set_message(EMFolderView *emfv, const char *uid, int nomarkseen) { + e_profile_event_emit("goto.uid", uid?uid:"", 0); + /* This could possible race with other set messages, but likelyhood is small */ emfv->priv->nomarkseen = nomarkseen; message_list_select_uid(emfv->list, uid); @@ -1198,6 +1211,8 @@ emfv_mail_next(BonoboUIComponent *uid, void *data, const char *path) { EMFolderView *emfv = data; + e_profile_event_emit("goto.next", "", 0); + message_list_select(emfv->list, MESSAGE_LIST_SELECT_NEXT, 0, 0); } @@ -2123,7 +2138,10 @@ emfv_list_done_message_selected(CamelFolder *folder, const char *uid, CamelMimeM emfv_enable_menus(emfv); g_object_unref (emfv); return; + } + + e_profile_event_emit("goto.loaded", emfv->displayed_uid, 0); /** @Event: message.reading * @Title: Viewing a message @@ -2137,7 +2155,7 @@ emfv_list_done_message_selected(CamelFolder *folder, const char *uid, CamelMimeM e_event_emit((EEvent *)eme, "message.reading", (EEventTarget *)target); em_format_format((EMFormat *)emfv->preview, folder, uid, msg); - + if (emfv->priv->seen_id) g_source_remove(emfv->priv->seen_id); @@ -2173,12 +2191,15 @@ emfv_message_selected_timeout(void *data) emfv->priv->selected_uid = NULL; g_object_ref (emfv); /* TODO: we should manage our own thread stuff, would make cancelling outstanding stuff easier */ + e_profile_event_emit("goto.load", emfv->displayed_uid, 0); mail_get_message(emfv->folder, emfv->displayed_uid, emfv_list_done_message_selected, emfv, mail_thread_queued); } else { + e_profile_event_emit("goto.empty", "", 0); g_free(emfv->priv->selected_uid); emfv->priv->selected_uid = NULL; } } else { + e_profile_event_emit("goto.empty", "", 0); g_free(emfv->displayed_uid); emfv->displayed_uid = NULL; em_format_format((EMFormat *)emfv->preview, NULL, NULL, NULL); @@ -2193,6 +2214,8 @@ emfv_message_selected_timeout(void *data) static void emfv_list_message_selected(MessageList *ml, const char *uid, EMFolderView *emfv) { + e_profile_event_emit("goto.listuid", uid, 0); + if (emfv->preview_active) { if (emfv->priv->selected_id != 0) g_source_remove(emfv->priv->selected_id); diff --git a/mail/message-list.c b/mail/message-list.c index 9a7aaaaeda..573151743f 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -71,6 +71,7 @@ #include "em-utils.h" #include +#include #include "art/empty.xpm" @@ -2796,7 +2797,7 @@ message_list_set_folder (MessageList *message_list, CamelFolder *folder, const c return; camel_exception_init (&ex); - + /* remove the cursor activate idle handler */ if (message_list->idle_id != 0) { g_source_remove (message_list->idle_id); @@ -3397,6 +3398,8 @@ regen_list_regen (struct _mail_msg *mm) if (m->folder != m->ml->folder) return; + e_profile_event_emit("list.getuids", m->folder->full_name, 0); + /* if we have hidedeleted on, use a search to find it out, merge with existing search if set */ if (!camel_folder_has_search_capability(m->folder)) { /* if we have no search capability, dont let search or hide deleted work */ @@ -3515,6 +3518,8 @@ regen_list_regen (struct _mail_msg *mm) } MESSAGE_LIST_UNLOCK(m->ml, hide_lock); + + e_profile_event_emit("list.threaduids", m->folder->full_name, 0); if (!camel_operation_cancel_check(mm->cancel)) { /* update/build a new tree */ @@ -3561,6 +3566,8 @@ regen_list_regened (struct _mail_msg *mm) if (m->ml->folder != m->folder) return; + e_profile_event_emit("list.buildtree", m->folder->full_name, 0); + if (m->dotree) { if (m->ml->just_set_folder) m->ml->just_set_folder = FALSE; @@ -3600,6 +3607,8 @@ regen_list_free (struct _mail_msg *mm) struct _regen_list_msg *m = (struct _regen_list_msg *)mm; int i; + e_profile_event_emit("list.regenerated", m->folder->full_name, 0); + if (m->summary) { for (i = 0; i < m->summary->len; i++) camel_folder_free_message_info (m->folder, m->summary->pdata[i]); @@ -3632,6 +3641,8 @@ static struct _mail_msg_op regen_list_op = { static gboolean ml_regen_timeout(struct _regen_list_msg *m) { + e_profile_event_emit("list.regenerate", m->folder->full_name, 0); + m->ml->regen = g_list_prepend(m->ml->regen, m); /* TODO: we should manage our own thread stuff, would make cancelling outstanding stuff easier */ e_thread_put (mail_thread_queued, (EMsg *)m); @@ -3672,7 +3683,7 @@ mail_regen_list (MessageList *ml, const char *search, const char *hideexpr, Came { struct _regen_list_msg *m; GConfClient *gconf; - + if (ml->folder == NULL) { if (ml->search != search) { g_free(ml->search); -- cgit