diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2006-01-12 07:08:39 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2006-01-12 07:08:39 +0000 |
commit | 132184c8ab6b6d092acf3c6fa5ef32f5cd1df5c2 (patch) | |
tree | dfa92485946bdf885f0ec61794d8a9701e85563b /src/folderview.c | |
parent | eee90df0c5c5e3b63ced8e84634602910d9d0880 (diff) |
replaced 'Search messages...' with 'Edit search condition...' on virtual folder.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@891 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/folderview.c')
-rw-r--r-- | src/folderview.c | 87 |
1 files changed, 53 insertions, 34 deletions
diff --git a/src/folderview.c b/src/folderview.c index aa5013db..a14b5ef9 100644 --- a/src/folderview.c +++ b/src/folderview.c @@ -1,6 +1,6 @@ /* * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client - * Copyright (C) 1999-2005 Hiroyuki Yamamoto + * Copyright (C) 1999-2006 Hiroyuki Yamamoto * * 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 @@ -252,6 +252,8 @@ static GtkItemFactoryEntry folderview_mail_popup_entries[] = {N_("/_Update summary"), NULL, folderview_update_summary_cb, 0, NULL}, {N_("/---"), NULL, NULL, 0, "<Separator>"}, {N_("/_Search messages..."), NULL, folderview_search_cb, 0, NULL}, + {N_("/Ed_it search condition..."), + NULL, folderview_search_cb, 0, NULL}, {N_("/_Properties..."), NULL, folderview_property_cb, 0, NULL} }; @@ -272,6 +274,8 @@ static GtkItemFactoryEntry folderview_imap_popup_entries[] = {N_("/_Update summary"), NULL, folderview_update_summary_cb, 0, NULL}, {N_("/---"), NULL, NULL, 0, "<Separator>"}, {N_("/_Search messages..."), NULL, folderview_search_cb, 0, NULL}, + {N_("/Ed_it search condition..."), + NULL, folderview_search_cb, 0, NULL}, {N_("/_Properties..."), NULL, folderview_property_cb, 0, NULL} }; @@ -288,6 +292,8 @@ static GtkItemFactoryEntry folderview_news_popup_entries[] = {N_("/_Update summary"), NULL, folderview_update_summary_cb, 0, NULL}, {N_("/---"), NULL, NULL, 0, "<Separator>"}, {N_("/_Search messages..."), NULL, folderview_search_cb, 0, NULL}, + {N_("/Ed_it search condition..."), + NULL, folderview_search_cb, 0, NULL}, {N_("/_Properties..."), NULL, folderview_property_cb, 0, NULL} }; @@ -1549,6 +1555,7 @@ static gboolean folderview_menu_popup(FolderView *folderview, FolderItem *item = NULL; Folder *folder; GtkWidget *popup; + GtkItemFactory *ifactory; GtkTreeModel *model = GTK_TREE_MODEL(folderview->store); GtkTreeIter iter; gboolean new_folder = FALSE; @@ -1612,50 +1619,62 @@ static gboolean folderview_menu_popup(FolderView *folderview, } } -#define SET_SENS(factory, name, sens) \ - menu_set_sensitive(folderview->factory, name, sens) +#define SET_SENS(factory, name, sens) \ +{ \ + GtkWidget *widget; \ + widget = gtk_item_factory_get_item(factory, name); \ + if (widget) \ + gtk_widget_set_sensitive(widget, sens); \ +} + +#define SET_VISIBILITY(factory, name, visible) \ +{ \ + GtkWidget *widget; \ + widget = gtk_item_factory_get_item(factory, name); \ + if (widget) { \ + if (visible) \ + gtk_widget_show(widget); \ + else \ + gtk_widget_hide(widget); \ + } \ +} if (FOLDER_IS_LOCAL(folder)) { popup = folderview->mail_popup; - menu_set_insensitive_all(GTK_MENU_SHELL(popup)); - SET_SENS(mail_factory, "/Create new folder...", new_folder); - SET_SENS(mail_factory, "/Rename folder...", rename_folder); - SET_SENS(mail_factory, "/Move folder...", move_folder); - SET_SENS(mail_factory, "/Delete folder", delete_folder); - SET_SENS(mail_factory, "/Empty trash", empty_trash); - SET_SENS(mail_factory, "/Check for new messages", update_tree); - SET_SENS(mail_factory, "/Rebuild folder tree", rescan_tree); - SET_SENS(mail_factory, "/Update summary", update_summary); - SET_SENS(mail_factory, "/Search messages...", search_folder); - SET_SENS(mail_factory, "/Properties...", folder_property); + ifactory = folderview->mail_factory; } else if (FOLDER_TYPE(folder) == F_IMAP) { popup = folderview->imap_popup; - menu_set_insensitive_all(GTK_MENU_SHELL(popup)); - SET_SENS(imap_factory, "/Create new folder...", new_folder); - SET_SENS(imap_factory, "/Rename folder...", rename_folder); - SET_SENS(imap_factory, "/Move folder...", move_folder); - SET_SENS(imap_factory, "/Delete folder", delete_folder); - SET_SENS(imap_factory, "/Empty trash", empty_trash); - SET_SENS(imap_factory, "/Download", download_msg); - SET_SENS(imap_factory, "/Check for new messages", update_tree); - SET_SENS(imap_factory, "/Rebuild folder tree", rescan_tree); - SET_SENS(imap_factory, "/Update summary", update_summary); - SET_SENS(imap_factory, "/Search messages...", search_folder); - SET_SENS(imap_factory, "/Properties...", folder_property); + ifactory = folderview->imap_factory; } else if (FOLDER_TYPE(folder) == F_NEWS) { popup = folderview->news_popup; - menu_set_insensitive_all(GTK_MENU_SHELL(popup)); - SET_SENS(news_factory, "/Subscribe to newsgroup...", new_folder); - SET_SENS(news_factory, "/Remove newsgroup", delete_folder); - SET_SENS(news_factory, "/Download", download_msg); - SET_SENS(news_factory, "/Check for new messages", update_tree); - SET_SENS(news_factory, "/Update summary", update_summary); - SET_SENS(news_factory, "/Search messages...", search_folder); - SET_SENS(news_factory, "/Properties...", folder_property); + ifactory = folderview->news_factory; } else return FALSE; + menu_set_insensitive_all(GTK_MENU_SHELL(popup)); + + SET_SENS(ifactory, "/Create new folder...", new_folder); + SET_SENS(ifactory, "/Rename folder...", rename_folder); + SET_SENS(ifactory, "/Move folder...", move_folder); + SET_SENS(ifactory, "/Delete folder", delete_folder); + SET_SENS(ifactory, "/Empty trash", empty_trash); + SET_SENS(ifactory, "/Download", download_msg); + SET_SENS(ifactory, "/Check for new messages", update_tree); + SET_SENS(ifactory, "/Rebuild folder tree", rescan_tree); + SET_SENS(ifactory, "/Update summary", update_summary); + SET_SENS(ifactory, "/Search messages...", search_folder); + SET_SENS(ifactory, "/Edit search condition...", search_folder); + SET_SENS(ifactory, "/Properties...", folder_property); + SET_SENS(ifactory, "/Subscribe to newsgroup...", new_folder); + SET_SENS(ifactory, "/Remove newsgroup", delete_folder); + SET_VISIBILITY(ifactory, "/Search messages...", + item->stype != F_VIRTUAL); + SET_VISIBILITY(ifactory, "/Edit search condition...", + item->stype == F_VIRTUAL); + + #undef SET_SENS +#undef SET_VISIBILITY gtk_menu_popup(GTK_MENU(popup), NULL, NULL, NULL, NULL, event->button, event->time); |