talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit bb5daa0fac6854a6db6234f6af31b901e81b8390
parent 028920e4a66390e68073eae4efbed38ca0d89ad6
Author: Colin Leroy <colin@colino.net>
Date:   Sun,  1 Jun 2014 20:10:54 +0200

Deduplicate three identical functions

Diffstat:
Msrc/summaryview.c | 66+++++++++++++++++++++++-------------------------------------------
1 file changed, 23 insertions(+), 43 deletions(-)

diff --git a/src/summaryview.c b/src/summaryview.c @@ -130,12 +130,9 @@ guint summary_get_msgnum (SummaryView *summaryview, GtkCMCTreeNode *node); -static void summary_set_hide_read_msgs_menu (SummaryView *summaryview, - guint action); -static void summary_set_hide_del_msgs_menu (SummaryView *summaryview, - guint action); -static void summary_set_hide_read_threads_menu (SummaryView *summaryview, - guint action); +static void summary_set_hide_menu (SummaryView *summaryview, + const gchar *menu_item, + guint action); static GtkCMCTreeNode *summary_find_prev_msg (SummaryView *summaryview, @@ -1324,9 +1321,9 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item) (item && item->path)?item->path:"(null)", item?folder_item_parent(item):0x0, item?item->no_select:FALSE); - summary_set_hide_read_msgs_menu(summaryview, FALSE); - summary_set_hide_del_msgs_menu(summaryview, FALSE); - summary_set_hide_read_threads_menu(summaryview, FALSE); + summary_set_hide_menu(summaryview, "/Menu/View/HideReadMessages", FALSE); + summary_set_hide_menu(summaryview, "/Menu/View/HideDelMessages", FALSE); + summary_set_hide_menu(summaryview, "/Menu/View/HideReadThreads", FALSE); summary_clear_all(summaryview); summaryview->folder_item = item; summary_thaw(summaryview); @@ -1397,9 +1394,12 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item) quicksearch_has_sat_predicate(summaryview->quicksearch) == FALSE) { GSList *not_killed; - summary_set_hide_read_msgs_menu(summaryview, summaryview->folder_item->hide_read_msgs); - summary_set_hide_del_msgs_menu(summaryview, summaryview->folder_item->hide_del_msgs); - summary_set_hide_read_threads_menu(summaryview, summaryview->folder_item->hide_read_threads); + summary_set_hide_menu(summaryview, "/Menu/View/HideReadMessages", + summaryview->folder_item->hide_read_msgs); + summary_set_hide_menu(summaryview, "/Menu/View/HideDelMessages", + summaryview->folder_item->hide_del_msgs); + summary_set_hide_menu(summaryview, "/Menu/View/HideReadThreads", + summaryview->folder_item->hide_read_threads); not_killed = NULL; for(cur = mlist ; cur != NULL && cur->data != NULL ; cur = g_slist_next(cur)) { MsgInfo * msginfo = (MsgInfo *) cur->data; @@ -1432,9 +1432,12 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item) g_slist_free(mlist); mlist = not_killed; } else { - summary_set_hide_read_msgs_menu(summaryview, FALSE); - summary_set_hide_del_msgs_menu(summaryview, FALSE); - summary_set_hide_read_threads_menu(summaryview, FALSE); + summary_set_hide_menu(summaryview, "/Menu/View/HideReadMessages", + FALSE); + summary_set_hide_menu(summaryview, "/Menu/View/HideDelMessages", + FALSE); + summary_set_hide_menu(summaryview, "/Menu/View/HideReadThreads", + FALSE); } if (!hidden_removed) { @@ -7808,38 +7811,15 @@ void summary_toggle_show_read_threads(SummaryView *summaryview) summary_show(summaryview, summaryview->folder_item); } -static void summary_set_hide_read_msgs_menu (SummaryView *summaryview, - guint action) +static void summary_set_hide_menu (SummaryView *summaryview, + const gchar *menu_item, + guint action) { GtkWidget *widget; - widget = gtk_ui_manager_get_widget(summaryview->mainwin->ui_manager, "/Menu/View/HideReadMessages"); - g_object_set_data(G_OBJECT(widget), "dont_toggle", - GINT_TO_POINTER(1)); - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(widget), action); - g_object_set_data(G_OBJECT(widget), "dont_toggle", - GINT_TO_POINTER(0)); -} - -static void summary_set_hide_read_threads_menu (SummaryView *summaryview, - guint action) -{ - GtkWidget *widget; - - widget = gtk_ui_manager_get_widget(summaryview->mainwin->ui_manager, "/Menu/View/HideReadThreads"); - g_object_set_data(G_OBJECT(widget), "dont_toggle", - GINT_TO_POINTER(1)); - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(widget), action); - g_object_set_data(G_OBJECT(widget), "dont_toggle", - GINT_TO_POINTER(0)); -} - -static void summary_set_hide_del_msgs_menu (SummaryView *summaryview, - guint action) -{ - GtkWidget *widget; + widget = gtk_ui_manager_get_widget(summaryview->mainwin->ui_manager, menu_item); + cm_return_if_fail(widget != NULL); - widget = gtk_ui_manager_get_widget(summaryview->mainwin->ui_manager, "/Menu/View/HideDelMessages"); g_object_set_data(G_OBJECT(widget), "dont_toggle", GINT_TO_POINTER(1)); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(widget), action);