#include "mainwindow.h"
#include "folderview.h"
#include "summaryview.h"
+#include "summary_search.h"
#include "inputdialog.h"
#include "grouplistdialog.h"
#include "manage_window.h"
guint action,
GtkWidget *widget);
+static void folderview_search_cb (FolderView *folderview,
+ guint action,
+ GtkWidget *widget);
+
static gboolean folderview_drag_motion_cb(GtkWidget *widget,
GdkDragContext *context,
gint x,
{N_("/_Delete folder"), NULL, folderview_delete_folder_cb, 0, NULL},
{N_("/---"), NULL, NULL, 0, "<Separator>"},
{N_("/_Update folder tree"), NULL, folderview_update_tree_cb, 0, NULL},
- {N_("/Re_scan folder tree"), NULL, folderview_update_tree_cb, 1, NULL},
+ {N_("/R_escan folder tree"), NULL, folderview_update_tree_cb, 1, NULL},
{N_("/---"), NULL, NULL, 0, "<Separator>"},
{N_("/Remove _mailbox"), NULL, folderview_remove_mailbox_cb, 0, NULL},
{N_("/---"), NULL, NULL, 0, "<Separator>"},
+ {N_("/_Search messages..."), NULL, folderview_search_cb, 0, NULL},
{N_("/_Property..."), NULL, folderview_property_cb, 0, NULL},
{N_("/_Processing..."), NULL, folderview_processing_cb, 0, NULL},
- {N_("/_Scoring..."), NULL, folderview_scoring_cb, 0, NULL}
+ {N_("/S_coring..."), NULL, folderview_scoring_cb, 0, NULL}
};
static GtkItemFactoryEntry folderview_imap_popup_entries[] =
{N_("/_Delete folder"), NULL, folderview_rm_imap_folder_cb, 0, NULL},
{N_("/---"), NULL, NULL, 0, "<Separator>"},
{N_("/_Update folder tree"), NULL, folderview_update_tree_cb, 0, NULL},
- {N_("/Re_scan folder tree"), NULL, folderview_update_tree_cb, 1, NULL},
+ {N_("/R_escan folder tree"), NULL, folderview_update_tree_cb, 1, NULL},
{N_("/---"), NULL, NULL, 0, "<Separator>"},
{N_("/Remove _IMAP4 account"), NULL, folderview_rm_imap_server_cb, 0, NULL},
{N_("/---"), NULL, NULL, 0, "<Separator>"},
+ {N_("/_Search messages..."), NULL, folderview_search_cb, 0, NULL},
{N_("/_Property..."), NULL, NULL, 0, NULL},
{N_("/_Processing..."), NULL, folderview_processing_cb, 0, NULL},
- {N_("/_Scoring..."), NULL, folderview_scoring_cb, 0, NULL}
+ {N_("/S_coring..."), NULL, folderview_scoring_cb, 0, NULL}
};
static GtkItemFactoryEntry folderview_news_popup_entries[] =
{N_("/---"), NULL, NULL, 0, "<Separator>"},
{N_("/Remove _news account"), NULL, folderview_rm_news_server_cb, 0, NULL},
{N_("/---"), NULL, NULL, 0, "<Separator>"},
+ {N_("/_Search messages..."), NULL, folderview_search_cb, 0, NULL},
{N_("/_Property..."), NULL, NULL, 0, NULL},
{N_("/_Processing..."), NULL, folderview_processing_cb, 0, NULL},
- {N_("/_Scoring..."), NULL, folderview_scoring_cb, 0, NULL}
+ {N_("/S_coring..."), NULL, folderview_scoring_cb, 0, NULL}
};
gboolean folder_property = FALSE;
gboolean folder_processing = FALSE;
gboolean folder_scoring = FALSE;
+ gboolean search_folder = FALSE;
if (!event) return;
new_folder = TRUE;
if (item->parent == NULL)
update_tree = remove_tree = TRUE;
+ else
+ search_folder = TRUE;
if (FOLDER_IS_LOCAL(folder) || FOLDER_TYPE(folder) == F_IMAP || FOLDER_TYPE(folder) == F_MBOX) {
if (item->parent == NULL)
update_tree = rescan_tree = TRUE;
SET_SENS(mail_factory, "/Property...", folder_property);
SET_SENS(mail_factory, "/Processing...", folder_processing);
SET_SENS(mail_factory, "/Scoring...", folder_scoring);
+ SET_SENS(mail_factory, "/Search messages...", search_folder);
} else if (FOLDER_TYPE(folder) == F_IMAP) {
popup = folderview->imap_popup;
menu_set_insensitive_all(GTK_MENU_SHELL(popup));
SET_SENS(imap_factory, "/Remove IMAP4 account", remove_tree);
SET_SENS(imap_factory, "/Processing...", folder_processing);
SET_SENS(imap_factory, "/Scoring...", folder_scoring);
+ SET_SENS(imap_factory, "/Search messages...", search_folder);
} 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, "/Remove news account", remove_tree);
+ SET_SENS(news_factory, "/Search messages...", search_folder);
SET_SENS(news_factory, "/Processing...", folder_processing);
SET_SENS(news_factory, "/Scoring...", folder_scoring);
} else if (FOLDER_TYPE(folder) == F_MBOX) {
folder_write_list();
}
+static void folderview_search_cb(FolderView *folderview, guint action,
+ GtkWidget *widget)
+{
+ summary_search(folderview->summaryview);
+}
+
static gboolean folderview_drag_motion_cb(GtkWidget *widget,
GdkDragContext *context,
gint x,