From 82f2b2c8d01340ed478e05313e52f1324faaf272 Mon Sep 17 00:00:00 2001 From: hiro Date: Tue, 17 Jan 2006 09:08:28 +0000 Subject: enabled toggle of the searchbar. git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@901 ee746299-78ed-0310-b773-934348b2243d --- ChangeLog | 6 ++++++ ChangeLog.ja | 6 ++++++ libsylph/prefs_common.c | 1 + libsylph/prefs_common.h | 1 + src/mainwindow.c | 24 ++++++++++++++++++++++++ src/summaryview.c | 18 +++++++++++++++--- src/summaryview.h | 3 +++ 7 files changed, 56 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 15121d8b..00f43dd2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-01-17 + + * libsylph/prefs_common.[ch] + src/summaryview.[ch] + src/mainwindow.c: enabled toggle of the searchbar. + 2006-01-17 * src/summaryview.[ch] diff --git a/ChangeLog.ja b/ChangeLog.ja index a4ee68e6..b2dcfc79 100644 --- a/ChangeLog.ja +++ b/ChangeLog.ja @@ -1,3 +1,9 @@ +2006-01-17 + + * libsylph/prefs_common.[ch] + src/summaryview.[ch] + src/mainwindow.c: 検索バーの切り替えができるようにした。 + 2006-01-17 * src/summaryview.[ch] diff --git a/libsylph/prefs_common.c b/libsylph/prefs_common.c index ad18467f..5b96a5a9 100644 --- a/libsylph/prefs_common.c +++ b/libsylph/prefs_common.c @@ -125,6 +125,7 @@ static PrefParam param[] = { {"bold_unread", "TRUE", &prefs_common.bold_unread, P_BOOL}, {"toolbar_style", "3", &prefs_common.toolbar_style, P_ENUM}, + {"show_searchbar", "TRUE", &prefs_common.show_searchbar, P_BOOL}, {"show_statusbar", "TRUE", &prefs_common.show_statusbar, P_BOOL}, {"summary_col_show_mark", "TRUE", diff --git a/libsylph/prefs_common.h b/libsylph/prefs_common.h index eee87b3a..a317e235 100644 --- a/libsylph/prefs_common.h +++ b/libsylph/prefs_common.h @@ -107,6 +107,7 @@ struct _PrefsCommon gboolean bold_unread; ToolbarStyle toolbar_style; + gboolean show_searchbar; gboolean show_statusbar; /* Summary columns visibility, position and size */ 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, ""}, {N_("/_View/Show or hi_de/Status _bar"), NULL, toggle_statusbar_cb, 0, ""}, {N_("/_View/---"), NULL, NULL, 0, ""}, @@ -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__ */ -- cgit v1.2.3