diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2006-01-17 09:08:28 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2006-01-17 09:08:28 +0000 |
commit | 82f2b2c8d01340ed478e05313e52f1324faaf272 (patch) | |
tree | 447185c98d300f2f1831da07927a2031d0c76b62 | |
parent | 186fb3f95f60797959a3b35bebbca5dfb08d855c (diff) |
enabled toggle of the searchbar.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@901 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ChangeLog.ja | 6 | ||||
-rw-r--r-- | libsylph/prefs_common.c | 1 | ||||
-rw-r--r-- | libsylph/prefs_common.h | 1 | ||||
-rw-r--r-- | src/mainwindow.c | 24 | ||||
-rw-r--r-- | src/summaryview.c | 18 | ||||
-rw-r--r-- | src/summaryview.h | 3 |
7 files changed, 56 insertions, 3 deletions
@@ -1,5 +1,11 @@ 2006-01-17 + * libsylph/prefs_common.[ch] + src/summaryview.[ch] + src/mainwindow.c: enabled toggle of the searchbar. + +2006-01-17 + * src/summaryview.[ch] src/mainwindow.c: implemented quick search of the summary view. diff --git a/ChangeLog.ja b/ChangeLog.ja index a4ee68e6..b2dcfc79 100644 --- a/ChangeLog.ja +++ b/ChangeLog.ja @@ -1,5 +1,11 @@ 2006-01-17 + * libsylph/prefs_common.[ch] + src/summaryview.[ch] + src/mainwindow.c: 検索バーの切り替えができるようにした。 + +2006-01-17 + * src/summaryview.[ch] src/mainwindow.c: サマリビューのクイックサーチを実装。 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, "<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__ */ |