diff --git a/glade/mainWindow.glade b/glade/mainWindow.glade index 10bdfe0..dcb2754 100644 --- a/glade/mainWindow.glade +++ b/glade/mainWindow.glade @@ -48,10 +48,12 @@ True False - + + Title True - False - search in: + True + False + True False @@ -60,8 +62,8 @@ - - Title + + Summary True True False diff --git a/src/mainwindow.c b/src/mainwindow.c index 0ab6c0c..7e6c65f 100644 --- a/src/mainwindow.c +++ b/src/mainwindow.c @@ -41,6 +41,13 @@ static gboolean mainWindow_list_entry_visible(GtkTreeModel *model, GtkTreeIter * search_matched = 1; g_free(temp); + gtk_tree_model_get(model, iter, COL_SUMMARY, &temp, -1); + if (!search_matched && + mainWindow->filterSettings.search_summary && + g_regex_match(regex, temp, 0, &match_info) && g_match_info_matches(match_info)) + search_matched = 1; + g_free(temp); + gtk_tree_model_get(model, iter, COL_TEXT, &temp, -1); if (!search_matched && mainWindow->filterSettings.search_text && @@ -218,6 +225,10 @@ static void mainWindow_connect_signals(struct mainWindow *mainWindow) "toggled", (GCallback) mainWindow_filterChanged, mainWindow); + g_signal_connect(mainWindow->checkSearchSummary, + "toggled", + (GCallback) mainWindow_filterChanged, + mainWindow); } /** @@ -241,6 +252,7 @@ struct mainWindow *mainWindow_new() mainWindow->popoverDate = GTK_WIDGET(gtk_builder_get_object(builder, "popoverDate")); mainWindow->calendarRange = GTK_WIDGET(gtk_builder_get_object(builder, "calendarRange")); mainWindow->checkSearchTitle = GTK_WIDGET(gtk_builder_get_object(builder, "checkSearchTitle")); + mainWindow->checkSearchSummary = GTK_WIDGET(gtk_builder_get_object(builder, "checkSearchSummary")); mainWindow->checkSearchTags = GTK_WIDGET(gtk_builder_get_object(builder, "checkSearchTags")); mainWindow->checkSearchText = GTK_WIDGET(gtk_builder_get_object(builder, "checkSearchText")); mainWindow->labelSummary = GTK_WIDGET(gtk_builder_get_object(builder, "labelSummary")); @@ -259,6 +271,7 @@ struct mainWindow *mainWindow_new() mainWindow_connect_signals(mainWindow); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mainWindow->checkSearchTitle), 1); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mainWindow->checkSearchSummary), 1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mainWindow->checkSearchTags), 1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mainWindow->checkSearchText), 0); @@ -397,12 +410,14 @@ void mainWindow_filterChanged(GtkWidget *widget, gpointer user_data) } } - mainWindow->filterSettings.search_title = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( - mainWindow->checkSearchTitle)); - mainWindow->filterSettings.search_tags = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( - mainWindow->checkSearchTags)); - mainWindow->filterSettings.search_text = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( - mainWindow->checkSearchText)); + mainWindow->filterSettings.search_title = gtk_toggle_button_get_active( + GTK_TOGGLE_BUTTON(mainWindow->checkSearchTitle)); + mainWindow->filterSettings.search_tags = gtk_toggle_button_get_active( + GTK_TOGGLE_BUTTON(mainWindow->checkSearchTags)); + mainWindow->filterSettings.search_text = gtk_toggle_button_get_active( + GTK_TOGGLE_BUTTON(mainWindow->checkSearchText)); + mainWindow->filterSettings.search_summary = gtk_toggle_button_get_active( + GTK_TOGGLE_BUTTON(mainWindow->checkSearchSummary)); gtk_tree_model_filter_refilter(mainWindow->entryListFiltered); } diff --git a/src/mainwindow.h b/src/mainwindow.h index de0bba3..d1c96f2 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -15,6 +15,7 @@ struct mainWindow { GtkWidget *popoverDate; GtkWidget *calendarRange; GtkWidget *checkSearchTitle; + GtkWidget *checkSearchSummary; GtkWidget *checkSearchTags; GtkWidget *checkSearchText; GtkWidget *labelSummary; @@ -31,6 +32,7 @@ struct mainWindow { guint time_end; gboolean search_title; gboolean search_tags; + gboolean search_summary; gboolean search_text; } filterSettings; };