diff --git a/glade/mainWindow.glade b/glade/mainWindow.glade index 93e019e..b285885 100644 --- a/glade/mainWindow.glade +++ b/glade/mainWindow.glade @@ -2,18 +2,6 @@ - - - - - - - - - - - - Test text for debugging. @@ -132,7 +120,6 @@ 300 True True - entryListStore diff --git a/src/mainwindow.c b/src/mainwindow.c index 7b7d034..d34889d 100644 --- a/src/mainwindow.c +++ b/src/mainwindow.c @@ -26,11 +26,38 @@ static void mainWindow_list_add_entry(struct mainWindow *mainWindow, struct mdia g_free(date_text); } +static gboolean mainWindow_list_entry_visible (GtkTreeModel *model, GtkTreeIter *iter, struct mainWindow *mainWindow) +{ + /* gtk_tree_model_get (model, iter, COLUMN_NAME, &target, -1); */ + + return 1; +} + static void mainWindow_configure_treeView(struct mainWindow *mainWindow) { GtkCellRenderer *renderer; GtkTreeSortable *sortable; GtkTreeViewColumn *col; + GtkTreeModel *model; + GtkTreeModelFilter *filtered; + GtkTreeModelSort *sorted; + + mainWindow->entryListStore = gtk_list_store_new(COL_COUNT, + G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_UINT); + filtered = GTK_TREE_MODEL_FILTER (gtk_tree_model_filter_new ( + GTK_TREE_MODEL (mainWindow->entryListStore), NULL)); + sorted = GTK_TREE_MODEL_SORT (gtk_tree_model_sort_new_with_model ( + GTK_TREE_MODEL (filtered))); + gtk_tree_model_filter_set_visible_func (filtered, + (GtkTreeModelFilterVisibleFunc) mainWindow_list_entry_visible, + mainWindow, NULL); + model = GTK_TREE_MODEL (sorted); + gtk_tree_view_set_model(mainWindow->entryListView, model); + + /* TODO: Unref mainWindow->entryListStore and filtered, sorted and model? */ renderer = gtk_cell_renderer_text_new(); gtk_tree_view_insert_column_with_attributes(mainWindow->entryListView, -1, "Title", renderer, @@ -113,7 +140,6 @@ 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->entryListView = GTK_TREE_VIEW(gtk_builder_get_object(builder, "entryListView")); - mainWindow->entryListStore = GTK_LIST_STORE(gtk_builder_get_object(builder, "entryListStore")); gtk_builder_connect_signals(builder, NULL); diff --git a/src/mainwindow.h b/src/mainwindow.h index 500d4a8..fb9e9fe 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -14,8 +14,8 @@ struct mainWindow { GtkWidget *popoverDate; GtkWidget *calendarRange; GtkTreeView *entryListView; - GtkListStore *entryListStore; + GtkListStore *entryListStore; GtkWidget *selectedDateEntry; };