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/em-folder-browser.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index ce17ea2f54..5871cfc4cc 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -877,7 +877,7 @@ get_view_query (ESearchBar *esb, CamelFolder *folder, const char *folder_uri) view_sexp = "(match-all (not (system-flag \"Seen\")))"; break; case VIEW_READ_MESSAGES: - view_sexp = "(match-all (system-flag \"Seen\"))"; + view_sexp = "(match-all (system-flag \"Seen\" ))"; break; case VIEW_RECENT_MESSAGES: if (!em_utils_folder_is_sent (folder, folder_uri)) @@ -892,7 +892,7 @@ get_view_query (ESearchBar *esb, CamelFolder *folder, const char *folder_uri) view_sexp = " (match-all (> (get-sent-date) (- (get-current-date) 432000)))"; break; case VIEW_WITH_ATTACHMENTS: - view_sexp = "(match-all (system-flag \"Attachments\"))"; + view_sexp = "(match-all (system-flag \"Attachments\" ))"; break; case VIEW_NOT_JUNK: view_sexp = "(match-all (not (system-flag \"junk\")))"; @@ -925,7 +925,7 @@ get_view_query (ESearchBar *esb, CamelFolder *folder, const char *folder_uri) duplicate = FALSE; break; case VIEW_MESSAGES_MARKED_AS_IMPORTANT: - view_sexp = "(match-all (system-flag \"Flagged\"))"; + view_sexp = "(match-all (system-flag \"Flagged\" ))"; break; case VIEW_ANY_FIELD_CONTAINS: break; -- cgit 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/em-folder-browser.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'mail/em-folder-browser.c') 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 (); -- cgit From 4187293731274274e4283d9039f6e30c95578118 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Mon, 18 Aug 2008 16:18:42 +0000 Subject: Merge revisions 35993:36015 from trunk. Adapt recent "crash recovery" changes to new architecture. svn path=/branches/kill-bonobo/; revision=36018 --- mail/em-folder-browser.c | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index 4b25b560f7..a427c0f03e 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -122,6 +122,7 @@ struct _EMFolderBrowserPrivate { guint folder_changed_id; guint show_wide:1; + guint suppress_message_selection:1; gboolean scope_restricted; EMMenu *menu; /* toplevel menu manager */ @@ -2001,6 +2002,7 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri) { EMFolderBrowser *emfb = (EMFolderBrowser *) emfv; struct _EMFolderBrowserPrivate *p = emfb->priv; + gboolean different_folder; message_list_freeze(emfv->list); @@ -2019,6 +2021,10 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri) emfb->priv->folder_changed_id = 0; } + different_folder = + emfb->view.folder != NULL && + folder != emfb->view.folder; + emfb_parent->set_folder(emfv, folder, uri); /* This is required since we get activated the first time @@ -2102,15 +2108,20 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri) e_search_bar_paint ((ESearchBar *)emfb->search); } - /* set the query manually, so we dont pop up advanced or saved search stuff */ + /* This function gets triggered several times at startup, + * so we don't want to reset the message suppression state + * unless we're actually switching to a different folder. */ + if (different_folder) + p->suppress_message_selection = FALSE; - if ((sstate = camel_object_meta_get (folder, "evolution:selected_uid"))) { - g_free (emfb->priv->select_uid); - emfb->priv->select_uid = sstate; - } else { - g_free(p->select_uid); - p->select_uid = NULL; - } + if (!p->suppress_message_selection) + sstate = camel_object_meta_get ( + folder, "evolution:selected_uid"); + else + sstate = NULL; + + g_free (p->select_uid); + p->select_uid = sstate; if (emfv->list->cursor_uid == NULL && emfb->priv->list_built_id == 0) p->list_built_id = g_signal_connect(emfv->list, "message_list_built", G_CALLBACK (emfb_list_built), emfv); @@ -2222,3 +2233,9 @@ emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, int act) emfb_parent->activate(emfv, uic, act); } } + +void +em_folder_browser_suppress_message_selection (EMFolderBrowser *emfb) +{ + emfb->priv->suppress_message_selection = TRUE; +} -- cgit 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/em-folder-browser.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index a427c0f03e..159d77d557 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -1,23 +1,23 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* - * Authors: Michael Zucchi - * Jeffrey Stedfast + * 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: + * Michael Zucchi + * Jeffrey Stedfast + * + * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) * */ @@ -1141,7 +1141,7 @@ emfb_search_search_activated(ESearchBar *esb, EMFolderBrowser *emfb) g_free (word); word = NULL; g_object_get (esb, "query", &search_word, NULL); - if (efb->account_search_vf && !strcmp (search_word, ((CamelVeeFolder *) efb->account_search_vf)->expression) ) { + if (search_word && efb->account_search_vf && !strcmp (search_word, ((CamelVeeFolder *) efb->account_search_vf)->expression) ) { break; } gtk_widget_set_sensitive (esb->scopeoption, FALSE); -- cgit 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/em-folder-browser.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index 159d77d557..3bfb198c2b 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -149,6 +149,8 @@ static void emfb_search_search_cleared(ESearchBar *esb); static int emfb_list_key_press(ETree *tree, int row, ETreePath path, int col, GdkEvent *ev, EMFolderBrowser *emfb); static void emfb_list_message_selected (MessageList *ml, const char *uid, EMFolderBrowser *emfb); +static void emfb_expand_all_threads(BonoboUIComponent *uid, void *data, const char *path); + static const EMFolderViewEnable emfb_enable_map[] = { { "EditInvertSelection", EM_POPUP_SELECT_FOLDER }, { "EditSelectAll", EM_POPUP_SELECT_FOLDER }, @@ -1426,13 +1428,35 @@ emfb_edit_invert_selection(BonoboUIComponent *uid, void *data, const char *path) message_list_invert_selection(emfv->list); } +static gboolean +emfb_select_all_daemon (MessageList *ml) +{ + message_list_select_all(ml); + gtk_widget_grab_focus ((GtkWidget *)ml); + return FALSE; +} + static void emfb_edit_select_all(BonoboUIComponent *uid, void *data, const char *path) { - EMFolderView *emfv = data; + EMFolderView *emfv = data; - message_list_select_all(emfv->list); - gtk_widget_grab_focus ((GtkWidget *)emfv->list); + if (emfv->list->threaded) { + + emfb_expand_all_threads (uid, data, path); + + /* The time out below is added so that the execution thread to + expand all conversations threads would've completed. + + The timeout 505 is just to ensure that the value is a small delta + more than the timeout value in expand_all_threads thread. */ + + g_timeout_add (505, (GSourceFunc) emfb_select_all_daemon, emfv->list); + + } else { + /* If there is no threading, just select-all immediately */ + emfb_select_all_daemon (emfv->list); + } } static void -- cgit From 2a771c37303b4d56e7c7462c1e7dec68b4508293 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 18 Dec 2008 21:41:00 +0000 Subject: Implement yet more mail actions. svn path=/branches/kill-bonobo/; revision=36918 --- mail/em-folder-browser.c | 494 +++++++++++++++++++++++------------------------ 1 file changed, 247 insertions(+), 247 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index 3bfb198c2b..1822d04fcb 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -1459,156 +1459,156 @@ emfb_edit_select_all(BonoboUIComponent *uid, void *data, const char *path) } } -static void -emfb_edit_select_thread(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - - message_list_select_thread(emfv->list); -} - -static void -emfb_edit_select_subthread(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - - message_list_select_subthread (emfv->list); -} - -static void -emfb_folder_properties(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderBrowser *emfb = data; - - if (emfb->view.folder_uri) - em_folder_properties_show(NULL, emfb->view.folder, emfb->view.folder_uri); -} +//static void +//emfb_edit_select_thread(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// message_list_select_thread(emfv->list); +//} + +//static void +//emfb_edit_select_subthread(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// message_list_select_subthread (emfv->list); +//} + +//static void +//emfb_folder_properties(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderBrowser *emfb = data; +// +// if (emfb->view.folder_uri) +// em_folder_properties_show(NULL, emfb->view.folder, emfb->view.folder_uri); +//} /* VIEWTHREADED*/ -static void -emfb_expand_all_threads(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - - message_list_set_threaded_expand_all(emfv->list); - -} - -static void -emfb_collapse_all_threads(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - - message_list_set_threaded_collapse_all(emfv->list); -} - -static void -emfb_folder_copy(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderBrowser *emfb = data; - CamelFolderInfo *fi = NULL; - CamelException ex; - - /* FIXME: This function MUST become multi-threaded. - FIXME: This interface should NOT use a folderinfo */ - - camel_exception_init (&ex); - - if ((fi = camel_store_get_folder_info (emfb->view.folder->parent_store, - emfb->view.folder->full_name, - CAMEL_STORE_FOLDER_INFO_FAST, - &ex)) != NULL) - em_folder_utils_copy_folder(fi, FALSE); - - camel_exception_clear (&ex); - - return; -} - -static void -emfb_folder_move(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderBrowser *emfb = data; - CamelFolderInfo *fi = NULL; - CamelException ex; - - camel_exception_init (&ex); - - /* FIXME: This function MUST become multi-threaded. - FIXME: This interface should NOT use a folderinfo */ - - if ((fi = camel_store_get_folder_info (emfb->view.folder->parent_store, - emfb->view.folder->full_name, - CAMEL_STORE_FOLDER_INFO_FAST, - &ex)) != NULL) - em_folder_utils_copy_folder(fi, TRUE); - - camel_exception_clear (&ex); - - return; -} - -static void -emfb_folder_delete(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderBrowser *emfb = data; - - em_folder_utils_delete_folder (emfb->view.folder); - - return; -} - -static void -emfb_folder_refresh(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderBrowser *emfb = data; - EMFolderTree *tree = g_object_get_data (G_OBJECT (emfb), "foldertree"); - CamelFolder *folder; - - if ((folder = em_folder_tree_get_selected_folder (tree)) != NULL) - mail_refresh_folder(folder, NULL, NULL); -} - - -static void -emfb_folder_rename(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderBrowser *emfb = data; - - em_folder_utils_rename_folder (emfb->view.folder); - - return; -} - -static void -emfb_folder_create(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderBrowser *emfb = data; - CamelFolderInfo *fi = NULL; - EMFolderTree *tree = g_object_get_data (G_OBJECT (emfb), "foldertree"); - - /* FIXME: This function MUST be multithreaded - FIXME: This interface should NOT use a folderinfo */ - if (emfb->view.folder) { - if ((fi = em_folder_tree_get_selected_folder_info (tree)) != NULL) { - em_folder_utils_create_folder(fi, tree); - camel_folder_info_free(fi); - } - } else { - em_folder_utils_create_folder(NULL, tree); - } - - return; -} - -static void -emfb_folder_expunge(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderBrowser *emfb = data; - - if (emfb->view.folder) - em_utils_expunge_folder(gtk_widget_get_toplevel((GtkWidget *)emfb), emfb->view.folder); -} +//static void +//emfb_expand_all_threads(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// message_list_set_threaded_expand_all(emfv->list); +// +//} + +//static void +//emfb_collapse_all_threads(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// message_list_set_threaded_collapse_all(emfv->list); +//} + +//static void +//emfb_folder_copy(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderBrowser *emfb = data; +// CamelFolderInfo *fi = NULL; +// CamelException ex; +// +// /* FIXME: This function MUST become multi-threaded. +// FIXME: This interface should NOT use a folderinfo */ +// +// camel_exception_init (&ex); +// +// if ((fi = camel_store_get_folder_info (emfb->view.folder->parent_store, +// emfb->view.folder->full_name, +// CAMEL_STORE_FOLDER_INFO_FAST, +// &ex)) != NULL) +// em_folder_utils_copy_folder(fi, FALSE); +// +// camel_exception_clear (&ex); +// +// return; +//} + +//static void +//emfb_folder_move(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderBrowser *emfb = data; +// CamelFolderInfo *fi = NULL; +// CamelException ex; +// +// camel_exception_init (&ex); +// +// /* FIXME: This function MUST become multi-threaded. +// FIXME: This interface should NOT use a folderinfo */ +// +// if ((fi = camel_store_get_folder_info (emfb->view.folder->parent_store, +// emfb->view.folder->full_name, +// CAMEL_STORE_FOLDER_INFO_FAST, +// &ex)) != NULL) +// em_folder_utils_copy_folder(fi, TRUE); +// +// camel_exception_clear (&ex); +// +// return; +//} + +//static void +//emfb_folder_delete(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderBrowser *emfb = data; +// +// em_folder_utils_delete_folder (emfb->view.folder); +// +// return; +//} + +//static void +//emfb_folder_refresh(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderBrowser *emfb = data; +// EMFolderTree *tree = g_object_get_data (G_OBJECT (emfb), "foldertree"); +// CamelFolder *folder; +// +// if ((folder = em_folder_tree_get_selected_folder (tree)) != NULL) +// mail_refresh_folder(folder, NULL, NULL); +//} + + +//static void +//emfb_folder_rename(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderBrowser *emfb = data; +// +// em_folder_utils_rename_folder (emfb->view.folder); +// +// return; +//} + +//static void +//emfb_folder_create(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderBrowser *emfb = data; +// CamelFolderInfo *fi = NULL; +// EMFolderTree *tree = g_object_get_data (G_OBJECT (emfb), "foldertree"); +// +// /* FIXME: This function MUST be multithreaded +// FIXME: This interface should NOT use a folderinfo */ +// if (emfb->view.folder) { +// if ((fi = em_folder_tree_get_selected_folder_info (tree)) != NULL) { +// em_folder_utils_create_folder(fi, tree); +// camel_folder_info_free(fi); +// } +// } else { +// em_folder_utils_create_folder(NULL, tree); +// } +// +// return; +//} + +//static void +//emfb_folder_expunge(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderBrowser *emfb = data; +// +// if (emfb->view.folder) +// em_utils_expunge_folder(gtk_widget_get_toplevel((GtkWidget *)emfb), emfb->view.folder); +//} static void emfb_mark_all_read(BonoboUIComponent *uid, void *data, const char *path) @@ -1630,83 +1630,83 @@ emfb_mark_all_read(BonoboUIComponent *uid, void *data, const char *path) } } -static void -emfb_view_hide_read(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - - message_list_hide_add(emfv->list, "(match-all (system-flag \"seen\"))", ML_HIDE_SAME, ML_HIDE_SAME); -} - -static void -emfb_view_hide_selected(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - GPtrArray *uids; - - /* TODO: perhaps this should sit directly on message_list? */ - /* is it worth it, it's so trivial */ - - /* A new flag CAMEL_MESSAGE_HIDDEN is added by Sankar - while extending the CAMEL_MESSAGE_FLAGS for proxy permissions. - This can be used to hide messages. */ - - uids = message_list_get_selected(emfv->list); - message_list_hide_uids(emfv->list, uids); - message_list_free_uids(emfv->list, uids); -} - -static void -emfb_view_show_all(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - - message_list_hide_clear(emfv->list); -} +//static void +//emfb_view_hide_read(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// message_list_hide_add(emfv->list, "(match-all (system-flag \"seen\"))", ML_HIDE_SAME, ML_HIDE_SAME); +//} + +//static void +//emfb_view_hide_selected(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// GPtrArray *uids; +// +// /* TODO: perhaps this should sit directly on message_list? */ +// /* is it worth it, it's so trivial */ +// +// /* A new flag CAMEL_MESSAGE_HIDDEN is added by Sankar +// while extending the CAMEL_MESSAGE_FLAGS for proxy permissions. +// This can be used to hide messages. */ +// +// uids = message_list_get_selected(emfv->list); +// message_list_hide_uids(emfv->list, uids); +// message_list_free_uids(emfv->list, uids); +//} + +//static void +//emfb_view_show_all(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// message_list_hide_clear(emfv->list); +//} /* ********************************************************************** */ -static void -emfb_mail_stop(BonoboUIComponent *uid, void *data, const char *path) -{ - mail_cancel_all(); -} - -static void -emfb_mail_post(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - em_utils_post_to_folder (emfv->folder); -} - -static void -emfb_tools_filters(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderBrowser *emfb = data; - - em_utils_edit_filters ((GtkWidget *) emfb); -} - -static void -emfb_subscribe_editor_destroy(GtkWidget *w, EMFolderBrowser *emfb) -{ - emfb->priv->subscribe_editor = NULL; -} - -static void -emfb_tools_subscriptions(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderBrowser *emfb = data; - - if (emfb->priv->subscribe_editor) { - gdk_window_show(emfb->priv->subscribe_editor->window); - } else { - emfb->priv->subscribe_editor = (GtkWidget *)em_subscribe_editor_new(); - e_dialog_set_transient_for((GtkWindow *)emfb->priv->subscribe_editor, (GtkWidget *)emfb); - g_signal_connect(emfb->priv->subscribe_editor, "destroy", G_CALLBACK(emfb_subscribe_editor_destroy), emfb); - gtk_widget_show(emfb->priv->subscribe_editor); - } -} +//static void +//emfb_mail_stop(BonoboUIComponent *uid, void *data, const char *path) +//{ +// mail_cancel_all(); +//} + +//static void +//emfb_mail_post(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// em_utils_post_to_folder (emfv->folder); +//} + +//static void +//emfb_tools_filters(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderBrowser *emfb = data; +// +// em_utils_edit_filters ((GtkWidget *) emfb); +//} + +//static void +//emfb_subscribe_editor_destroy(GtkWidget *w, EMFolderBrowser *emfb) +//{ +// emfb->priv->subscribe_editor = NULL; +//} + +//static void +//emfb_tools_subscriptions(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderBrowser *emfb = data; +// +// if (emfb->priv->subscribe_editor) { +// gdk_window_show(emfb->priv->subscribe_editor->window); +// } else { +// emfb->priv->subscribe_editor = (GtkWidget *)em_subscribe_editor_new(); +// e_dialog_set_transient_for((GtkWindow *)emfb->priv->subscribe_editor, (GtkWidget *)emfb); +/ g_signal_connect(emfb->priv->subscribe_editor, "destroy", G_CALLBACK(emfb_subscribe_editor_destroy), emfb); +/// gtk_widget_show(emfb->priv->subscribe_editor); +// } +//} static void emfb_focus_search(BonoboUIComponent *uid, void *data, const char *path) @@ -1722,12 +1722,12 @@ emfb_help_debug (BonoboUIComponent *uid, void *data, const char *path) mail_component_show_logger ((GtkWidget *) data); } -static void -emfb_tools_vfolders(BonoboUIComponent *uid, void *data, const char *path) -{ - /* FIXME: rename/refactor this */ - vfolder_edit(); -} +//static void +//emfb_tools_vfolders(BonoboUIComponent *uid, void *data, const char *path) +//{ +// /* FIXME: rename/refactor this */ +// vfolder_edit(); +//} static BonoboUIVerb emfb_verbs[] = { BONOBO_UI_UNSAFE_VERB ("EditCut", emfb_edit_cut), @@ -1736,33 +1736,33 @@ static BonoboUIVerb emfb_verbs[] = { BONOBO_UI_UNSAFE_VERB ("EditInvertSelection", emfb_edit_invert_selection), BONOBO_UI_UNSAFE_VERB ("EditSelectAll", emfb_edit_select_all), - BONOBO_UI_UNSAFE_VERB ("EditSelectThread", emfb_edit_select_thread), - BONOBO_UI_UNSAFE_VERB ("EditSelectSubthread", emfb_edit_select_subthread), - BONOBO_UI_UNSAFE_VERB ("ChangeFolderProperties", emfb_folder_properties), - BONOBO_UI_UNSAFE_VERB ("FolderExpunge", emfb_folder_expunge), +// BONOBO_UI_UNSAFE_VERB ("EditSelectThread", emfb_edit_select_thread), +// BONOBO_UI_UNSAFE_VERB ("EditSelectSubthread", emfb_edit_select_subthread), +// BONOBO_UI_UNSAFE_VERB ("ChangeFolderProperties", emfb_folder_properties), +// BONOBO_UI_UNSAFE_VERB ("FolderExpunge", emfb_folder_expunge), /* HideDeleted is a toggle */ BONOBO_UI_UNSAFE_VERB ("MessageMarkAllAsRead", emfb_mark_all_read), - BONOBO_UI_UNSAFE_VERB ("ViewHideRead", emfb_view_hide_read), - BONOBO_UI_UNSAFE_VERB ("ViewHideSelected", emfb_view_hide_selected), - BONOBO_UI_UNSAFE_VERB ("ViewShowAll", emfb_view_show_all), +// BONOBO_UI_UNSAFE_VERB ("ViewHideRead", emfb_view_hide_read), +// BONOBO_UI_UNSAFE_VERB ("ViewHideSelected", emfb_view_hide_selected), +// BONOBO_UI_UNSAFE_VERB ("ViewShowAll", emfb_view_show_all), /* ViewThreaded is a toggle */ - BONOBO_UI_UNSAFE_VERB ("ViewThreadsExpandAll", emfb_expand_all_threads), - BONOBO_UI_UNSAFE_VERB ("ViewThreadsCollapseAll", emfb_collapse_all_threads), +// BONOBO_UI_UNSAFE_VERB ("ViewThreadsExpandAll", emfb_expand_all_threads), +// BONOBO_UI_UNSAFE_VERB ("ViewThreadsCollapseAll", emfb_collapse_all_threads), - BONOBO_UI_UNSAFE_VERB ("FolderCopy", emfb_folder_copy), - BONOBO_UI_UNSAFE_VERB ("FolderMove", emfb_folder_move), - BONOBO_UI_UNSAFE_VERB ("FolderDelete", emfb_folder_delete), - BONOBO_UI_UNSAFE_VERB ("FolderRefresh", emfb_folder_refresh), - BONOBO_UI_UNSAFE_VERB ("FolderRename", emfb_folder_rename), - BONOBO_UI_UNSAFE_VERB ("FolderCreate", emfb_folder_create), +// BONOBO_UI_UNSAFE_VERB ("FolderCopy", emfb_folder_copy), +// BONOBO_UI_UNSAFE_VERB ("FolderMove", emfb_folder_move), +// BONOBO_UI_UNSAFE_VERB ("FolderDelete", emfb_folder_delete), +// BONOBO_UI_UNSAFE_VERB ("FolderRefresh", emfb_folder_refresh), +// BONOBO_UI_UNSAFE_VERB ("FolderRename", emfb_folder_rename), +// BONOBO_UI_UNSAFE_VERB ("FolderCreate", emfb_folder_create), BONOBO_UI_UNSAFE_VERB ("HelpDebug", emfb_help_debug), - BONOBO_UI_UNSAFE_VERB ("MailPost", emfb_mail_post), - BONOBO_UI_UNSAFE_VERB ("MailStop", emfb_mail_stop), - BONOBO_UI_UNSAFE_VERB ("ToolsFilters", emfb_tools_filters), +// BONOBO_UI_UNSAFE_VERB ("MailPost", emfb_mail_post), +// BONOBO_UI_UNSAFE_VERB ("MailStop", emfb_mail_stop), +// BONOBO_UI_UNSAFE_VERB ("ToolsFilters", emfb_tools_filters), BONOBO_UI_UNSAFE_VERB ("ToolsSubscriptions", emfb_tools_subscriptions), - BONOBO_UI_UNSAFE_VERB ("ToolsVFolders", emfb_tools_vfolders), +// BONOBO_UI_UNSAFE_VERB ("ToolsVFolders", emfb_tools_vfolders), BONOBO_UI_UNSAFE_VERB ("FocusSearch", emfb_focus_search), /* ViewPreview is a toggle */ -- cgit From 19f1e3fe20c29690aaf07d26e81760405cc577df Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Wed, 7 Jan 2009 21:27:06 +0000 Subject: Fix some miscellaneous mailer bugs. svn path=/branches/kill-bonobo/; revision=37011 --- mail/em-folder-browser.c | 102 +++++++++++++++++++++++------------------------ 1 file changed, 51 insertions(+), 51 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index 1822d04fcb..7522149c7d 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -246,36 +246,36 @@ static ESearchBarItem emfb_search_scope_items[] = { static EMFolderViewClass *emfb_parent; /* Needed since the paned wont take the position its given otherwise ... */ -static void -emfb_pane_realised(GtkWidget *w, EMFolderBrowser *emfb) -{ - GConfClient *gconf; - - gconf = mail_config_get_gconf_client (); - - if (emfb->priv->show_wide) - gtk_paned_set_position((GtkPaned *)emfb->vpane, gconf_client_get_int(gconf, "/apps/evolution/mail/display/hpaned_size", NULL)); - else - gtk_paned_set_position((GtkPaned *)emfb->vpane, gconf_client_get_int(gconf, "/apps/evolution/mail/display/paned_size", NULL)); -} - -static gboolean -emfb_pane_button_release_event(GtkWidget *w, GdkEventButton *e, EMFolderBrowser *emfb) -{ - GConfClient *gconf = mail_config_get_gconf_client (); - - if (GTK_WIDGET_REALIZED (w)) { - if (emfb->priv->show_wide) - gconf_client_set_int(gconf, "/apps/evolution/mail/display/hpaned_size", - gtk_paned_get_position(GTK_PANED(w)), NULL); - else - gconf_client_set_int(gconf, "/apps/evolution/mail/display/paned_size", - gtk_paned_get_position(GTK_PANED(w)), NULL); - - } +//static void +//emfb_pane_realised(GtkWidget *w, EMFolderBrowser *emfb) +//{ +// GConfClient *gconf; +// +// gconf = mail_config_get_gconf_client (); +// +// if (emfb->priv->show_wide) +// gtk_paned_set_position((GtkPaned *)emfb->vpane, gconf_client_get_int(gconf, "/apps/evolution/mail/display/hpaned_size", NULL)); +// else +// gtk_paned_set_position((GtkPaned *)emfb->vpane, gconf_client_get_int(gconf, "/apps/evolution/mail/display/paned_size", NULL)); +//} - return FALSE; -} +//static gboolean +//emfb_pane_button_release_event(GtkWidget *w, GdkEventButton *e, EMFolderBrowser *emfb) +//{ +// GConfClient *gconf = mail_config_get_gconf_client (); +// +// if (GTK_WIDGET_REALIZED (w)) { +// if (emfb->priv->show_wide) +// gconf_client_set_int(gconf, "/apps/evolution/mail/display/hpaned_size", +// gtk_paned_get_position(GTK_PANED(w)), NULL); +// else +// gconf_client_set_int(gconf, "/apps/evolution/mail/display/paned_size", +// gtk_paned_get_position(GTK_PANED(w)), NULL); +// +// } +// +// return FALSE; +//} static void free_one_ui_file (gpointer data, @@ -493,21 +493,21 @@ emfb_init(GObject *o) g_signal_connect_after (((EMFormatHTML *)(emfb->view.preview))->html, "scroll", G_CALLBACK (html_scroll), emfb); - g_slist_foreach (emfb->view.ui_files, free_one_ui_file, NULL); - g_slist_free(emfb->view.ui_files); - - emfb->view.ui_files = g_slist_append(NULL, - g_build_filename (EVOLUTION_UIDIR, - "evolution-mail-global.xml", - NULL)); - emfb->view.ui_files = g_slist_append(emfb->view.ui_files, - g_build_filename (EVOLUTION_UIDIR, - "evolution-mail-list.xml", - NULL)); - emfb->view.ui_files = g_slist_append(emfb->view.ui_files, - g_build_filename (EVOLUTION_UIDIR, - "evolution-mail-message.xml", - NULL)); +// g_slist_foreach (emfb->view.ui_files, free_one_ui_file, NULL); +// g_slist_free(emfb->view.ui_files); + +// emfb->view.ui_files = g_slist_append(NULL, +// g_build_filename (EVOLUTION_UIDIR, +// "evolution-mail-global.xml", +// NULL)); +// emfb->view.ui_files = g_slist_append(emfb->view.ui_files, +// g_build_filename (EVOLUTION_UIDIR, +// "evolution-mail-list.xml", +// NULL)); +// emfb->view.ui_files = g_slist_append(emfb->view.ui_files, +// g_build_filename (EVOLUTION_UIDIR, +// "evolution-mail-message.xml", +// NULL)); emfb->view.enable_map = g_slist_prepend(emfb->view.enable_map, (void *)emfb_enable_map); @@ -539,13 +539,13 @@ emfb_init(GObject *o) emfb->priv->labels_change_notify_id = gconf_client_notify_add (gconf, E_UTIL_LABELS_GCONF_KEY, gconf_labels_changed, emfb, NULL, NULL); } - emfb->priv->show_wide = gconf_client_get_bool(mail_config_get_gconf_client(), "/apps/evolution/mail/display/show_wide", NULL); - emfb->vpane = emfb->priv->show_wide?gtk_hpaned_new():gtk_vpaned_new(); +// emfb->priv->show_wide = gconf_client_get_bool(mail_config_get_gconf_client(), "/apps/evolution/mail/display/show_wide", NULL); +// emfb->vpane = emfb->priv->show_wide?gtk_hpaned_new():gtk_vpaned_new(); - g_signal_connect(emfb->vpane, "realize", G_CALLBACK(emfb_pane_realised), emfb); - emfb->priv->vpane_resize_id = g_signal_connect(emfb->vpane, "button_release_event", G_CALLBACK(emfb_pane_button_release_event), emfb); +// g_signal_connect(emfb->vpane, "realize", G_CALLBACK(emfb_pane_realised), emfb); +// emfb->priv->vpane_resize_id = g_signal_connect(emfb->vpane, "button_release_event", G_CALLBACK(emfb_pane_button_release_event), emfb); - gtk_widget_show(emfb->vpane); +// gtk_widget_show(emfb->vpane); gtk_box_pack_start_defaults((GtkBox *)emfb, emfb->vpane); @@ -766,8 +766,8 @@ void em_folder_browser_show_wide(EMFolderBrowser *emfb, gboolean state) w = emfb->priv->show_wide?gtk_hpaned_new():gtk_vpaned_new(); g_signal_handler_disconnect(emfb->vpane, emfb->priv->vpane_resize_id); - g_signal_connect(w, "realize", G_CALLBACK(emfb_pane_realised), emfb); - emfb->priv->vpane_resize_id = g_signal_connect(w, "button_release_event", G_CALLBACK(emfb_pane_button_release_event), emfb); +// g_signal_connect(w, "realize", G_CALLBACK(emfb_pane_realised), emfb); +// emfb->priv->vpane_resize_id = g_signal_connect(w, "button_release_event", G_CALLBACK(emfb_pane_button_release_event), emfb); gtk_box_pack_start_defaults((GtkBox *)emfb, w); gtk_widget_reparent((GtkWidget *)emfb->view.list, w); -- cgit From 367a162a540a1f8ad1fa45c3298911fc02c5201a Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 15 Jan 2009 21:59:57 +0000 Subject: Implement some more mailer actions. svn path=/branches/kill-bonobo/; revision=37082 --- mail/em-folder-browser.c | 565 ----------------------------------------------- 1 file changed, 565 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index 7522149c7d..24258ea8ca 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -245,38 +245,6 @@ static ESearchBarItem emfb_search_scope_items[] = { static EMFolderViewClass *emfb_parent; -/* Needed since the paned wont take the position its given otherwise ... */ -//static void -//emfb_pane_realised(GtkWidget *w, EMFolderBrowser *emfb) -//{ -// GConfClient *gconf; -// -// gconf = mail_config_get_gconf_client (); -// -// if (emfb->priv->show_wide) -// gtk_paned_set_position((GtkPaned *)emfb->vpane, gconf_client_get_int(gconf, "/apps/evolution/mail/display/hpaned_size", NULL)); -// else -// gtk_paned_set_position((GtkPaned *)emfb->vpane, gconf_client_get_int(gconf, "/apps/evolution/mail/display/paned_size", NULL)); -//} - -//static gboolean -//emfb_pane_button_release_event(GtkWidget *w, GdkEventButton *e, EMFolderBrowser *emfb) -//{ -// GConfClient *gconf = mail_config_get_gconf_client (); -// -// if (GTK_WIDGET_REALIZED (w)) { -// if (emfb->priv->show_wide) -// gconf_client_set_int(gconf, "/apps/evolution/mail/display/hpaned_size", -// gtk_paned_get_position(GTK_PANED(w)), NULL); -// else -// gconf_client_set_int(gconf, "/apps/evolution/mail/display/paned_size", -// gtk_paned_get_position(GTK_PANED(w)), NULL); -// -// } -// -// return FALSE; -//} - static void free_one_ui_file (gpointer data, gpointer user_data) @@ -750,42 +718,6 @@ gboolean em_folder_browser_get_wide (EMFolderBrowser *emfb) return emfb->priv->show_wide; } -void em_folder_browser_show_wide(EMFolderBrowser *emfb, gboolean state) -{ - GtkWidget *w; - int paned_size; - - if ((emfb->priv->show_wide && state) - || emfb->view.list == NULL) { - emfb->priv->show_wide = state; - return; - } - - emfb->priv->show_wide = state; - - w = emfb->priv->show_wide?gtk_hpaned_new():gtk_vpaned_new(); - - g_signal_handler_disconnect(emfb->vpane, emfb->priv->vpane_resize_id); -// g_signal_connect(w, "realize", G_CALLBACK(emfb_pane_realised), emfb); -// emfb->priv->vpane_resize_id = g_signal_connect(w, "button_release_event", G_CALLBACK(emfb_pane_button_release_event), emfb); - - gtk_box_pack_start_defaults((GtkBox *)emfb, w); - gtk_widget_reparent((GtkWidget *)emfb->view.list, w); - gtk_widget_reparent((GtkWidget *)emfb->priv->preview, w); - gtk_widget_destroy(emfb->vpane); - gtk_container_child_set (GTK_CONTAINER (w), GTK_WIDGET (emfb->view.list), "resize", FALSE, "shrink", FALSE, NULL); - gtk_container_child_set (GTK_CONTAINER (w), GTK_WIDGET (emfb->priv->preview), "resize", TRUE, "shrink", FALSE, NULL); - gtk_container_resize_children ((GtkContainer *)w); - emfb->vpane = w; - gtk_widget_show(w); - - paned_size = gconf_client_get_int(mail_config_get_gconf_client(), emfb->priv->show_wide ? "/apps/evolution/mail/display/hpaned_size":"/apps/evolution/mail/display/paned_size", NULL); - gtk_paned_set_position (GTK_PANED (emfb->vpane), paned_size); - - if (((EMFolderView *)emfb)->folder) - em_folder_view_setup_view_instance ((EMFolderView *) emfb); -} - /* ********************************************************************** */ /* FIXME: Need to separate system rules from user ones */ @@ -1381,333 +1313,6 @@ emfb_list_message_selected (MessageList *ml, const char *uid, EMFolderBrowser *e /* ********************************************************************** */ -static void -emfb_edit_cut(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderBrowser *emfb = data; - - /* TODO: pity we can't sucblass this method, ugh, virtualise it? */ - - if (GTK_WIDGET_HAS_FOCUS(((ESearchBar *)emfb->search)->entry)) - gtk_editable_cut_clipboard((GtkEditable *)((ESearchBar *)emfb->search)->entry); - else if (GTK_WIDGET_HAS_FOCUS(emfb->view.preview->formathtml.html)) - em_format_html_display_cut(emfb->view.preview); - else - message_list_copy(emfb->view.list, TRUE); -} - -static void -emfb_edit_copy(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderBrowser *emfb = data; - - if (GTK_WIDGET_HAS_FOCUS(((ESearchBar *)emfb->search)->entry)) - gtk_editable_copy_clipboard((GtkEditable *)((ESearchBar *)emfb->search)->entry); - else if (GTK_WIDGET_HAS_FOCUS(emfb->view.preview->formathtml.html)) - em_format_html_display_copy(emfb->view.preview); - else - message_list_copy(emfb->view.list, FALSE); -} - -static void -emfb_edit_paste(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderBrowser *emfb = data; - - if (GTK_WIDGET_HAS_FOCUS(((ESearchBar *)emfb->search)->entry)) - gtk_editable_paste_clipboard((GtkEditable *)((ESearchBar *)emfb->search)->entry); - else - message_list_paste(emfb->view.list); -} - -static void -emfb_edit_invert_selection(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - - message_list_invert_selection(emfv->list); -} - -static gboolean -emfb_select_all_daemon (MessageList *ml) -{ - message_list_select_all(ml); - gtk_widget_grab_focus ((GtkWidget *)ml); - return FALSE; -} - -static void -emfb_edit_select_all(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - - if (emfv->list->threaded) { - - emfb_expand_all_threads (uid, data, path); - - /* The time out below is added so that the execution thread to - expand all conversations threads would've completed. - - The timeout 505 is just to ensure that the value is a small delta - more than the timeout value in expand_all_threads thread. */ - - g_timeout_add (505, (GSourceFunc) emfb_select_all_daemon, emfv->list); - - } else { - /* If there is no threading, just select-all immediately */ - emfb_select_all_daemon (emfv->list); - } -} - -//static void -//emfb_edit_select_thread(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderView *emfv = data; -// -// message_list_select_thread(emfv->list); -//} - -//static void -//emfb_edit_select_subthread(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderView *emfv = data; -// -// message_list_select_subthread (emfv->list); -//} - -//static void -//emfb_folder_properties(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderBrowser *emfb = data; -// -// if (emfb->view.folder_uri) -// em_folder_properties_show(NULL, emfb->view.folder, emfb->view.folder_uri); -//} - -/* VIEWTHREADED*/ -//static void -//emfb_expand_all_threads(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderView *emfv = data; -// -// message_list_set_threaded_expand_all(emfv->list); -// -//} - -//static void -//emfb_collapse_all_threads(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderView *emfv = data; -// -// message_list_set_threaded_collapse_all(emfv->list); -//} - -//static void -//emfb_folder_copy(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderBrowser *emfb = data; -// CamelFolderInfo *fi = NULL; -// CamelException ex; -// -// /* FIXME: This function MUST become multi-threaded. -// FIXME: This interface should NOT use a folderinfo */ -// -// camel_exception_init (&ex); -// -// if ((fi = camel_store_get_folder_info (emfb->view.folder->parent_store, -// emfb->view.folder->full_name, -// CAMEL_STORE_FOLDER_INFO_FAST, -// &ex)) != NULL) -// em_folder_utils_copy_folder(fi, FALSE); -// -// camel_exception_clear (&ex); -// -// return; -//} - -//static void -//emfb_folder_move(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderBrowser *emfb = data; -// CamelFolderInfo *fi = NULL; -// CamelException ex; -// -// camel_exception_init (&ex); -// -// /* FIXME: This function MUST become multi-threaded. -// FIXME: This interface should NOT use a folderinfo */ -// -// if ((fi = camel_store_get_folder_info (emfb->view.folder->parent_store, -// emfb->view.folder->full_name, -// CAMEL_STORE_FOLDER_INFO_FAST, -// &ex)) != NULL) -// em_folder_utils_copy_folder(fi, TRUE); -// -// camel_exception_clear (&ex); -// -// return; -//} - -//static void -//emfb_folder_delete(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderBrowser *emfb = data; -// -// em_folder_utils_delete_folder (emfb->view.folder); -// -// return; -//} - -//static void -//emfb_folder_refresh(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderBrowser *emfb = data; -// EMFolderTree *tree = g_object_get_data (G_OBJECT (emfb), "foldertree"); -// CamelFolder *folder; -// -// if ((folder = em_folder_tree_get_selected_folder (tree)) != NULL) -// mail_refresh_folder(folder, NULL, NULL); -//} - - -//static void -//emfb_folder_rename(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderBrowser *emfb = data; -// -// em_folder_utils_rename_folder (emfb->view.folder); -// -// return; -//} - -//static void -//emfb_folder_create(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderBrowser *emfb = data; -// CamelFolderInfo *fi = NULL; -// EMFolderTree *tree = g_object_get_data (G_OBJECT (emfb), "foldertree"); -// -// /* FIXME: This function MUST be multithreaded -// FIXME: This interface should NOT use a folderinfo */ -// if (emfb->view.folder) { -// if ((fi = em_folder_tree_get_selected_folder_info (tree)) != NULL) { -// em_folder_utils_create_folder(fi, tree); -// camel_folder_info_free(fi); -// } -// } else { -// em_folder_utils_create_folder(NULL, tree); -// } -// -// return; -//} - -//static void -//emfb_folder_expunge(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderBrowser *emfb = data; -// -// if (emfb->view.folder) -// em_utils_expunge_folder(gtk_widget_get_toplevel((GtkWidget *)emfb), emfb->view.folder); -//} - -static void -emfb_mark_all_read(BonoboUIComponent *uid, void *data, const char *path) -{ - /* FIXME: make a 'mark messages' function? */ - EMFolderView *emfv = data; - GPtrArray *uids; - int i; - - if (emfv->folder == NULL) - return; - if( em_utils_prompt_user((GtkWindow *)emfv, "/apps/evolution/mail/prompts/mark_all_read","mail:ask-mark-all-read", NULL)){ - uids = message_list_get_uids(emfv->list); - camel_folder_freeze(emfv->folder); - for (i=0;ilen;i++) - camel_folder_set_message_flags(emfv->folder, uids->pdata[i], CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_SEEN); - camel_folder_thaw(emfv->folder); - message_list_free_uids(emfv->list, uids); - } -} - -//static void -//emfb_view_hide_read(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderView *emfv = data; -// -// message_list_hide_add(emfv->list, "(match-all (system-flag \"seen\"))", ML_HIDE_SAME, ML_HIDE_SAME); -//} - -//static void -//emfb_view_hide_selected(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderView *emfv = data; -// GPtrArray *uids; -// -// /* TODO: perhaps this should sit directly on message_list? */ -// /* is it worth it, it's so trivial */ -// -// /* A new flag CAMEL_MESSAGE_HIDDEN is added by Sankar -// while extending the CAMEL_MESSAGE_FLAGS for proxy permissions. -// This can be used to hide messages. */ -// -// uids = message_list_get_selected(emfv->list); -// message_list_hide_uids(emfv->list, uids); -// message_list_free_uids(emfv->list, uids); -//} - -//static void -//emfb_view_show_all(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderView *emfv = data; -// -// message_list_hide_clear(emfv->list); -//} - -/* ********************************************************************** */ - -//static void -//emfb_mail_stop(BonoboUIComponent *uid, void *data, const char *path) -//{ -// mail_cancel_all(); -//} - -//static void -//emfb_mail_post(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderView *emfv = data; -// em_utils_post_to_folder (emfv->folder); -//} - -//static void -//emfb_tools_filters(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderBrowser *emfb = data; -// -// em_utils_edit_filters ((GtkWidget *) emfb); -//} - -//static void -//emfb_subscribe_editor_destroy(GtkWidget *w, EMFolderBrowser *emfb) -//{ -// emfb->priv->subscribe_editor = NULL; -//} - -//static void -//emfb_tools_subscriptions(BonoboUIComponent *uid, void *data, const char *path) -//{ -// EMFolderBrowser *emfb = data; -// -// if (emfb->priv->subscribe_editor) { -// gdk_window_show(emfb->priv->subscribe_editor->window); -// } else { -// emfb->priv->subscribe_editor = (GtkWidget *)em_subscribe_editor_new(); -// e_dialog_set_transient_for((GtkWindow *)emfb->priv->subscribe_editor, (GtkWidget *)emfb); -/ g_signal_connect(emfb->priv->subscribe_editor, "destroy", G_CALLBACK(emfb_subscribe_editor_destroy), emfb); -/// gtk_widget_show(emfb->priv->subscribe_editor); -// } -//} - static void emfb_focus_search(BonoboUIComponent *uid, void *data, const char *path) { @@ -1722,47 +1327,9 @@ emfb_help_debug (BonoboUIComponent *uid, void *data, const char *path) mail_component_show_logger ((GtkWidget *) data); } -//static void -//emfb_tools_vfolders(BonoboUIComponent *uid, void *data, const char *path) -//{ -// /* FIXME: rename/refactor this */ -// vfolder_edit(); -//} - static BonoboUIVerb emfb_verbs[] = { - BONOBO_UI_UNSAFE_VERB ("EditCut", emfb_edit_cut), - BONOBO_UI_UNSAFE_VERB ("EditCopy", emfb_edit_copy), - BONOBO_UI_UNSAFE_VERB ("EditPaste", emfb_edit_paste), - - BONOBO_UI_UNSAFE_VERB ("EditInvertSelection", emfb_edit_invert_selection), - BONOBO_UI_UNSAFE_VERB ("EditSelectAll", emfb_edit_select_all), -// BONOBO_UI_UNSAFE_VERB ("EditSelectThread", emfb_edit_select_thread), -// BONOBO_UI_UNSAFE_VERB ("EditSelectSubthread", emfb_edit_select_subthread), -// BONOBO_UI_UNSAFE_VERB ("ChangeFolderProperties", emfb_folder_properties), -// BONOBO_UI_UNSAFE_VERB ("FolderExpunge", emfb_folder_expunge), - /* HideDeleted is a toggle */ - BONOBO_UI_UNSAFE_VERB ("MessageMarkAllAsRead", emfb_mark_all_read), -// BONOBO_UI_UNSAFE_VERB ("ViewHideRead", emfb_view_hide_read), -// BONOBO_UI_UNSAFE_VERB ("ViewHideSelected", emfb_view_hide_selected), -// BONOBO_UI_UNSAFE_VERB ("ViewShowAll", emfb_view_show_all), - /* ViewThreaded is a toggle */ - -// BONOBO_UI_UNSAFE_VERB ("ViewThreadsExpandAll", emfb_expand_all_threads), -// BONOBO_UI_UNSAFE_VERB ("ViewThreadsCollapseAll", emfb_collapse_all_threads), - -// BONOBO_UI_UNSAFE_VERB ("FolderCopy", emfb_folder_copy), -// BONOBO_UI_UNSAFE_VERB ("FolderMove", emfb_folder_move), -// BONOBO_UI_UNSAFE_VERB ("FolderDelete", emfb_folder_delete), -// BONOBO_UI_UNSAFE_VERB ("FolderRefresh", emfb_folder_refresh), -// BONOBO_UI_UNSAFE_VERB ("FolderRename", emfb_folder_rename), -// BONOBO_UI_UNSAFE_VERB ("FolderCreate", emfb_folder_create), BONOBO_UI_UNSAFE_VERB ("HelpDebug", emfb_help_debug), -// BONOBO_UI_UNSAFE_VERB ("MailPost", emfb_mail_post), -// BONOBO_UI_UNSAFE_VERB ("MailStop", emfb_mail_stop), -// BONOBO_UI_UNSAFE_VERB ("ToolsFilters", emfb_tools_filters), - BONOBO_UI_UNSAFE_VERB ("ToolsSubscriptions", emfb_tools_subscriptions), -// BONOBO_UI_UNSAFE_VERB ("ToolsVFolders", emfb_tools_vfolders), BONOBO_UI_UNSAFE_VERB ("FocusSearch", emfb_focus_search), /* ViewPreview is a toggle */ @@ -1770,17 +1337,6 @@ static BonoboUIVerb emfb_verbs[] = { BONOBO_UI_VERB_END }; -static EPixmap emfb_pixmaps[] = { - E_PIXMAP ("/commands/FolderCreate", "folder-new", E_ICON_SIZE_MENU), - E_PIXMAP ("/commands/ChangeFolderProperties", "document-properties", E_ICON_SIZE_MENU), - E_PIXMAP ("/commands/FolderCopy", "folder-copy", E_ICON_SIZE_MENU), - E_PIXMAP ("/commands/FolderMove", "folder-move", E_ICON_SIZE_MENU), - E_PIXMAP ("/commands/MessageMarkAllAsRead", "mail-read", E_ICON_SIZE_MENU), - - E_PIXMAP_END -}; - - static void emfb_hide_deleted(BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_EventType type, const char *state, void *data) { @@ -1795,76 +1351,6 @@ emfb_hide_deleted(BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_E em_folder_view_set_hide_deleted(emfv, state[0] != '0'); } -static void -emfb_view_threaded(BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_EventType type, const char *state, void *data) -{ - GConfClient *gconf; - EMFolderView *emfv = data; - - if (type != Bonobo_UIComponent_STATE_CHANGED) - return; - - gconf = mail_config_get_gconf_client (); - gconf_client_set_bool(gconf, "/apps/evolution/mail/display/thread_list", state[0] != '0', NULL); - - if (camel_object_meta_set(emfv->folder, "evolution:thread_list", state)) - camel_object_state_write(emfv->folder); - - /* FIXME: do set_threaded via meta-data listener on folder? */ - message_list_set_threaded(emfv->list, state[0] != '0'); - - /* FIXME: update selection state? */ -} - -static void -emfb_view_preview(BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_EventType type, const char *state, void *data) -{ - GConfClient *gconf; - EMFolderView *emfv = data; - - if (type != Bonobo_UIComponent_STATE_CHANGED) - return; - - gconf = mail_config_get_gconf_client (); - gconf_client_set_bool(gconf, "/apps/evolution/mail/display/show_preview", state[0] != '0', NULL); - - if (camel_object_meta_set(emfv->folder, "evolution:show_preview", state)) - camel_object_state_write(emfv->folder); - - /* FIXME: do this via folder listener */ - em_folder_browser_show_preview((EMFolderBrowser *)emfv, state[0] != '0'); -} - -static void -emfb_show_next(BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_EventType type, const char *state, void *data) -{ - GConfClient *gconf; - EMFolderBrowser *emfb = data; - - if (type != Bonobo_UIComponent_STATE_CHANGED) - return; - - gconf = mail_config_get_gconf_client (); - gconf_client_set_bool(gconf, "/apps/evolution/mail/display/show_wide", state[0] != '0', NULL); - - em_folder_browser_show_wide(emfb, state[0] != '0'); -} - -static void -emfb_show_below(BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_EventType type, const char *state, void *data) -{ - GConfClient *gconf; - EMFolderBrowser *emfb = data; - - if (type != Bonobo_UIComponent_STATE_CHANGED) - return; - - gconf = mail_config_get_gconf_client (); - gconf_client_set_bool(gconf, "/apps/evolution/mail/display/show_wide", state[0] == '0', NULL); - - em_folder_browser_show_wide(emfb, state[0] == '0'); -} - static void emfb_list_scrolled (MessageList *ml, EMFolderBrowser *emfb) { @@ -2169,8 +1655,6 @@ emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, int act) emfb_parent->activate(emfv, uic, act); bonobo_ui_component_add_verb_list_with_data(uic, emfb_verbs, emfv); - e_pixmaps_update(uic, emfb_pixmaps); - /* FIXME: finish */ /* (Pre)view pane size (do this first because it affects the preview settings - see folder_browser_set_message_preview() @@ -2179,19 +1663,6 @@ emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, int act) gtk_paned_set_position((GtkPaned *)emfb->vpane, gconf_client_get_int (gconf, emfb->priv->show_wide ? "/apps/evolution/mail/display/hpaned_size": "/apps/evolution/mail/display/paned_size", NULL)); g_signal_handler_unblock(emfb->vpane, emfb->priv->vpane_resize_id); - /* (Pre)view toggle */ - if (emfv->folder - && (sstate = camel_object_meta_get(emfv->folder, "evolution:show_preview"))) { - state = sstate[0] == '1'; - g_free(sstate); - } else { - state = gconf_client_get_bool(gconf, "/apps/evolution/mail/display/show_preview", NULL); - } - - bonobo_ui_component_set_prop(uic, "/commands/ViewPreview", "state", state?"1":"0", NULL); - em_folder_browser_show_preview((EMFolderBrowser *)emfv, state); - bonobo_ui_component_add_listener(uic, "ViewPreview", emfb_view_preview, emfv); - /* Stop button */ state = mail_msg_active((unsigned int)-1); bonobo_ui_component_set_prop(uic, "/commands/MailStop", "sensitive", state?"1":"0", NULL); @@ -2207,42 +1678,6 @@ emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, int act) bonobo_ui_component_add_listener(uic, "HideDeleted", emfb_hide_deleted, emfv); em_folder_view_set_hide_deleted(emfv, state); /* <- not sure if this optimal, but it'll do */ - /* FIXME: If we have no folder, we can't do a few of the lookups we need, - perhaps we should postpone till we can */ - - /* ViewThreaded */ - if (emfv->folder - && (sstate = camel_object_meta_get(emfv->folder, "evolution:thread_list"))) { - state = sstate[0] != '0'; - g_free(sstate); - } else { - state = gconf_client_get_bool(gconf, "/apps/evolution/mail/display/thread_list", NULL); - } - - bonobo_ui_component_set_prop(uic, "/commands/ViewThreaded", "state", state?"1":"0", NULL); - bonobo_ui_component_set_prop(uic, "/commands/ViewThreadsCollapseAll", "sensitive", state?"1":"0", NULL); - bonobo_ui_component_set_prop(uic, "/commands/ViewThreadsExpandAll", "sensitive", state?"1":"0", NULL); - bonobo_ui_component_add_listener(uic, "ViewThreaded", emfb_view_threaded, emfv); - message_list_set_threaded(emfv->list, state); - - /* Show wide display */ - if (emfb->priv->show_wide) { - bonobo_ui_component_set_prop(uic, "/commands/ViewAfter", "state", "1", NULL); - bonobo_ui_component_set_prop(uic, "/commands/ViewBelow", "state", "0", NULL); - } else { - bonobo_ui_component_set_prop(uic, "/commands/ViewAfter", "state", "0", NULL); - bonobo_ui_component_set_prop(uic, "/commands/ViewBelow", "state", "1", NULL); - } - - bonobo_ui_component_add_listener(uic, "ViewAfter", emfb_show_next, emfv); - bonobo_ui_component_add_listener(uic, "ViewBelow", emfb_show_below, emfv); - /* em_folder_browser_show_wide((EMFolderBrowser *)emfv, state); */ - - /* FIXME: Selection state */ - - /* FIXME: property menu customisation */ - /*folder_browser_setup_property_menu (fb, fb->uicomp);*/ - if (((EMFolderBrowser *)emfv)->search) e_search_bar_set_ui_component((ESearchBar *)((EMFolderBrowser *)emfv)->search, uic); } else { -- cgit From e17e550ce0ed64d984a9011cfeba30ed8391ecbe Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 16 Jan 2009 04:01:50 +0000 Subject: Give camel_init() the correct path, and suddenly the mail module is USABLE! svn path=/branches/kill-bonobo/; revision=37083 --- mail/em-folder-browser.c | 27 --------------------------- 1 file changed, 27 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index 24258ea8ca..9f53ae43c0 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -1649,20 +1649,6 @@ emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, int act) char *sstate; EMFolderBrowser *emfb = (EMFolderBrowser *) emfv; - gconf = mail_config_get_gconf_client (); - - /* parent loads all ui files via ui_files */ - emfb_parent->activate(emfv, uic, act); - - bonobo_ui_component_add_verb_list_with_data(uic, emfb_verbs, emfv); - /* FIXME: finish */ - /* (Pre)view pane size (do this first because it affects the - preview settings - see folder_browser_set_message_preview() - internals for details) */ - g_signal_handler_block(emfb->vpane, emfb->priv->vpane_resize_id); - gtk_paned_set_position((GtkPaned *)emfb->vpane, gconf_client_get_int (gconf, emfb->priv->show_wide ? "/apps/evolution/mail/display/hpaned_size": "/apps/evolution/mail/display/paned_size", NULL)); - g_signal_handler_unblock(emfb->vpane, emfb->priv->vpane_resize_id); - /* Stop button */ state = mail_msg_active((unsigned int)-1); bonobo_ui_component_set_prop(uic, "/commands/MailStop", "sensitive", state?"1":"0", NULL); @@ -1677,19 +1663,6 @@ emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, int act) bonobo_ui_component_set_prop(uic, "/commands/HideDeleted", "state", state ? "1" : "0", NULL); bonobo_ui_component_add_listener(uic, "HideDeleted", emfb_hide_deleted, emfv); em_folder_view_set_hide_deleted(emfv, state); /* <- not sure if this optimal, but it'll do */ - - if (((EMFolderBrowser *)emfv)->search) - e_search_bar_set_ui_component((ESearchBar *)((EMFolderBrowser *)emfv)->search, uic); - } else { - const BonoboUIVerb *v; - - for (v = &emfb_verbs[0]; v->cname; v++) - bonobo_ui_component_remove_verb(uic, v->cname); - - if (((EMFolderBrowser *)emfv)->search) - e_search_bar_set_ui_component((ESearchBar *)((EMFolderBrowser *)emfv)->search, NULL); - - emfb_parent->activate(emfv, uic, act); } } -- cgit From 3c7a575407bef757d434808904a4c4dc1ba60cb3 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Wed, 21 Jan 2009 21:03:14 +0000 Subject: Fix some runtime warnings. Copy that nasty message list scrolling hack to EMailShellContent. Remember the scrollbar position for each folder. Now I just have to make it select a message automatically. svn path=/branches/kill-bonobo/; revision=37119 --- mail/em-folder-browser.c | 196 +++++++++++++++++++++++------------------------ 1 file changed, 98 insertions(+), 98 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index 9f53ae43c0..705e87269d 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -539,16 +539,16 @@ emfb_init(GObject *o) } -static void -emfb_finalise(GObject *o) -{ - EMFolderBrowser *emfb = (EMFolderBrowser *)o; - - g_free (emfb->priv->select_uid); - g_free (emfb->priv); - - ((GObjectClass *)emfb_parent)->finalize(o); -} +//static void +//emfb_finalise(GObject *o) +//{ +// EMFolderBrowser *emfb = (EMFolderBrowser *)o; +// +// g_free (emfb->priv->select_uid); +// g_free (emfb->priv); +// +// ((GObjectClass *)emfb_parent)->finalize(o); +//} static void emfb_destroy(GtkObject *o) @@ -1351,44 +1351,44 @@ emfb_hide_deleted(BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_E em_folder_view_set_hide_deleted(emfv, state[0] != '0'); } -static void -emfb_list_scrolled (MessageList *ml, EMFolderBrowser *emfb) -{ - EMFolderView *emfv = (EMFolderView *) emfb; - double position; - char *state; - - position = message_list_get_scrollbar_position (ml); - state = g_strdup_printf ("%f", position); - - if (camel_object_meta_set (emfv->folder, "evolution:list_scroll_position", state)) - camel_object_state_write (emfv->folder); - - g_free (state); -} - -static gboolean -scroll_idle_cb (EMFolderBrowser *emfb) -{ - EMFolderView *emfv = (EMFolderView *) emfb; - double position; - char *state; - - if ((state = camel_object_meta_get (emfv->folder, "evolution:list_scroll_position"))) { - position = strtod (state, NULL); - g_free (state); - } else { - position = emfb->priv->default_scroll_position; - } - - message_list_set_scrollbar_position (emfv->list, position); - - emfb->priv->list_scrolled_id = g_signal_connect (emfv->list, "message_list_scrolled", G_CALLBACK (emfb_list_scrolled), emfb); - - emfb->priv->idle_scroll_id = 0; - - return FALSE; -} +//static void +//emfb_list_scrolled (MessageList *ml, EMFolderBrowser *emfb) +//{ +// EMFolderView *emfv = (EMFolderView *) emfb; +// double position; +// char *state; +// +// position = message_list_get_scrollbar_position (ml); +// state = g_strdup_printf ("%f", position); +// +// if (camel_object_meta_set (emfv->folder, "evolution:list_scroll_position", state)) +// camel_object_state_write (emfv->folder); +// +// g_free (state); +//} + +//static gboolean +//scroll_idle_cb (EMFolderBrowser *emfb) +//{ +// EMFolderView *emfv = (EMFolderView *) emfb; +// double position; +// char *state; +// +// if ((state = camel_object_meta_get (emfv->folder, "evolution:list_scroll_position"))) { +// position = strtod (state, NULL); +// g_free (state); +// } else { +// position = emfb->priv->default_scroll_position; +// } +// +// message_list_set_scrollbar_position (emfv->list, position); +// +// emfb->priv->list_scrolled_id = g_signal_connect (emfv->list, "message_list_scrolled", G_CALLBACK (emfb_list_scrolled), emfb); +// +// emfb->priv->idle_scroll_id = 0; +// +// return FALSE; +//} static void emfb_gui_folder_changed(CamelFolder *folder, void *dummy, EMFolderBrowser *emfb) @@ -1415,60 +1415,60 @@ emfb_folder_changed(CamelFolder *folder, CamelFolderChangeInfo *changes, EMFolde mail_async_event_emit(emfb->view.async, MAIL_ASYNC_GUI, (MailAsyncFunc)emfb_gui_folder_changed, folder, NULL, emfb); } -static void -emfb_etree_unfreeze (GtkWidget *widget, GdkEvent *event, EMFolderView *emfv) -{ - - ETableItem *item = e_tree_get_item (emfv->list->tree); - - g_object_set_data (G_OBJECT (((GnomeCanvasItem *) item)->canvas), "freeze-cursor", 0); -} +//static void +//emfb_etree_unfreeze (GtkWidget *widget, GdkEvent *event, EMFolderView *emfv) +//{ +// +// ETableItem *item = e_tree_get_item (emfv->list->tree); +// +// g_object_set_data (G_OBJECT (((GnomeCanvasItem *) item)->canvas), "freeze-cursor", 0); +//} /* TODO: This should probably be handled by message-list, by storing/queueing up the select operation if its busy rebuilding the message-list */ -static void -emfb_list_built (MessageList *ml, EMFolderBrowser *emfb) -{ - EMFolderView *emfv = (EMFolderView *) emfb; - double position = 0.0f; - - g_signal_handler_disconnect (ml, emfb->priv->list_built_id); - emfb->priv->list_built_id = 0; - - if (emfv->list->cursor_uid == NULL) { - if (emfb->priv->select_uid) { - CamelMessageInfo *mi; - - /* If the message isn't in the folder yet, keep select_uid around, it could be caught by - folder_changed, at some later date */ - mi = camel_folder_get_message_info(emfv->folder, emfb->priv->select_uid); - if (mi) { - camel_folder_free_message_info(emfv->folder, mi); - em_folder_view_set_message(emfv, emfb->priv->select_uid, TRUE); - g_free (emfb->priv->select_uid); - emfb->priv->select_uid = NULL; - } - - /* change the default to the current position */ - position = message_list_get_scrollbar_position (ml); - } else { - /* NOTE: not all users want this, so we need a preference for it perhaps? see bug #52887 */ - /* FIXME: if the 1st message in the list is unread, this will actually select the second unread msg */ - /*message_list_select (ml, MESSAGE_LIST_SELECT_NEXT, 0, CAMEL_MESSAGE_SEEN, TRUE);*/ - } - } - - emfb->priv->default_scroll_position = position; - - /* FIXME: this is a gross workaround for an etable bug that I can't fix - bug #55303 */ - /* this needs to be a lower priority than anything in e-table-item/e-canvas, since - * e_canvas_item_region_show_relay() uses a timeout, we have to use a timeout of the - * same interval but a lower priority. */ - emfb->priv->idle_scroll_id = g_timeout_add_full (G_PRIORITY_LOW, 250, (GSourceFunc) scroll_idle_cb, emfb, NULL); - /* FIXME: This is another ugly hack done to hide a bug that above hack leaves. */ - g_signal_connect (((GtkScrolledWindow *) ml)->vscrollbar, "button-press-event", G_CALLBACK (emfb_etree_unfreeze), emfb); -} +//static void +//emfb_list_built (MessageList *ml, EMFolderBrowser *emfb) +//{ +// EMFolderView *emfv = (EMFolderView *) emfb; +// double position = 0.0f; +// +// g_signal_handler_disconnect (ml, emfb->priv->list_built_id); +// emfb->priv->list_built_id = 0; +// +// if (emfv->list->cursor_uid == NULL) { +// if (emfb->priv->select_uid) { +// CamelMessageInfo *mi; +// +// /* If the message isn't in the folder yet, keep select_uid around, it could be caught by +// folder_changed, at some later date */ +// mi = camel_folder_get_message_info(emfv->folder, emfb->priv->select_uid); +// if (mi) { +// camel_folder_free_message_info(emfv->folder, mi); +// em_folder_view_set_message(emfv, emfb->priv->select_uid, TRUE); +// g_free (emfb->priv->select_uid); +// emfb->priv->select_uid = NULL; +// } +// +// /* change the default to the current position */ +// position = message_list_get_scrollbar_position (ml); +// } else { +// /* NOTE: not all users want this, so we need a preference for it perhaps? see bug #52887 */ +// /* FIXME: if the 1st message in the list is unread, this will actually select the second unread msg */ +// /*message_list_select (ml, MESSAGE_LIST_SELECT_NEXT, 0, CAMEL_MESSAGE_SEEN, TRUE);*/ +// } +// } +// +// emfb->priv->default_scroll_position = position; +// +// /* FIXME: this is a gross workaround for an etable bug that I can't fix - bug #55303 */ +// /* this needs to be a lower priority than anything in e-table-item/e-canvas, since +// * e_canvas_item_region_show_relay() uses a timeout, we have to use a timeout of the +// * same interval but a lower priority. */ +// emfb->priv->idle_scroll_id = g_timeout_add_full (G_PRIORITY_LOW, 250, (GSourceFunc) scroll_idle_cb, emfb, NULL); +// /* FIXME: This is another ugly hack done to hide a bug that above hack leaves. */ +// g_signal_connect (((GtkScrolledWindow *) ml)->vscrollbar, "button-press-event", G_CALLBACK (emfb_etree_unfreeze), emfb); +//} static void emfb_set_search_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri) -- cgit From cbb3a71adc5551f4c600cfc6f53fc112f3022a78 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 24 Jan 2009 04:45:19 +0000 Subject: Get automatic message selection working. Add a tooltip to the online button. svn path=/branches/kill-bonobo/; revision=37126 --- mail/em-folder-browser.c | 346 +++++++++++++++++++++++------------------------ 1 file changed, 173 insertions(+), 173 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index 705e87269d..f7a6746e30 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -509,30 +509,30 @@ emfb_init(GObject *o) // emfb->priv->show_wide = gconf_client_get_bool(mail_config_get_gconf_client(), "/apps/evolution/mail/display/show_wide", NULL); // emfb->vpane = emfb->priv->show_wide?gtk_hpaned_new():gtk_vpaned_new(); - +// // g_signal_connect(emfb->vpane, "realize", G_CALLBACK(emfb_pane_realised), emfb); // emfb->priv->vpane_resize_id = g_signal_connect(emfb->vpane, "button_release_event", G_CALLBACK(emfb_pane_button_release_event), emfb); - +// // gtk_widget_show(emfb->vpane); - - gtk_box_pack_start_defaults((GtkBox *)emfb, emfb->vpane); - - gtk_paned_pack1 (GTK_PANED (emfb->vpane), GTK_WIDGET (emfb->view.list), FALSE, FALSE); - gtk_widget_show((GtkWidget *)emfb->view.list); - - /* currently: just use a scrolledwindow for preview widget */ - p->scroll = gtk_scrolled_window_new(NULL, NULL); - gtk_scrolled_window_set_policy((GtkScrolledWindow *)p->scroll, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - gtk_scrolled_window_set_shadow_type((GtkScrolledWindow *)p->scroll, GTK_SHADOW_IN); - gtk_widget_show(p->scroll); - - p->preview = gtk_vbox_new (FALSE, 6); - gtk_container_add((GtkContainer *)p->scroll, (GtkWidget *)emfb->view.preview->formathtml.html); - gtk_widget_show((GtkWidget *)emfb->view.preview->formathtml.html); - gtk_box_pack_start ((GtkBox *)p->preview, p->scroll, TRUE, TRUE, 0); - gtk_box_pack_start ((GtkBox *)p->preview, em_format_html_get_search_dialog (emfb->view.preview), FALSE, FALSE, 0); - gtk_paned_pack2 (GTK_PANED (emfb->vpane), p->preview, TRUE, FALSE); - gtk_widget_show(p->preview); +// +// gtk_box_pack_start_defaults((GtkBox *)emfb, emfb->vpane); +// +// gtk_paned_pack1 (GTK_PANED (emfb->vpane), GTK_WIDGET (emfb->view.list), FALSE, FALSE); +// gtk_widget_show((GtkWidget *)emfb->view.list); +// +// /* currently: just use a scrolledwindow for preview widget */ +// p->scroll = gtk_scrolled_window_new(NULL, NULL); +// gtk_scrolled_window_set_policy((GtkScrolledWindow *)p->scroll, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); +// gtk_scrolled_window_set_shadow_type((GtkScrolledWindow *)p->scroll, GTK_SHADOW_IN); +// gtk_widget_show(p->scroll); +// +// p->preview = gtk_vbox_new (FALSE, 6); +// gtk_container_add((GtkContainer *)p->scroll, (GtkWidget *)emfb->view.preview->formathtml.html); +// gtk_widget_show((GtkWidget *)emfb->view.preview->formathtml.html); +// gtk_box_pack_start ((GtkBox *)p->preview, p->scroll, TRUE, TRUE, 0); +// gtk_box_pack_start ((GtkBox *)p->preview, em_format_html_get_search_dialog (emfb->view.preview), FALSE, FALSE, 0); +// gtk_paned_pack2 (GTK_PANED (emfb->vpane), p->preview, TRUE, FALSE); +// gtk_widget_show(p->preview); g_signal_connect (((EMFolderView *) emfb)->list->tree, "key_press", G_CALLBACK(emfb_list_key_press), emfb); g_signal_connect (((EMFolderView *) emfb)->list, "message_selected", G_CALLBACK (emfb_list_message_selected), emfb); @@ -570,8 +570,8 @@ emfb_destroy(GtkObject *o) emfb->priv->idle_scroll_id = 0; } - if (emfb->view.folder && emfb->priv->folder_changed_id) - camel_object_remove_event(emfb->view.folder, emfb->priv->folder_changed_id); +// if (emfb->view.folder && emfb->priv->folder_changed_id) +// camel_object_remove_event(emfb->view.folder, emfb->priv->folder_changed_id); if (emfb->priv->labels_change_notify_id) { GConfClient *gconf = mail_config_get_gconf_client (); @@ -591,74 +591,74 @@ emfb_destroy(GtkObject *o) ((GtkObjectClass *)emfb_parent)->destroy(o); } -static void -emfb_class_init(GObjectClass *klass) -{ - klass->finalize = emfb_finalise; - - folder_browser_signals[ACCOUNT_SEARCH_ACTIVATED] = - g_signal_new ("account_search_activated", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (EMFolderBrowserClass, account_search_activated), - NULL, - NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - folder_browser_signals[ACCOUNT_SEARCH_CLEARED] = - g_signal_new ("account_search_cleared", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (EMFolderBrowserClass, account_search_cleared), - NULL, - NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - - ((GtkObjectClass *)klass)->destroy = emfb_destroy; - ((EMFolderViewClass *)klass)->set_folder = emfb_set_folder; - ((EMFolderViewClass *)klass)->activate = emfb_activate; -} - -GType -em_folder_browser_get_type(void) -{ - static GType type = 0; - - if (type == 0) { - static const GTypeInfo info = { - sizeof(EMFolderBrowserClass), - NULL, NULL, - (GClassInitFunc)emfb_class_init, - NULL, NULL, - sizeof(EMFolderBrowser), 0, - (GInstanceInitFunc)emfb_init - }; - emfb_parent = g_type_class_ref(em_folder_view_get_type()); - type = g_type_register_static(em_folder_view_get_type(), "EMFolderBrowser", &info, 0); - } +//static void +//emfb_class_init(GObjectClass *klass) +//{ +// klass->finalize = emfb_finalise; +// +// folder_browser_signals[ACCOUNT_SEARCH_ACTIVATED] = +// g_signal_new ("account_search_activated", +// G_TYPE_FROM_CLASS (klass), +// G_SIGNAL_RUN_LAST, +// G_STRUCT_OFFSET (EMFolderBrowserClass, account_search_activated), +// NULL, +// NULL, +// g_cclosure_marshal_VOID__VOID, +// G_TYPE_NONE, 0); +// +// folder_browser_signals[ACCOUNT_SEARCH_CLEARED] = +// g_signal_new ("account_search_cleared", +// G_TYPE_FROM_CLASS (klass), +// G_SIGNAL_RUN_LAST, +// G_STRUCT_OFFSET (EMFolderBrowserClass, account_search_cleared), +// NULL, +// NULL, +// g_cclosure_marshal_VOID__VOID, +// G_TYPE_NONE, 0); +// +// +// ((GtkObjectClass *)klass)->destroy = emfb_destroy; +// ((EMFolderViewClass *)klass)->set_folder = emfb_set_folder; +// ((EMFolderViewClass *)klass)->activate = emfb_activate; +//} - return type; -} +//GType +//em_folder_browser_get_type(void) +//{ +// static GType type = 0; +// +// if (type == 0) { +// static const GTypeInfo info = { +// sizeof(EMFolderBrowserClass), +// NULL, NULL, +// (GClassInitFunc)emfb_class_init, +// NULL, NULL, +// sizeof(EMFolderBrowser), 0, +// (GInstanceInitFunc)emfb_init +// }; +// emfb_parent = g_type_class_ref(em_folder_view_get_type()); +// type = g_type_register_static(em_folder_view_get_type(), "EMFolderBrowser", &info, 0); +// } +// +// return type; +//} -GtkWidget *em_folder_browser_new(void) -{ - EMFolderBrowser *emfb = g_object_new(em_folder_browser_get_type(), 0); - - /** @HookPoint-EMMenu: Main Mail Menu - * @Id: org.gnome.evolution.mail.browser - * @Class: org.gnome.evolution.mail.bonobomenu:1.0 - * @Target: EMMenuTargetSelect - * - * The main menu of mail view of the main application window. - * If the folder is NULL (not selected), the target will be empty, not NULL. - */ - ((EMFolderView *)emfb)->menu = em_menu_new("org.gnome.evolution.mail.browser"); - - return (GtkWidget *)emfb; -} +//GtkWidget *em_folder_browser_new(void) +//{ +// EMFolderBrowser *emfb = g_object_new(em_folder_browser_get_type(), 0); +// +// /** @HookPoint-EMMenu: Main Mail Menu +// * @Id: org.gnome.evolution.mail.browser +// * @Class: org.gnome.evolution.mail.bonobomenu:1.0 +// * @Target: EMMenuTargetSelect +// * +// * The main menu of mail view of the main application window. +// * If the folder is NULL (not selected), the target will be empty, not NULL. +// */ +// ((EMFolderView *)emfb)->menu = em_menu_new("org.gnome.evolution.mail.browser"); +// +// return (GtkWidget *)emfb; +//} void em_folder_browser_show_preview(EMFolderBrowser *emfb, gboolean state) { @@ -1390,30 +1390,30 @@ emfb_hide_deleted(BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_E // return FALSE; //} -static void -emfb_gui_folder_changed(CamelFolder *folder, void *dummy, EMFolderBrowser *emfb) -{ - if (emfb->priv->select_uid) { - CamelMessageInfo *mi; - - mi = camel_folder_get_message_info(emfb->view.folder, emfb->priv->select_uid); - if (mi) { - camel_folder_free_message_info(emfb->view.folder, mi); - em_folder_view_set_message(&emfb->view, emfb->priv->select_uid, FALSE); - g_free (emfb->priv->select_uid); - emfb->priv->select_uid = NULL; - } - } - - g_object_unref(emfb); -} +//static void +//emfb_gui_folder_changed(CamelFolder *folder, void *dummy, EMFolderBrowser *emfb) +//{ +// if (emfb->priv->select_uid) { +// CamelMessageInfo *mi; +// +// mi = camel_folder_get_message_info(emfb->view.folder, emfb->priv->select_uid); +// if (mi) { +// camel_folder_free_message_info(emfb->view.folder, mi); +// em_folder_view_set_message(&emfb->view, emfb->priv->select_uid, FALSE); +// g_free (emfb->priv->select_uid); +// emfb->priv->select_uid = NULL; +// } +// } +// +// g_object_unref(emfb); +//} -static void -emfb_folder_changed(CamelFolder *folder, CamelFolderChangeInfo *changes, EMFolderBrowser *emfb) -{ - g_object_ref(emfb); - mail_async_event_emit(emfb->view.async, MAIL_ASYNC_GUI, (MailAsyncFunc)emfb_gui_folder_changed, folder, NULL, emfb); -} +//static void +//emfb_folder_changed(CamelFolder *folder, CamelFolderChangeInfo *changes, EMFolderBrowser *emfb) +//{ +// g_object_ref(emfb); +// mail_async_event_emit(emfb->view.async, MAIL_ASYNC_GUI, (MailAsyncFunc)emfb_gui_folder_changed, folder, NULL, emfb); +//} //static void //emfb_etree_unfreeze (GtkWidget *widget, GdkEvent *event, EMFolderView *emfv) @@ -1488,10 +1488,10 @@ emfb_set_search_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri) emfb->priv->idle_scroll_id = 0; } - if (emfb->view.folder) { - camel_object_remove_event(emfb->view.folder, emfb->priv->folder_changed_id); - emfb->priv->folder_changed_id = 0; - } +// if (emfb->view.folder) { +// camel_object_remove_event(emfb->view.folder, emfb->priv->folder_changed_id); +// emfb->priv->folder_changed_id = 0; +// } emfb_parent->set_folder(emfv, folder, uri); @@ -1514,7 +1514,7 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri) struct _EMFolderBrowserPrivate *p = emfb->priv; gboolean different_folder; - message_list_freeze(emfv->list); +// message_list_freeze(emfv->list); if (emfb->priv->list_scrolled_id) { g_signal_handler_disconnect (emfv->list, emfb->priv->list_scrolled_id); @@ -1526,16 +1526,16 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri) emfb->priv->idle_scroll_id = 0; } - if (emfb->view.folder && emfb->priv->folder_changed_id) { - camel_object_remove_event(emfb->view.folder, emfb->priv->folder_changed_id); - emfb->priv->folder_changed_id = 0; - } - - different_folder = - emfb->view.folder != NULL && - folder != emfb->view.folder; - - emfb_parent->set_folder(emfv, folder, uri); +// if (emfb->view.folder && emfb->priv->folder_changed_id) { +// camel_object_remove_event(emfb->view.folder, emfb->priv->folder_changed_id); +// emfb->priv->folder_changed_id = 0; +// } +// +// different_folder = +// emfb->view.folder != NULL && +// folder != emfb->view.folder; +// +// emfb_parent->set_folder(emfv, folder, uri); /* This is required since we get activated the first time before the folder is open and need to override the @@ -1557,32 +1557,32 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri) gconf_client_set_bool (gconf, "/apps/evolution/mail/display/safe_list", FALSE, NULL); } - mail_refresh_folder(folder, NULL, NULL); - - emfb->priv->folder_changed_id = camel_object_hook_event(folder, "folder_changed", - (CamelObjectEventHookFunc)emfb_folder_changed, emfb); - - /* FIXME: this mostly copied from activate() */ - if ((sstate = camel_object_meta_get(folder, "evolution:show_preview"))) { - state = sstate[0] != '0'; - g_free(sstate); - } else - state = gconf_client_get_bool(gconf, "/apps/evolution/mail/display/show_preview", NULL); - em_folder_browser_show_preview(emfb, state); - if (emfv->uic) - bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewPreview", "state", state?"1":"0", NULL); - - if ((sstate = camel_object_meta_get(folder, "evolution:thread_list"))) { - state = sstate[0] != '0'; - g_free(sstate); - } else - state = gconf_client_get_bool(gconf, "/apps/evolution/mail/display/thread_list", NULL); - message_list_set_threaded(emfv->list, state); - if (emfv->uic) { - bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewThreaded", "state", state?"1":"0", NULL); - bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewThreadsCollapseAll", "sensitive", state?"1":"0", NULL); - bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewThreadsExpandAll", "sensitive", state?"1":"0", NULL); - } +// mail_refresh_folder(folder, NULL, NULL); +// +// emfb->priv->folder_changed_id = camel_object_hook_event(folder, "folder_changed", +// (CamelObjectEventHookFunc)emfb_folder_changed, emfb); +// +// /* FIXME: this mostly copied from activate() */ +// if ((sstate = camel_object_meta_get(folder, "evolution:show_preview"))) { +// state = sstate[0] != '0'; +// g_free(sstate); +// } else +// state = gconf_client_get_bool(gconf, "/apps/evolution/mail/display/show_preview", NULL); +// em_folder_browser_show_preview(emfb, state); +// if (emfv->uic) +// bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewPreview", "state", state?"1":"0", NULL); +// +// if ((sstate = camel_object_meta_get(folder, "evolution:thread_list"))) { +// state = sstate[0] != '0'; +// g_free(sstate); +// } else +// state = gconf_client_get_bool(gconf, "/apps/evolution/mail/display/thread_list", NULL); +// message_list_set_threaded(emfv->list, state); +// if (emfv->uic) { +// bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewThreaded", "state", state?"1":"0", NULL); +// bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewThreadsCollapseAll", "sensitive", state?"1":"0", NULL); +// bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewThreadsExpandAll", "sensitive", state?"1":"0", NULL); +// } if (emfv->uic) { state = (folder->folder_flags & CAMEL_FOLDER_IS_TRASH) == 0; @@ -1618,26 +1618,26 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri) e_search_bar_paint ((ESearchBar *)emfb->search); } - /* This function gets triggered several times at startup, - * so we don't want to reset the message suppression state - * unless we're actually switching to a different folder. */ - if (different_folder) - p->suppress_message_selection = FALSE; - - if (!p->suppress_message_selection) - sstate = camel_object_meta_get ( - folder, "evolution:selected_uid"); - else - sstate = NULL; - - g_free (p->select_uid); - p->select_uid = sstate; - - if (emfv->list->cursor_uid == NULL && emfb->priv->list_built_id == 0) - p->list_built_id = g_signal_connect(emfv->list, "message_list_built", G_CALLBACK (emfb_list_built), emfv); - } - - message_list_thaw(emfv->list); +// /* This function gets triggered several times at startup, +// * so we don't want to reset the message suppression state +// * unless we're actually switching to a different folder. */ +// if (different_folder) +// p->suppress_message_selection = FALSE; +// +// if (!p->suppress_message_selection) +// sstate = camel_object_meta_get ( +// folder, "evolution:selected_uid"); +// else +// sstate = NULL; +// +// g_free (p->select_uid); +// p->select_uid = sstate; +// +// if (emfv->list->cursor_uid == NULL && emfb->priv->list_built_id == 0) +// p->list_built_id = g_signal_connect(emfv->list, "message_list_built", G_CALLBACK (emfb_list_built), emfv); +// } +// +// message_list_thaw(emfv->list); } static void -- cgit 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/em-folder-browser.c | 289 +---------------------------------------------- 1 file changed, 2 insertions(+), 287 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index f7a6746e30..e9e48c9a1b 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -212,29 +212,6 @@ enum { /* label IDs are set above this number */ #define VIEW_ITEMS_MASK 63 -/* Options for View */ -static EMFBSearchBarItem emfb_view_items[] = { - {{ N_("All Messages"), VIEW_ALL_MESSAGES, 0 }, NULL}, - {{ N_("Unread Messages"), VIEW_UNREAD_MESSAGES, 0 }, "mail-unread"}, - {{ NULL, 0, 0 }, NULL}, - {{ N_("No Label"),VIEW_NO_LABEL, 0 }, NULL}, - {{ NULL, -1, 0 }, NULL} -}; - -/* TODO: Following options should be customizable */ -static EMFBSearchBarItem temp_view_items[] = { - {{ NULL, 0, 0 }, NULL}, - {{ N_("Read Messages"), VIEW_READ_MESSAGES, 0 }, "mail-read"}, - {{ N_("Recent Messages"), VIEW_RECENT_MESSAGES, 0 }, NULL}, - {{ N_("Last 5 Days' Messages"), VIEW_LAST_FIVE_DAYS, 0 }, NULL}, - {{ N_("Messages with Attachments"), VIEW_WITH_ATTACHMENTS, 0 }, "mail-attachment"}, - {{ N_("Important Messages"), VIEW_MESSAGES_MARKED_AS_IMPORTANT, 0}, "emblem-important"}, - {{ N_("Messages Not Junk"), VIEW_NOT_JUNK, 0 }, "mail-mark-notjunk"}, -/* { NULL, 0, NULL }, */ -/* { N_("Customize"), NOT_IMPLEMENTED, NULL }, */ - {{ NULL, -1, 0 }, NULL} -}; - static ESearchBarItem emfb_search_scope_items[] = { E_FILTERBAR_CURRENT_FOLDER, E_FILTERBAR_CURRENT_ACCOUNT, @@ -245,165 +222,6 @@ static ESearchBarItem emfb_search_scope_items[] = { static EMFolderViewClass *emfb_parent; -static void -free_one_ui_file (gpointer data, - gpointer user_data) -{ - g_free (data); -} - -static GtkWidget * -generate_viewoption_menu (GtkWidget *emfv) -{ - GtkWidget *menu, *menu_item; - gint i = 0; - GSList *l; - - menu = gtk_menu_new (); - - 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) { - 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 (); - gtk_widget_set_sensitive (menu_item, FALSE); - } - - g_object_set_data (G_OBJECT (menu_item), "EsbItemId", - GINT_TO_POINTER (emfb_view_items[i].search.id)); - - gtk_widget_show (menu_item); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item); - } - - /* Add the labels */ - for (l = mail_config_get_labels (), i = 0; l; l = l->next, i++) { - EUtilLabel *label = l->data; - if (label->name && *(label->name)) { - char *str; - GdkPixmap *pixmap; - GdkColor colour; - GdkGC *gc; - GtkWidget *image; - - gdk_color_parse(label->colour, &colour); - gdk_colormap_alloc_color(gdk_colormap_get_system(), &colour, FALSE, TRUE); - - pixmap = gdk_pixmap_new(((GtkWidget *)emfv)->window, 16, 16, -1); - gc = gdk_gc_new(((GtkWidget *)emfv)->window); - gdk_gc_set_foreground(gc, &colour); - gdk_draw_rectangle(pixmap, gc, TRUE, 0, 0, 16, 16); - g_object_unref(gc); - - image = gtk_image_new_from_pixmap(pixmap, NULL); - str = e_str_without_underscores (label->name); - menu_item = gtk_image_menu_item_new_with_label (str); - g_free (str); - gtk_image_menu_item_set_image ((GtkImageMenuItem *)menu_item, image); - g_object_set_data (G_OBJECT (menu_item), "EsbItemId", - GINT_TO_POINTER (VIEW_LABEL + (VIEW_ITEMS_MASK + 1) * i)); - - g_object_set_data_full (G_OBJECT (menu_item), "LabelTag", - g_strdup (strncmp (label->tag, "$Label", 6) == 0 ? label->tag + 6 : label->tag), - g_free); - } - - gtk_widget_show (menu_item); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item); - } - - for (i = 0; temp_view_items[i].search.id != -1; ++i) { - if (temp_view_items[i].search.text) { - 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) { - 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 (); - gtk_widget_set_sensitive (menu_item, FALSE); - } - - g_object_set_data (G_OBJECT (menu_item), "EsbItemId", - GINT_TO_POINTER (temp_view_items[i].search.id)); - - gtk_widget_show (menu_item); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item); - } - - return menu; -} - -#if 0 -static GArray * -viewoption_menu_generator () -{ - GArray *menu = g_array_new (FALSE, FALSE, sizeof (ESearchBarItem)); - gint i = 0; - ESearchBarItem dup_item; - GSList *l; - - for (i = 0; emfb_view_items[i].search.id != -1; i++) - g_array_append_vals (menu, &emfb_view_items[i], 1); - - for (l = mail_config_get_labels (); l; l = l->next) { - ESearchBarItem item; - EUtilLabel *label = l->data; - - item.text = label->name; - item.id = VIEW_LABEL; - - g_array_append_vals (menu, &item, 1); - } - - dup_item.id = -1; - dup_item.text = NULL; - g_array_append_vals (menu, &dup_item, 1); - - return menu; -} -#endif - -static void -emfb_realize (GtkWidget *widget) -{ - GtkWidget *menu; - EMFolderBrowser *emfb = (EMFolderBrowser *)widget; - int id; - - menu = generate_viewoption_menu (widget); - id = e_search_bar_get_viewitem_id (E_SEARCH_BAR (emfb->search)); - - e_search_bar_set_viewoption_menu (E_SEARCH_BAR (emfb->search), menu); - - /* restore last selected ID, if any */ - if (id != -1) - e_search_bar_set_viewitem_id (E_SEARCH_BAR (emfb->search), id); -} - static void html_scroll (GtkHTML *html, GtkOrientation orientation, @@ -424,29 +242,6 @@ html_scroll (GtkHTML *html, } } -static gboolean -labels_changed_idle_cb (gpointer user_data) -{ - EMFolderBrowser *emfb = (EMFolderBrowser*) user_data; - - emfb_realize (GTK_WIDGET (emfb)); - - emfb->priv->labels_change_idle_id = 0; - - return FALSE; -} - -static void -gconf_labels_changed (GConfClient *client, guint cnxn_id, - GConfEntry *entry, gpointer user_data) -{ - EMFolderBrowser *emfb = (EMFolderBrowser*) user_data; - - /* regenerate menu option whenever something changed in labels */ - if (emfb && !emfb->priv->labels_change_idle_id) - emfb->priv->labels_change_idle_id = g_idle_add (labels_changed_idle_cb, emfb); -} - static void emfb_init(GObject *o) { @@ -503,8 +298,8 @@ emfb_init(GObject *o) gtk_box_pack_start((GtkBox *)emfb, (GtkWidget *)emfb->search, FALSE, TRUE, 0); - gconf = mail_config_get_gconf_client (); - emfb->priv->labels_change_notify_id = gconf_client_notify_add (gconf, E_UTIL_LABELS_GCONF_KEY, gconf_labels_changed, emfb, NULL, NULL); +// gconf = mail_config_get_gconf_client (); +// emfb->priv->labels_change_notify_id = gconf_client_notify_add (gconf, E_UTIL_LABELS_GCONF_KEY, gconf_labels_changed, emfb, NULL, NULL); } // emfb->priv->show_wide = gconf_client_get_bool(mail_config_get_gconf_client(), "/apps/evolution/mail/display/show_wide", NULL); @@ -539,17 +334,6 @@ emfb_init(GObject *o) } -//static void -//emfb_finalise(GObject *o) -//{ -// EMFolderBrowser *emfb = (EMFolderBrowser *)o; -// -// g_free (emfb->priv->select_uid); -// g_free (emfb->priv); -// -// ((GObjectClass *)emfb_parent)->finalize(o); -//} - static void emfb_destroy(GtkObject *o) { @@ -591,75 +375,6 @@ emfb_destroy(GtkObject *o) ((GtkObjectClass *)emfb_parent)->destroy(o); } -//static void -//emfb_class_init(GObjectClass *klass) -//{ -// klass->finalize = emfb_finalise; -// -// folder_browser_signals[ACCOUNT_SEARCH_ACTIVATED] = -// g_signal_new ("account_search_activated", -// G_TYPE_FROM_CLASS (klass), -// G_SIGNAL_RUN_LAST, -// G_STRUCT_OFFSET (EMFolderBrowserClass, account_search_activated), -// NULL, -// NULL, -// g_cclosure_marshal_VOID__VOID, -// G_TYPE_NONE, 0); -// -// folder_browser_signals[ACCOUNT_SEARCH_CLEARED] = -// g_signal_new ("account_search_cleared", -// G_TYPE_FROM_CLASS (klass), -// G_SIGNAL_RUN_LAST, -// G_STRUCT_OFFSET (EMFolderBrowserClass, account_search_cleared), -// NULL, -// NULL, -// g_cclosure_marshal_VOID__VOID, -// G_TYPE_NONE, 0); -// -// -// ((GtkObjectClass *)klass)->destroy = emfb_destroy; -// ((EMFolderViewClass *)klass)->set_folder = emfb_set_folder; -// ((EMFolderViewClass *)klass)->activate = emfb_activate; -//} - -//GType -//em_folder_browser_get_type(void) -//{ -// static GType type = 0; -// -// if (type == 0) { -// static const GTypeInfo info = { -// sizeof(EMFolderBrowserClass), -// NULL, NULL, -// (GClassInitFunc)emfb_class_init, -// NULL, NULL, -// sizeof(EMFolderBrowser), 0, -// (GInstanceInitFunc)emfb_init -// }; -// emfb_parent = g_type_class_ref(em_folder_view_get_type()); -// type = g_type_register_static(em_folder_view_get_type(), "EMFolderBrowser", &info, 0); -// } -// -// return type; -//} - -//GtkWidget *em_folder_browser_new(void) -//{ -// EMFolderBrowser *emfb = g_object_new(em_folder_browser_get_type(), 0); -// -// /** @HookPoint-EMMenu: Main Mail Menu -// * @Id: org.gnome.evolution.mail.browser -// * @Class: org.gnome.evolution.mail.bonobomenu:1.0 -// * @Target: EMMenuTargetSelect -// * -// * The main menu of mail view of the main application window. -// * If the folder is NULL (not selected), the target will be empty, not NULL. -// */ -// ((EMFolderView *)emfb)->menu = em_menu_new("org.gnome.evolution.mail.browser"); -// -// return (GtkWidget *)emfb; -//} - void em_folder_browser_show_preview(EMFolderBrowser *emfb, gboolean state) { if ((emfb->view.preview_active ^ state) == 0 -- cgit From ccd8e3964f548798eb05a430b3ea81b2760069cc Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 14 Feb 2009 00:30:08 +0000 Subject: Get mail search bar partially working without help from EFilterBar. Search scope (current folder, current account, etc.) is still ignored. svn path=/branches/kill-bonobo/; revision=37263 --- mail/em-folder-browser.c | 326 +++++++++++++++++++++++------------------------ 1 file changed, 163 insertions(+), 163 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index e9e48c9a1b..bcc25002b7 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -274,34 +274,34 @@ emfb_init(GObject *o) emfb->view.enable_map = g_slist_prepend(emfb->view.enable_map, (void *)emfb_enable_map); - if (search_context) { - const char *systemrules = g_object_get_data (G_OBJECT (search_context), "system"); - const char *userrules = g_object_get_data (G_OBJECT (search_context), "user"); - EFilterBar *efb; - GConfClient *gconf; - - emfb->search = e_filter_bar_new(search_context, systemrules, userrules, emfb_search_config_search, emfb); - efb = (EFilterBar *)emfb->search; - efb->account_search_vf = NULL; - efb->all_account_search_vf = NULL; - efb->account_search_cancel = NULL; - e_search_bar_set_menu ((ESearchBar *)emfb->search, emfb_search_items); - e_search_bar_set_scopeoption ((ESearchBar *)emfb->search, emfb_search_scope_items); - e_search_bar_scope_enable ((ESearchBar *)emfb->search, E_FILTERBAR_CURRENT_MESSAGE_ID, FALSE); - emfb->priv->scope_restricted = TRUE; - g_signal_connect(emfb, "realize", G_CALLBACK(emfb_realize), NULL); - gtk_widget_show((GtkWidget *)emfb->search); - - p->search_menu_activated_id = g_signal_connect(emfb->search, "menu_activated", G_CALLBACK(emfb_search_menu_activated), emfb); - p->search_activated_id = g_signal_connect(emfb->search, "search_activated", G_CALLBACK(emfb_search_search_activated), emfb); - g_signal_connect(emfb->search, "search_cleared", G_CALLBACK(emfb_search_search_cleared), NULL); - - gtk_box_pack_start((GtkBox *)emfb, (GtkWidget *)emfb->search, FALSE, TRUE, 0); - +// if (search_context) { +// const char *systemrules = g_object_get_data (G_OBJECT (search_context), "system"); +// const char *userrules = g_object_get_data (G_OBJECT (search_context), "user"); +// EFilterBar *efb; +// GConfClient *gconf; +// +// emfb->search = e_filter_bar_new(search_context, systemrules, userrules, emfb_search_config_search, emfb); +// efb = (EFilterBar *)emfb->search; +// efb->account_search_vf = NULL; +// efb->all_account_search_vf = NULL; +// efb->account_search_cancel = NULL; +// e_search_bar_set_menu ((ESearchBar *)emfb->search, emfb_search_items); +// e_search_bar_set_scopeoption ((ESearchBar *)emfb->search, emfb_search_scope_items); +// e_search_bar_scope_enable ((ESearchBar *)emfb->search, E_FILTERBAR_CURRENT_MESSAGE_ID, FALSE); +// emfb->priv->scope_restricted = TRUE; +// g_signal_connect(emfb, "realize", G_CALLBACK(emfb_realize), NULL); +// gtk_widget_show((GtkWidget *)emfb->search); +// +// p->search_menu_activated_id = g_signal_connect(emfb->search, "menu_activated", G_CALLBACK(emfb_search_menu_activated), emfb); +// p->search_activated_id = g_signal_connect(emfb->search, "search_activated", G_CALLBACK(emfb_search_search_activated), emfb); +// g_signal_connect(emfb->search, "search_cleared", G_CALLBACK(emfb_search_search_cleared), NULL); +// +// gtk_box_pack_start((GtkBox *)emfb, (GtkWidget *)emfb->search, FALSE, TRUE, 0); +// // gconf = mail_config_get_gconf_client (); // emfb->priv->labels_change_notify_id = gconf_client_notify_add (gconf, E_UTIL_LABELS_GCONF_KEY, gconf_labels_changed, emfb, NULL, NULL); - } - +// } +// // emfb->priv->show_wide = gconf_client_get_bool(mail_config_get_gconf_client(), "/apps/evolution/mail/display/show_wide", NULL); // emfb->vpane = emfb->priv->show_wide?gtk_hpaned_new():gtk_vpaned_new(); // @@ -470,144 +470,144 @@ emfb_search_menu_activated(ESearchBar *esb, int id, EMFolderBrowser *emfb) } } -static void -emfb_search_config_search(EFilterBar *efb, FilterRule *rule, int id, const char *query, void *data) -{ - EMFolderBrowser *emfb = data; - GList *partl; - struct _camel_search_words *words; - int i; - GSList *strings = NULL; - - /* we scan the parts of a rule, and set all the types we know about to the query string */ - partl = rule->parts; - while (partl) { - FilterPart *part = partl->data; - - if (!strcmp(part->name, "subject")) { - FilterInput *input = (FilterInput *)filter_part_find_element(part, "subject"); - if (input) - filter_input_set_value(input, query); - } else if (!strcmp(part->name, "body")) { - FilterInput *input = (FilterInput *)filter_part_find_element(part, "word"); - if (input) - filter_input_set_value(input, query); - - words = camel_search_words_split((unsigned char *)query); - for (i=0;ilen;i++) - strings = g_slist_prepend(strings, g_strdup(words->words[i]->word)); - camel_search_words_free (words); - } else if(!strcmp(part->name, "sender")) { - FilterInput *input = (FilterInput *)filter_part_find_element(part, "sender"); - if (input) - filter_input_set_value(input, query); - } else if(!strcmp(part->name, "to")) { - FilterInput *input = (FilterInput *)filter_part_find_element(part, "recipient"); - if (input) - filter_input_set_value(input, query); - } - - partl = partl->next; - } - - em_format_html_display_set_search(emfb->view.preview, - EM_FORMAT_HTML_DISPLAY_SEARCH_SECONDARY|EM_FORMAT_HTML_DISPLAY_SEARCH_ICASE, - strings); - while (strings) { - GSList *n = strings->next; - g_free(strings->data); - g_slist_free_1(strings); - strings = n; - } -} - -static char * -get_view_query (ESearchBar *esb, CamelFolder *folder, const char *folder_uri) -{ - char *view_sexp = NULL; - gint id; - GtkWidget *menu_item; - char *tag; - gboolean duplicate = TRUE; - - /* Get the current selected view */ - id = e_search_bar_get_viewitem_id (esb); - menu_item = e_search_bar_get_selected_viewitem (esb); - - switch (id & VIEW_ITEMS_MASK) { - case VIEW_ALL_MESSAGES: - /* one space indicates no filtering */ - view_sexp = " "; - break; - - case VIEW_UNREAD_MESSAGES: - view_sexp = "(match-all (not (system-flag \"Seen\")))"; - break; - case VIEW_READ_MESSAGES: - view_sexp = "(match-all (system-flag \"Seen\" ))"; - break; - case VIEW_RECENT_MESSAGES: - if (!em_utils_folder_is_sent (folder, folder_uri)) - view_sexp = "(match-all (> (get-received-date) (- (get-current-date) 86400)))"; - else - view_sexp = "(match-all (> (get-sent-date) (- (get-current-date) 86400)))"; - break; - case VIEW_LAST_FIVE_DAYS: - if (!em_utils_folder_is_sent (folder, folder_uri)) - view_sexp = " (match-all (> (get-received-date) (- (get-current-date) 432000)))"; - else - view_sexp = " (match-all (> (get-sent-date) (- (get-current-date) 432000)))"; - break; - case VIEW_WITH_ATTACHMENTS: - view_sexp = "(match-all (system-flag \"Attachments\" ))"; - break; - case VIEW_NOT_JUNK: - view_sexp = "(match-all (not (system-flag \"junk\")))"; - break; - case VIEW_NO_LABEL: { - GSList *l; - GString *s = g_string_new ("(and"); - - for (l = mail_config_get_labels (); l; l = l->next) { - EUtilLabel *label = (EUtilLabel *)l->data; - - if (label && label->tag) { - const gchar *tag = label->tag; - - if (strncmp (tag, "$Label", 6) == 0) - tag += 6; - - g_string_append_printf (s, " (match-all (not (or (= (user-tag \"label\") \"%s\") (user-flag \"$Label%s\") (user-flag \"%s\"))))", tag, tag, tag); - } - } - - g_string_append (s, ")"); - - duplicate = FALSE; - view_sexp = g_string_free (s, FALSE); - } break; - case VIEW_LABEL: - tag = (char *)g_object_get_data (G_OBJECT (menu_item), "LabelTag"); - view_sexp = g_strdup_printf ("(match-all (or (= (user-tag \"label\") \"%s\") (user-flag \"$Label%s\") (user-flag \"%s\")))", tag, tag, tag); - duplicate = FALSE; - break; - case VIEW_MESSAGES_MARKED_AS_IMPORTANT: - view_sexp = "(match-all (system-flag \"Flagged\" ))"; - break; - case VIEW_ANY_FIELD_CONTAINS: - break; - - case VIEW_CUSTOMIZE: - /* one space indicates no filtering, so here use two */ - view_sexp = " "; - break; - } - - if (duplicate) - view_sexp = g_strdup (view_sexp); +//static void +//emfb_search_config_search(EFilterBar *efb, FilterRule *rule, int id, const char *query, void *data) +//{ +// EMFolderBrowser *emfb = data; +// GList *partl; +// struct _camel_search_words *words; +// int i; +// GSList *strings = NULL; +// +// /* we scan the parts of a rule, and set all the types we know about to the query string */ +// partl = rule->parts; +// while (partl) { +// FilterPart *part = partl->data; +// +// if (!strcmp(part->name, "subject")) { +// FilterInput *input = (FilterInput *)filter_part_find_element(part, "subject"); +// if (input) +// filter_input_set_value(input, query); +// } else if (!strcmp(part->name, "body")) { +// FilterInput *input = (FilterInput *)filter_part_find_element(part, "word"); +// if (input) +// filter_input_set_value(input, query); +// +// words = camel_search_words_split((unsigned char *)query); +// for (i=0;ilen;i++) +// strings = g_slist_prepend(strings, g_strdup(words->words[i]->word)); +// camel_search_words_free (words); +// } else if(!strcmp(part->name, "sender")) { +// FilterInput *input = (FilterInput *)filter_part_find_element(part, "sender"); +// if (input) +// filter_input_set_value(input, query); +// } else if(!strcmp(part->name, "to")) { +// FilterInput *input = (FilterInput *)filter_part_find_element(part, "recipient"); +// if (input) +// filter_input_set_value(input, query); +// } +// +// partl = partl->next; +// } +// +// em_format_html_display_set_search(emfb->view.preview, +// EM_FORMAT_HTML_DISPLAY_SEARCH_SECONDARY|EM_FORMAT_HTML_DISPLAY_SEARCH_ICASE, +// strings); +// while (strings) { +// GSList *n = strings->next; +// g_free(strings->data); +// g_slist_free_1(strings); +// strings = n; +// } +//} - return view_sexp; -} +//static char * +//get_view_query (ESearchBar *esb, CamelFolder *folder, const char *folder_uri) +//{ +// char *view_sexp = NULL; +// gint id; +// GtkWidget *menu_item; +// char *tag; +// gboolean duplicate = TRUE; +// +// /* Get the current selected view */ +// id = e_search_bar_get_viewitem_id (esb); +// menu_item = e_search_bar_get_selected_viewitem (esb); +// +// switch (id & VIEW_ITEMS_MASK) { +// case VIEW_ALL_MESSAGES: +// /* one space indicates no filtering */ +// view_sexp = " "; +// break; +// +// case VIEW_UNREAD_MESSAGES: +// view_sexp = "(match-all (not (system-flag \"Seen\")))"; +// break; +// case VIEW_READ_MESSAGES: +// view_sexp = "(match-all (system-flag \"Seen\" ))"; +// break; +// case VIEW_RECENT_MESSAGES: +// if (!em_utils_folder_is_sent (folder, folder_uri)) +// view_sexp = "(match-all (> (get-received-date) (- (get-current-date) 86400)))"; +// else +// view_sexp = "(match-all (> (get-sent-date) (- (get-current-date) 86400)))"; +// break; +// case VIEW_LAST_FIVE_DAYS: +// if (!em_utils_folder_is_sent (folder, folder_uri)) +// view_sexp = " (match-all (> (get-received-date) (- (get-current-date) 432000)))"; +// else +// view_sexp = " (match-all (> (get-sent-date) (- (get-current-date) 432000)))"; +// break; +// case VIEW_WITH_ATTACHMENTS: +// view_sexp = "(match-all (system-flag \"Attachments\" ))"; +// break; +// case VIEW_NOT_JUNK: +// view_sexp = "(match-all (not (system-flag \"junk\")))"; +// break; +// case VIEW_NO_LABEL: { +// GSList *l; +// GString *s = g_string_new ("(and"); +// +// for (l = mail_config_get_labels (); l; l = l->next) { +// EUtilLabel *label = (EUtilLabel *)l->data; +// +// if (label && label->tag) { +// const gchar *tag = label->tag; +// +// if (strncmp (tag, "$Label", 6) == 0) +// tag += 6; +// +// g_string_append_printf (s, " (match-all (not (or (= (user-tag \"label\") \"%s\") (user-flag \"$Label%s\") (user-flag \"%s\"))))", tag, tag, tag); +// } +// } +// +// g_string_append (s, ")"); +// +// duplicate = FALSE; +// view_sexp = g_string_free (s, FALSE); +// } break; +// case VIEW_LABEL: +// tag = (char *)g_object_get_data (G_OBJECT (menu_item), "LabelTag"); +// view_sexp = g_strdup_printf ("(match-all (or (= (user-tag \"label\") \"%s\") (user-flag \"$Label%s\") (user-flag \"%s\")))", tag, tag, tag); +// duplicate = FALSE; +// break; +// case VIEW_MESSAGES_MARKED_AS_IMPORTANT: +// view_sexp = "(match-all (system-flag \"Flagged\" ))"; +// break; +// case VIEW_ANY_FIELD_CONTAINS: +// break; +// +// case VIEW_CUSTOMIZE: +// /* one space indicates no filtering, so here use two */ +// view_sexp = " "; +// break; +// } +// +// if (duplicate) +// view_sexp = g_strdup (view_sexp); +// +// return view_sexp; +//} struct _setup_msg { -- cgit From f7e298665b02f72890c6681e6d21ef5601beccbb Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sun, 15 Feb 2009 03:27:31 +0000 Subject: Merge revisions 37200:3266 from trunk. svn path=/branches/kill-bonobo/; revision=37270 --- mail/em-folder-browser.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index bcc25002b7..572b51239b 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -88,6 +88,7 @@ #include "em-folder-utils.h" #include "em-subscribe-editor.h" #include "em-menu.h" +#include "em-event.h" #include "message-list.h" #include "mail-component.h" @@ -249,6 +250,9 @@ emfb_init(GObject *o) RuleContext *search_context = mail_component_peek_search_context (mail_component_peek ()); struct _EMFolderBrowserPrivate *p; + EMEvent *eme; + EMEventTargetFolderBrowser *target; + p = emfb->priv = g_malloc0(sizeof(struct _EMFolderBrowserPrivate)); emfb->view.preview_active = TRUE; @@ -329,6 +333,17 @@ emfb_init(GObject *o) // gtk_paned_pack2 (GTK_PANED (emfb->vpane), p->preview, TRUE, FALSE); // gtk_widget_show(p->preview); + /** @HookPoint-EMFolderBrower: Folder Browser + * @Id: emfb.created + * @Class: org.gnome.evolution.mail.events:1.0 + * @Target: EMFolderBrowser + */ + + eme = em_event_peek(); + target = em_event_target_new_folder_browser (eme, emfb); + + e_event_emit((EEvent *)eme, "emfb.created", (EEventTarget *)target); + g_signal_connect (((EMFolderView *) emfb)->list->tree, "key_press", G_CALLBACK(emfb_list_key_press), emfb); g_signal_connect (((EMFolderView *) emfb)->list, "message_selected", G_CALLBACK (emfb_list_message_selected), emfb); -- cgit From 85d0142d21286ce87cd5f6c3d1e2f71aa994151f Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Mon, 2 Mar 2009 03:14:42 +0000 Subject: Move text searching UI into a new EMailSearchBar widget. svn path=/branches/kill-bonobo/; revision=37351 --- mail/em-folder-browser.c | 266 ----------------------------------------------- 1 file changed, 266 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index 572b51239b..97945cad56 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -58,13 +58,6 @@ #include #include -#include -#include -#include -#include -#include -#include - /* for efilterbar stuff */ #include #include "mail-vfolder.h" @@ -485,146 +478,6 @@ emfb_search_menu_activated(ESearchBar *esb, int id, EMFolderBrowser *emfb) } } -//static void -//emfb_search_config_search(EFilterBar *efb, FilterRule *rule, int id, const char *query, void *data) -//{ -// EMFolderBrowser *emfb = data; -// GList *partl; -// struct _camel_search_words *words; -// int i; -// GSList *strings = NULL; -// -// /* we scan the parts of a rule, and set all the types we know about to the query string */ -// partl = rule->parts; -// while (partl) { -// FilterPart *part = partl->data; -// -// if (!strcmp(part->name, "subject")) { -// FilterInput *input = (FilterInput *)filter_part_find_element(part, "subject"); -// if (input) -// filter_input_set_value(input, query); -// } else if (!strcmp(part->name, "body")) { -// FilterInput *input = (FilterInput *)filter_part_find_element(part, "word"); -// if (input) -// filter_input_set_value(input, query); -// -// words = camel_search_words_split((unsigned char *)query); -// for (i=0;ilen;i++) -// strings = g_slist_prepend(strings, g_strdup(words->words[i]->word)); -// camel_search_words_free (words); -// } else if(!strcmp(part->name, "sender")) { -// FilterInput *input = (FilterInput *)filter_part_find_element(part, "sender"); -// if (input) -// filter_input_set_value(input, query); -// } else if(!strcmp(part->name, "to")) { -// FilterInput *input = (FilterInput *)filter_part_find_element(part, "recipient"); -// if (input) -// filter_input_set_value(input, query); -// } -// -// partl = partl->next; -// } -// -// em_format_html_display_set_search(emfb->view.preview, -// EM_FORMAT_HTML_DISPLAY_SEARCH_SECONDARY|EM_FORMAT_HTML_DISPLAY_SEARCH_ICASE, -// strings); -// while (strings) { -// GSList *n = strings->next; -// g_free(strings->data); -// g_slist_free_1(strings); -// strings = n; -// } -//} - -//static char * -//get_view_query (ESearchBar *esb, CamelFolder *folder, const char *folder_uri) -//{ -// char *view_sexp = NULL; -// gint id; -// GtkWidget *menu_item; -// char *tag; -// gboolean duplicate = TRUE; -// -// /* Get the current selected view */ -// id = e_search_bar_get_viewitem_id (esb); -// menu_item = e_search_bar_get_selected_viewitem (esb); -// -// switch (id & VIEW_ITEMS_MASK) { -// case VIEW_ALL_MESSAGES: -// /* one space indicates no filtering */ -// view_sexp = " "; -// break; -// -// case VIEW_UNREAD_MESSAGES: -// view_sexp = "(match-all (not (system-flag \"Seen\")))"; -// break; -// case VIEW_READ_MESSAGES: -// view_sexp = "(match-all (system-flag \"Seen\" ))"; -// break; -// case VIEW_RECENT_MESSAGES: -// if (!em_utils_folder_is_sent (folder, folder_uri)) -// view_sexp = "(match-all (> (get-received-date) (- (get-current-date) 86400)))"; -// else -// view_sexp = "(match-all (> (get-sent-date) (- (get-current-date) 86400)))"; -// break; -// case VIEW_LAST_FIVE_DAYS: -// if (!em_utils_folder_is_sent (folder, folder_uri)) -// view_sexp = " (match-all (> (get-received-date) (- (get-current-date) 432000)))"; -// else -// view_sexp = " (match-all (> (get-sent-date) (- (get-current-date) 432000)))"; -// break; -// case VIEW_WITH_ATTACHMENTS: -// view_sexp = "(match-all (system-flag \"Attachments\" ))"; -// break; -// case VIEW_NOT_JUNK: -// view_sexp = "(match-all (not (system-flag \"junk\")))"; -// break; -// case VIEW_NO_LABEL: { -// GSList *l; -// GString *s = g_string_new ("(and"); -// -// for (l = mail_config_get_labels (); l; l = l->next) { -// EUtilLabel *label = (EUtilLabel *)l->data; -// -// if (label && label->tag) { -// const gchar *tag = label->tag; -// -// if (strncmp (tag, "$Label", 6) == 0) -// tag += 6; -// -// g_string_append_printf (s, " (match-all (not (or (= (user-tag \"label\") \"%s\") (user-flag \"$Label%s\") (user-flag \"%s\"))))", tag, tag, tag); -// } -// } -// -// g_string_append (s, ")"); -// -// duplicate = FALSE; -// view_sexp = g_string_free (s, FALSE); -// } break; -// case VIEW_LABEL: -// tag = (char *)g_object_get_data (G_OBJECT (menu_item), "LabelTag"); -// view_sexp = g_strdup_printf ("(match-all (or (= (user-tag \"label\") \"%s\") (user-flag \"$Label%s\") (user-flag \"%s\")))", tag, tag, tag); -// duplicate = FALSE; -// break; -// case VIEW_MESSAGES_MARKED_AS_IMPORTANT: -// view_sexp = "(match-all (system-flag \"Flagged\" ))"; -// break; -// case VIEW_ANY_FIELD_CONTAINS: -// break; -// -// case VIEW_CUSTOMIZE: -// /* one space indicates no filtering, so here use two */ -// view_sexp = " "; -// break; -// } -// -// if (duplicate) -// view_sexp = g_strdup (view_sexp); -// -// return view_sexp; -//} - - struct _setup_msg { MailMsg base; @@ -1081,125 +934,6 @@ emfb_hide_deleted(BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_E em_folder_view_set_hide_deleted(emfv, state[0] != '0'); } -//static void -//emfb_list_scrolled (MessageList *ml, EMFolderBrowser *emfb) -//{ -// EMFolderView *emfv = (EMFolderView *) emfb; -// double position; -// char *state; -// -// position = message_list_get_scrollbar_position (ml); -// state = g_strdup_printf ("%f", position); -// -// if (camel_object_meta_set (emfv->folder, "evolution:list_scroll_position", state)) -// camel_object_state_write (emfv->folder); -// -// g_free (state); -//} - -//static gboolean -//scroll_idle_cb (EMFolderBrowser *emfb) -//{ -// EMFolderView *emfv = (EMFolderView *) emfb; -// double position; -// char *state; -// -// if ((state = camel_object_meta_get (emfv->folder, "evolution:list_scroll_position"))) { -// position = strtod (state, NULL); -// g_free (state); -// } else { -// position = emfb->priv->default_scroll_position; -// } -// -// message_list_set_scrollbar_position (emfv->list, position); -// -// emfb->priv->list_scrolled_id = g_signal_connect (emfv->list, "message_list_scrolled", G_CALLBACK (emfb_list_scrolled), emfb); -// -// emfb->priv->idle_scroll_id = 0; -// -// return FALSE; -//} - -//static void -//emfb_gui_folder_changed(CamelFolder *folder, void *dummy, EMFolderBrowser *emfb) -//{ -// if (emfb->priv->select_uid) { -// CamelMessageInfo *mi; -// -// mi = camel_folder_get_message_info(emfb->view.folder, emfb->priv->select_uid); -// if (mi) { -// camel_folder_free_message_info(emfb->view.folder, mi); -// em_folder_view_set_message(&emfb->view, emfb->priv->select_uid, FALSE); -// g_free (emfb->priv->select_uid); -// emfb->priv->select_uid = NULL; -// } -// } -// -// g_object_unref(emfb); -//} - -//static void -//emfb_folder_changed(CamelFolder *folder, CamelFolderChangeInfo *changes, EMFolderBrowser *emfb) -//{ -// g_object_ref(emfb); -// mail_async_event_emit(emfb->view.async, MAIL_ASYNC_GUI, (MailAsyncFunc)emfb_gui_folder_changed, folder, NULL, emfb); -//} - -//static void -//emfb_etree_unfreeze (GtkWidget *widget, GdkEvent *event, EMFolderView *emfv) -//{ -// -// ETableItem *item = e_tree_get_item (emfv->list->tree); -// -// g_object_set_data (G_OBJECT (((GnomeCanvasItem *) item)->canvas), "freeze-cursor", 0); -//} - - -/* TODO: This should probably be handled by message-list, by storing/queueing - up the select operation if its busy rebuilding the message-list */ -//static void -//emfb_list_built (MessageList *ml, EMFolderBrowser *emfb) -//{ -// EMFolderView *emfv = (EMFolderView *) emfb; -// double position = 0.0f; -// -// g_signal_handler_disconnect (ml, emfb->priv->list_built_id); -// emfb->priv->list_built_id = 0; -// -// if (emfv->list->cursor_uid == NULL) { -// if (emfb->priv->select_uid) { -// CamelMessageInfo *mi; -// -// /* If the message isn't in the folder yet, keep select_uid around, it could be caught by -// folder_changed, at some later date */ -// mi = camel_folder_get_message_info(emfv->folder, emfb->priv->select_uid); -// if (mi) { -// camel_folder_free_message_info(emfv->folder, mi); -// em_folder_view_set_message(emfv, emfb->priv->select_uid, TRUE); -// g_free (emfb->priv->select_uid); -// emfb->priv->select_uid = NULL; -// } -// -// /* change the default to the current position */ -// position = message_list_get_scrollbar_position (ml); -// } else { -// /* NOTE: not all users want this, so we need a preference for it perhaps? see bug #52887 */ -// /* FIXME: if the 1st message in the list is unread, this will actually select the second unread msg */ -// /*message_list_select (ml, MESSAGE_LIST_SELECT_NEXT, 0, CAMEL_MESSAGE_SEEN, TRUE);*/ -// } -// } -// -// emfb->priv->default_scroll_position = position; -// -// /* FIXME: this is a gross workaround for an etable bug that I can't fix - bug #55303 */ -// /* this needs to be a lower priority than anything in e-table-item/e-canvas, since -// * e_canvas_item_region_show_relay() uses a timeout, we have to use a timeout of the -// * same interval but a lower priority. */ -// emfb->priv->idle_scroll_id = g_timeout_add_full (G_PRIORITY_LOW, 250, (GSourceFunc) scroll_idle_cb, emfb, NULL); -// /* FIXME: This is another ugly hack done to hide a bug that above hack leaves. */ -// g_signal_connect (((GtkScrolledWindow *) ml)->vscrollbar, "button-press-event", G_CALLBACK (emfb_etree_unfreeze), emfb); -//} - static void emfb_set_search_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri) { -- cgit From 9b73ae5c7d2c016a3b1f07b1040355063b32814b Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 23 Apr 2009 16:48:05 -0400 Subject: Miscellaneous bug fixes. --- mail/em-folder-browser.c | 56 ------------------------------------------------ 1 file changed, 56 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index 97945cad56..5d47304d84 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -140,7 +140,6 @@ static void emfb_search_menu_activated(ESearchBar *esb, int id, EMFolderBrowser static void emfb_search_search_activated(ESearchBar *esb, EMFolderBrowser *emfb); static void emfb_search_search_cleared(ESearchBar *esb); -static int emfb_list_key_press(ETree *tree, int row, ETreePath path, int col, GdkEvent *ev, EMFolderBrowser *emfb); static void emfb_list_message_selected (MessageList *ml, const char *uid, EMFolderBrowser *emfb); static void emfb_expand_all_threads(BonoboUIComponent *uid, void *data, const char *path); @@ -337,7 +336,6 @@ emfb_init(GObject *o) e_event_emit((EEvent *)eme, "emfb.created", (EEventTarget *)target); - g_signal_connect (((EMFolderView *) emfb)->list->tree, "key_press", G_CALLBACK(emfb_list_key_press), emfb); g_signal_connect (((EMFolderView *) emfb)->list, "message_selected", G_CALLBACK (emfb_list_message_selected), emfb); } @@ -818,60 +816,6 @@ emfb_search_search_cleared(ESearchBar *esb) /* ********************************************************************** */ -static int -emfb_list_key_press(ETree *tree, int row, ETreePath path, int col, GdkEvent *ev, EMFolderBrowser *emfb) -{ - gboolean state, folder_choose = TRUE; - if ((ev->key.state & GDK_CONTROL_MASK) != 0) - return FALSE; - - switch (ev->key.keyval) { - case GDK_space: - if (!emfb->view.preview->caret_mode && mail_config_get_enable_magic_spacebar ()) { - state = gtk_html_command(((EMFormatHTML *)((EMFolderView *) emfb)->preview)->html, "scroll-forward"); - if (!state) { - folder_choose = message_list_select(((EMFolderView *) emfb)->list, MESSAGE_LIST_SELECT_NEXT, 0, CAMEL_MESSAGE_SEEN); - if (!folder_choose) - folder_choose = message_list_select(((EMFolderView *) emfb)->list, - MESSAGE_LIST_SELECT_NEXT | MESSAGE_LIST_SELECT_WRAP, 0, CAMEL_MESSAGE_SEEN); - } - - } else - em_utils_adjustment_page(gtk_scrolled_window_get_vadjustment((GtkScrolledWindow *)emfb->priv->scroll), TRUE); - break; - case GDK_BackSpace: - if (!emfb->view.preview->caret_mode && mail_config_get_enable_magic_spacebar ()) { - state = gtk_html_command(((EMFormatHTML *)((EMFolderView *) emfb)->preview)->html, "scroll-backward"); - if (!state) { - folder_choose = message_list_select(((EMFolderView *) emfb)->list, MESSAGE_LIST_SELECT_PREVIOUS, 0, CAMEL_MESSAGE_SEEN); - if (!folder_choose) - folder_choose = message_list_select(((EMFolderView *) emfb)->list, - MESSAGE_LIST_SELECT_PREVIOUS | MESSAGE_LIST_SELECT_WRAP, 0, CAMEL_MESSAGE_SEEN); - } - - } else - em_utils_adjustment_page(gtk_scrolled_window_get_vadjustment((GtkScrolledWindow *)emfb->priv->scroll), FALSE); - break; - default: - return FALSE; - } - - if (!folder_choose && !emfb->view.preview->caret_mode && mail_config_get_enable_magic_spacebar ()) { - //check for unread messages. if yes .. rewindback to the folder - EMFolderTree *emft = g_object_get_data((GObject*)emfb, "foldertree"); - switch (ev->key.keyval) { - case GDK_space: - em_folder_tree_select_next_path (emft, TRUE); - break; - case GDK_BackSpace: - em_folder_tree_select_prev_path (emft, TRUE); - break; - } - gtk_widget_grab_focus ((GtkWidget *)((EMFolderView *) emfb)->list); - } - return TRUE; -} - static void emfb_list_message_selected (MessageList *ml, const char *uid, EMFolderBrowser *emfb) { -- cgit 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/em-folder-browser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index bfc69f9132..de4d48a77f 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -173,7 +173,7 @@ enum { static guint folder_browser_signals [LAST_SIGNAL] = {0, }; enum { - ESB_SAVE, + ESB_SAVE }; static ESearchBarItem emfb_search_items[] = { -- cgit 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/em-folder-browser.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index 201db814ec..c835a1b593 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.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: @@ -1476,8 +1476,8 @@ emfb_edit_select_all(BonoboUIComponent *uid, void *data, const char *path) emfb_expand_all_threads (uid, data, path); - /* The time out below is added so that the execution thread to - expand all conversations threads would've completed. + /* The time out below is added so that the execution thread to + expand all conversations threads would've completed. The timeout 505 is just to ensure that the value is a small delta more than the timeout value in expand_all_threads thread. */ -- cgit 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/em-folder-browser.c | 74 ++++++++++++++++++++++++------------------------ 1 file changed, 37 insertions(+), 37 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index 6a8a67b454..b72ce28722 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -114,7 +114,7 @@ struct _EMFolderBrowserPrivate { guint vpane_resize_id; guint list_built_id; /* hook onto list-built for delayed 'select first unread' stuff */ - char *select_uid; + gchar *select_uid; guint folder_changed_id; guint show_wide:1; @@ -132,19 +132,19 @@ typedef struct EMFBSearchBarItem { const gchar *image; } EMFBSearchBarItem; -static void emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, int state); -static void emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri); -static void emfb_set_search_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri); +static void emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, gint state); +static void emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const gchar *uri); +static void emfb_set_search_folder(EMFolderView *emfv, CamelFolder *folder, const gchar *uri); /* FilterBar stuff ... */ -static void emfb_search_config_search(EFilterBar *efb, FilterRule *rule, int id, const char *query, void *data); -static void emfb_search_menu_activated(ESearchBar *esb, int id, EMFolderBrowser *emfb); +static void emfb_search_config_search(EFilterBar *efb, FilterRule *rule, gint id, const gchar *query, gpointer data); +static void emfb_search_menu_activated(ESearchBar *esb, gint id, EMFolderBrowser *emfb); static void emfb_search_search_activated(ESearchBar *esb, EMFolderBrowser *emfb); static void emfb_search_search_cleared(ESearchBar *esb); -static void emfb_list_message_selected (MessageList *ml, const char *uid, EMFolderBrowser *emfb); +static void emfb_list_message_selected (MessageList *ml, const gchar *uid, EMFolderBrowser *emfb); -static void emfb_expand_all_threads(BonoboUIComponent *uid, void *data, const char *path); +static void emfb_expand_all_threads(BonoboUIComponent *uid, gpointer data, const gchar *path); static const EMFolderViewEnable emfb_enable_map[] = { { "EditInvertSelection", EM_POPUP_SELECT_FOLDER }, @@ -269,11 +269,11 @@ emfb_init(GObject *o) // "evolution-mail-message.xml", // NULL)); - emfb->view.enable_map = g_slist_prepend(emfb->view.enable_map, (void *)emfb_enable_map); + emfb->view.enable_map = g_slist_prepend(emfb->view.enable_map, (gpointer)emfb_enable_map); // if (search_context) { -// const char *systemrules = g_object_get_data (G_OBJECT (search_context), "system"); -// const char *userrules = g_object_get_data (G_OBJECT (search_context), "user"); +// const gchar *systemrules = g_object_get_data (G_OBJECT (search_context), "system"); +// const gchar *userrules = g_object_get_data (G_OBJECT (search_context), "user"); // EFilterBar *efb; // GConfClient *gconf; // @@ -401,7 +401,7 @@ void em_folder_browser_show_preview(EMFolderBrowser *emfb, gboolean state) if (state) { GConfClient *gconf = mail_config_get_gconf_client (); - int paned_size /*, y*/; + gint paned_size /*, y*/; paned_size = gconf_client_get_int(gconf, emfb->priv->show_wide ? "/apps/evolution/mail/display/hpaned_size":"/apps/evolution/mail/display/paned_size", NULL); @@ -410,7 +410,7 @@ void em_folder_browser_show_preview(EMFolderBrowser *emfb, gboolean state) gtk_widget_show (GTK_WIDGET (emfb->priv->preview)); if (emfb->view.list->cursor_uid) { - char *uid = g_alloca(strlen(emfb->view.list->cursor_uid)+1); + gchar *uid = g_alloca(strlen(emfb->view.list->cursor_uid)+1); emfb->priv->scope_restricted = FALSE; strcpy(uid, emfb->view.list->cursor_uid); @@ -447,7 +447,7 @@ gboolean em_folder_browser_get_wide (EMFolderBrowser *emfb) /* FIXME: Ugh! */ static void -emfb_search_menu_activated(ESearchBar *esb, int id, EMFolderBrowser *emfb) +emfb_search_menu_activated(ESearchBar *esb, gint id, EMFolderBrowser *emfb) { EFilterBar *efb = (EFilterBar *)esb; @@ -458,7 +458,7 @@ emfb_search_menu_activated(ESearchBar *esb, int id, EMFolderBrowser *emfb) d(printf("Save vfolder\n")); if (efb->current_query) { FilterRule *rule; - char *name, *text; + gchar *name, *text; /* ensures vfolder is running */ vfolder_load_storage (); @@ -483,7 +483,7 @@ struct _setup_msg { CamelFolder *folder; CamelOperation *cancel; - char *query; + gchar *query; GList *sources_uri; GList *sources_folder; }; @@ -509,12 +509,12 @@ vfolder_setup_exec(struct _setup_msg *m) l = m->sources_uri; while (l) { - d(printf(" Adding uri: %s\n", (char *)l->data)); + d(printf(" Adding uri: %s\n", (gchar *)l->data)); folder = mail_tool_uri_to_folder (l->data, 0, &m->base.ex); if (folder) { list = g_list_append(list, folder); } else { - g_warning("Could not open vfolder source: %s", (char *)l->data); + g_warning("Could not open vfolder source: %s", (gchar *)l->data); camel_exception_clear(&m->base.ex); } l = l->next; @@ -576,10 +576,10 @@ static MailMsgInfo vfolder_setup_info = { /* sources_uri should be camel uri's */ static int -vfolder_setup(CamelFolder *folder, const char *query, GList *sources_uri, GList *sources_folder, CamelOperation *cancel) +vfolder_setup(CamelFolder *folder, const gchar *query, GList *sources_uri, GList *sources_folder, CamelOperation *cancel) { struct _setup_msg *m; - int id; + gint id; m = mail_msg_new(&vfolder_setup_info); m->folder = folder; @@ -604,8 +604,8 @@ emfb_search_search_activated(ESearchBar *esb, EMFolderBrowser *emfb) EMFolderView *emfv = (EMFolderView *) emfb; EFilterBar *efb = (EFilterBar *)esb; const gchar *view_sexp; - char *search_state = NULL, *folder_uri=NULL; - char *word = NULL, *storeuri = NULL, *search_word = NULL; + gchar *search_state = NULL, *folder_uri=NULL; + gchar *word = NULL, *storeuri = NULL, *search_word = NULL; gint id, i; CamelFolder *folder; CamelStore *store; @@ -730,11 +730,11 @@ emfb_search_search_activated(ESearchBar *esb, EMFolderBrowser *emfb) /* Add the local folders */ l = mail_vfolder_get_sources_local (); while (l) { - folder = mail_tool_uri_to_folder ((const char *)l->data, 0,ex); + folder = mail_tool_uri_to_folder ((const gchar *)l->data, 0,ex); if (folder) folder_list = g_list_append(folder_list, folder); else { - g_warning("Could not open vfolder source: %s", (char *)l->data); + g_warning("Could not open vfolder source: %s", (gchar *)l->data); camel_exception_clear(ex); } l = l->next; @@ -743,11 +743,11 @@ emfb_search_search_activated(ESearchBar *esb, EMFolderBrowser *emfb) /* Add the remote source folder */ l = mail_vfolder_get_sources_remote (); while (l) { - folder = mail_tool_uri_to_folder ((const char *)l->data, 0,ex); + folder = mail_tool_uri_to_folder ((const gchar *)l->data, 0,ex); if (folder) folder_list = g_list_append(folder_list, folder); else { - g_warning("Could not open vfolder source: %s", (char *)l->data); + g_warning("Could not open vfolder source: %s", (gchar *)l->data); camel_exception_clear(ex); } l = l->next; @@ -807,7 +807,7 @@ emfb_search_search_cleared(ESearchBar *esb) /* ********************************************************************** */ static void -emfb_list_message_selected (MessageList *ml, const char *uid, EMFolderBrowser *emfb) +emfb_list_message_selected (MessageList *ml, const gchar *uid, EMFolderBrowser *emfb) { EMFolderView *emfv = (EMFolderView *) emfb; @@ -829,7 +829,7 @@ emfb_list_message_selected (MessageList *ml, const char *uid, EMFolderBrowser *e /* ********************************************************************** */ static void -emfb_focus_search(BonoboUIComponent *uid, void *data, const char *path) +emfb_focus_search(BonoboUIComponent *uid, gpointer data, const gchar *path) { EMFolderBrowser *emfb = data; @@ -837,7 +837,7 @@ emfb_focus_search(BonoboUIComponent *uid, void *data, const char *path) } static void -emfb_help_debug (BonoboUIComponent *uid, void *data, const char *path) +emfb_help_debug (BonoboUIComponent *uid, gpointer data, const gchar *path) { mail_component_show_logger ((GtkWidget *) data); } @@ -861,7 +861,7 @@ emfb_select_all_daemon (MessageList *ml) } static void -emfb_hide_deleted(BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_EventType type, const char *state, void *data) +emfb_hide_deleted(BonoboUIComponent *uic, const gchar *path, Bonobo_UIComponent_EventType type, const gchar *state, gpointer data) { GConfClient *gconf; EMFolderView *emfv = data; @@ -875,10 +875,10 @@ emfb_hide_deleted(BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_E } static void -emfb_set_search_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri) +emfb_set_search_folder(EMFolderView *emfv, CamelFolder *folder, const gchar *uri) { EMFolderBrowser *emfb = (EMFolderBrowser *) emfv; - char *state; + gchar *state; message_list_freeze(emfv->list); @@ -912,7 +912,7 @@ emfb_set_search_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri) static void -emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri) +emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const gchar *uri) { EMFolderBrowser *emfb = (EMFolderBrowser *) emfv; struct _EMFolderBrowserPrivate *p = emfb->priv; @@ -945,8 +945,8 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri) before the folder is open and need to override the defaults */ if (folder) { - char *sstate; - int state; + gchar *sstate; + gint state; gboolean safe; GConfClient *gconf = mail_config_get_gconf_client(); @@ -1045,12 +1045,12 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri) } static void -emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, int act) +emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, gint act) { if (act) { GConfClient *gconf; gboolean state; - char *sstate; + gchar *sstate; EMFolderBrowser *emfb = (EMFolderBrowser *) emfv; /* Stop button */ -- cgit From 71db41ef693bb3444cb9b459ef73fb5bdb0d4764 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 28 May 2009 00:47:04 -0400 Subject: Get the mailer's URI popup menu working. Except for "Add to Address Book", which looks like a project unto itself. This also kills off another plugin (copy-tool). --- mail/em-folder-browser.c | 62 ++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 31 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index b72ce28722..cb45194c59 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -852,27 +852,27 @@ static BonoboUIVerb emfb_verbs[] = { BONOBO_UI_VERB_END }; -static gboolean -emfb_select_all_daemon (MessageList *ml) -{ - message_list_select_all(ml); - gtk_widget_grab_focus ((GtkWidget *)ml); - return FALSE; -} - -static void -emfb_hide_deleted(BonoboUIComponent *uic, const gchar *path, Bonobo_UIComponent_EventType type, const gchar *state, gpointer data) -{ - GConfClient *gconf; - EMFolderView *emfv = data; - - if (type != Bonobo_UIComponent_STATE_CHANGED) - return; - - gconf = mail_config_get_gconf_client (); - gconf_client_set_bool(gconf, "/apps/evolution/mail/display/show_deleted", state[0] == '0', NULL); - em_folder_view_set_hide_deleted(emfv, state[0] != '0'); -} +//static gboolean +//emfb_select_all_daemon (MessageList *ml) +//{ +// message_list_select_all(ml); +// gtk_widget_grab_focus ((GtkWidget *)ml); +// return FALSE; +//} + +//static void +//emfb_hide_deleted(BonoboUIComponent *uic, const gchar *path, Bonobo_UIComponent_EventType type, const gchar *state, gpointer data) +//{ +// GConfClient *gconf; +// EMFolderView *emfv = data; +// +// if (type != Bonobo_UIComponent_STATE_CHANGED) +// return; +// +// gconf = mail_config_get_gconf_client (); +// gconf_client_set_bool(gconf, "/apps/evolution/mail/display/show_deleted", state[0] == '0', NULL); +// em_folder_view_set_hide_deleted(emfv, state[0] != '0'); +//} static void emfb_set_search_folder(EMFolderView *emfv, CamelFolder *folder, const gchar *uri) @@ -1057,16 +1057,16 @@ emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, gint act) state = mail_msg_active((unsigned int)-1); bonobo_ui_component_set_prop(uic, "/commands/MailStop", "sensitive", state?"1":"0", NULL); - /* HideDeleted */ - state = !gconf_client_get_bool(gconf, "/apps/evolution/mail/display/show_deleted", NULL); - if (emfv->folder && (emfv->folder->folder_flags & CAMEL_FOLDER_IS_TRASH)) { - state = FALSE; - bonobo_ui_component_set_prop(uic, "/commands/HideDeleted", "sensitive", "0", NULL); - } else - bonobo_ui_component_set_prop(uic, "/commands/HideDeleted", "sensitive", "1", NULL); - bonobo_ui_component_set_prop(uic, "/commands/HideDeleted", "state", state ? "1" : "0", NULL); - bonobo_ui_component_add_listener(uic, "HideDeleted", emfb_hide_deleted, emfv); - em_folder_view_set_hide_deleted(emfv, state); /* <- not sure if this optimal, but it'll do */ +// /* HideDeleted */ +// state = !gconf_client_get_bool(gconf, "/apps/evolution/mail/display/show_deleted", NULL); +// if (emfv->folder && (emfv->folder->folder_flags & CAMEL_FOLDER_IS_TRASH)) { +// state = FALSE; +// bonobo_ui_component_set_prop(uic, "/commands/HideDeleted", "sensitive", "0", NULL); +// } else +// bonobo_ui_component_set_prop(uic, "/commands/HideDeleted", "sensitive", "1", NULL); +// bonobo_ui_component_set_prop(uic, "/commands/HideDeleted", "state", state ? "1" : "0", NULL); +// bonobo_ui_component_add_listener(uic, "HideDeleted", emfb_hide_deleted, emfv); +// em_folder_view_set_hide_deleted(emfv, state); /* <- not sure if this optimal, but it'll do */ } } -- cgit 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/em-folder-browser.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index cb45194c59..cd3f35df0a 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -281,7 +281,7 @@ emfb_init(GObject *o) // efb = (EFilterBar *)emfb->search; // efb->account_search_vf = NULL; // efb->all_account_search_vf = NULL; -// efb->account_search_cancel = NULL; +// efb->account_search_cancel = NULL; // e_search_bar_set_menu ((ESearchBar *)emfb->search, emfb_search_items); // e_search_bar_set_scopeoption ((ESearchBar *)emfb->search, emfb_search_scope_items); // e_search_bar_scope_enable ((ESearchBar *)emfb->search, E_FILTERBAR_CURRENT_MESSAGE_ID, FALSE); @@ -588,9 +588,9 @@ vfolder_setup(CamelFolder *folder, const gchar *query, GList *sources_uri, GList m->sources_uri = sources_uri; m->sources_folder = sources_folder; - if (cancel) { - m->cancel = cancel; - } + if (cancel) { + m->cancel = cancel; + } id = m->base.seq; mail_msg_slow_ordered_push (m); -- cgit 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/em-folder-browser.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index cd3f35df0a..f1c8bdc72f 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -575,7 +575,7 @@ static MailMsgInfo vfolder_setup_info = { }; /* sources_uri should be camel uri's */ -static int +static gint vfolder_setup(CamelFolder *folder, const gchar *query, GList *sources_uri, GList *sources_folder, CamelOperation *cancel) { struct _setup_msg *m; @@ -610,8 +610,8 @@ emfb_search_search_activated(ESearchBar *esb, EMFolderBrowser *emfb) CamelFolder *folder; CamelStore *store; GPtrArray *folders; - GList *folder_list_account = NULL ; - GList *l, *folder_list = NULL ; + GList *folder_list_account = NULL; + GList *l, *folder_list = NULL; CamelException *ex; ex = camel_exception_new (); @@ -1054,7 +1054,7 @@ emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, gint act) EMFolderBrowser *emfb = (EMFolderBrowser *) emfv; /* Stop button */ - state = mail_msg_active((unsigned int)-1); + state = mail_msg_active((guint)-1); bonobo_ui_component_set_prop(uic, "/commands/MailStop", "sensitive", state?"1":"0", NULL); // /* HideDeleted */ -- cgit From 99126d46e61ce19a72acb3dd8498729b025339ec Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 26 Jun 2009 17:09:11 -0400 Subject: Partial fix for bug #587014. Cursor now moves to the correct row, but row is not selected. --- mail/em-folder-browser.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index f1c8bdc72f..be0b076a44 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -215,25 +215,25 @@ static ESearchBarItem emfb_search_scope_items[] = { static EMFolderViewClass *emfb_parent; -static void -html_scroll (GtkHTML *html, - GtkOrientation orientation, - GtkScrollType scroll_type, - gfloat position, - EMFolderBrowser *emfb) - -{ - if (html->binding_handled || orientation != GTK_ORIENTATION_VERTICAL || !mail_config_get_enable_magic_spacebar ()) - return; - - if (scroll_type == GTK_SCROLL_PAGE_FORWARD) { - gtk_widget_grab_focus ((GtkWidget *)((EMFolderView *) emfb)->list); - message_list_select(((EMFolderView *) emfb)->list, MESSAGE_LIST_SELECT_NEXT, 0, CAMEL_MESSAGE_SEEN); - } else if (scroll_type == GTK_SCROLL_PAGE_BACKWARD) { - gtk_widget_grab_focus ((GtkWidget *)((EMFolderView *) emfb)->list); - message_list_select(((EMFolderView *) emfb)->list, MESSAGE_LIST_SELECT_NEXT, 0, CAMEL_MESSAGE_SEEN); - } -} +//static void +//html_scroll (GtkHTML *html, +// GtkOrientation orientation, +// GtkScrollType scroll_type, +// gfloat position, +// EMFolderBrowser *emfb) +// +//{ +// if (html->binding_handled || orientation != GTK_ORIENTATION_VERTICAL || !mail_config_get_enable_magic_spacebar ()) +// return; +// +// if (scroll_type == GTK_SCROLL_PAGE_FORWARD) { +// gtk_widget_grab_focus ((GtkWidget *)((EMFolderView *) emfb)->list); +// message_list_select(((EMFolderView *) emfb)->list, MESSAGE_LIST_SELECT_NEXT, 0, CAMEL_MESSAGE_SEEN); +// } else if (scroll_type == GTK_SCROLL_PAGE_BACKWARD) { +// gtk_widget_grab_focus ((GtkWidget *)((EMFolderView *) emfb)->list); +// message_list_select(((EMFolderView *) emfb)->list, MESSAGE_LIST_SELECT_NEXT, 0, CAMEL_MESSAGE_SEEN); +// } +//} static void emfb_init(GObject *o) @@ -251,7 +251,7 @@ emfb_init(GObject *o) emfb->view.preview_active = TRUE; emfb->view.list_active = TRUE; - g_signal_connect_after (((EMFormatHTML *)(emfb->view.preview))->html, "scroll", G_CALLBACK (html_scroll), emfb); +// g_signal_connect_after (((EMFormatHTML *)(emfb->view.preview))->html, "scroll", G_CALLBACK (html_scroll), emfb); // g_slist_foreach (emfb->view.ui_files, free_one_ui_file, NULL); // g_slist_free(emfb->view.ui_files); -- cgit 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/em-folder-browser.c | 1 - 1 file changed, 1 deletion(-) (limited to 'mail/em-folder-browser.c') diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index be0b076a44..ce3a3c493f 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -910,7 +910,6 @@ emfb_set_search_folder(EMFolderView *emfv, CamelFolder *folder, const gchar *uri message_list_thaw(emfv->list); } - static void emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const gchar *uri) { -- cgit