aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2006-01-17 09:08:28 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2006-01-17 09:08:28 +0000
commit82f2b2c8d01340ed478e05313e52f1324faaf272 (patch)
tree447185c98d300f2f1831da07927a2031d0c76b62 /src
parent186fb3f95f60797959a3b35bebbca5dfb08d855c (diff)
enabled toggle of the searchbar.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@901 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src')
-rw-r--r--src/mainwindow.c24
-rw-r--r--src/summaryview.c18
-rw-r--r--src/summaryview.h3
3 files changed, 42 insertions, 3 deletions
diff --git a/src/mainwindow.c b/src/mainwindow.c
index f8a41f1d..e42f6f89 100644
--- a/src/mainwindow.c
+++ b/src/mainwindow.c
@@ -254,6 +254,9 @@ static void toggle_message_cb (MainWindow *mainwin,
static void toggle_toolbar_cb (MainWindow *mainwin,
guint action,
GtkWidget *widget);
+static void toggle_searchbar_cb (MainWindow *mainwin,
+ guint action,
+ GtkWidget *widget);
static void toggle_statusbar_cb (MainWindow *mainwin,
guint action,
GtkWidget *widget);
@@ -528,6 +531,8 @@ static GtkItemFactoryEntry mainwin_entries[] =
NULL, toggle_toolbar_cb, TOOLBAR_TEXT, "/View/Show or hide/Toolbar/Icon and text"},
{N_("/_View/Show or hi_de/_Toolbar/_None"),
NULL, toggle_toolbar_cb, TOOLBAR_NONE, "/View/Show or hide/Toolbar/Icon and text"},
+ {N_("/_View/Show or hi_de/_Search bar"),
+ NULL, toggle_searchbar_cb, 0, "<ToggleItem>"},
{N_("/_View/Show or hi_de/Status _bar"),
NULL, toggle_statusbar_cb, 0, "<ToggleItem>"},
{N_("/_View/---"), NULL, NULL, 0, "<Separator>"},
@@ -1042,6 +1047,12 @@ MainWindow *main_window_create(SeparateType type)
}
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);
+ gtk_widget_hide(summaryview->search_hbox);
+ menuitem = gtk_item_factory_get_item
+ (ifactory, "/View/Show or hide/Search bar");
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem),
+ prefs_common.show_searchbar);
+
gtk_widget_hide(mainwin->statusbar);
menuitem = gtk_item_factory_get_item
(ifactory, "/View/Show or hide/Status bar");
@@ -2973,6 +2984,19 @@ static void toggle_toolbar_cb(MainWindow *mainwin, guint action,
prefs_common.toolbar_style = (ToolbarStyle)action;
}
+static void toggle_searchbar_cb(MainWindow *mainwin, guint action,
+ GtkWidget *widget)
+{
+ if (GTK_CHECK_MENU_ITEM(widget)->active) {
+ gtk_widget_show(mainwin->summaryview->search_hbox);
+ prefs_common.show_searchbar = TRUE;
+ } else {
+ gtk_widget_hide(mainwin->summaryview->search_hbox);
+ summary_qsearch_reset(mainwin->summaryview);
+ prefs_common.show_searchbar = FALSE;
+ }
+}
+
static void toggle_statusbar_cb(MainWindow *mainwin, guint action,
GtkWidget *widget)
{
diff --git a/src/summaryview.c b/src/summaryview.c
index 58b2d592..ebb0cfc8 100644
--- a/src/summaryview.c
+++ b/src/summaryview.c
@@ -4690,6 +4690,15 @@ void summary_get_column_order(SummaryView *summaryview)
void summary_qsearch_reset(SummaryView *summaryview)
{
+ if (!summaryview->on_filter)
+ return;
+
+ gtk_entry_set_text(GTK_ENTRY(summaryview->search_entry), "");
+
+ summaryview->on_filter = FALSE;
+ g_slist_free(summaryview->flt_mlist);
+ summaryview->flt_mlist = NULL;
+
summary_lock(summaryview);
main_window_cursor_wait(summaryview->mainwin);
@@ -4713,9 +4722,8 @@ void summary_qsearch(SummaryView *summaryview)
GSList *flt_mlist = NULL;
GSList *cur;
- summaryview->on_filter = FALSE;
- g_slist_free(summaryview->flt_mlist);
- summaryview->flt_mlist = NULL;
+ if (!summaryview->all_mlist)
+ return;
key = gtk_entry_get_text(GTK_ENTRY(summaryview->search_entry));
if (!key || *key == '\0') {
@@ -4723,6 +4731,10 @@ void summary_qsearch(SummaryView *summaryview)
return;
}
+ summaryview->on_filter = FALSE;
+ g_slist_free(summaryview->flt_mlist);
+ summaryview->flt_mlist = NULL;
+
cond = filter_cond_new(FLT_COND_HEADER, FLT_CONTAIN, 0, "Subject", key);
cond_list = g_slist_append(cond_list, cond);
cond = filter_cond_new(FLT_COND_HEADER, FLT_CONTAIN, 0, "From", key);
diff --git a/src/summaryview.h b/src/summaryview.h
index 9de8f4cf..490a18da 100644
--- a/src/summaryview.h
+++ b/src/summaryview.h
@@ -259,4 +259,7 @@ void summary_set_colorlabel (SummaryView *summaryview,
void summary_set_column_order (SummaryView *summaryview);
void summary_get_column_order (SummaryView *summaryview);
+void summary_qsearch_reset (SummaryView *summaryview);
+void summary_qsearch (SummaryView *summaryview);
+
#endif /* __SUMMARY_H__ */