From c49b77a24aeb07a85aa4cdbd261d45afa47037b1 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Tue, 23 Aug 2016 07:41:27 -0400 Subject: [PATCH] gui/treeview: Add a function for accessing the treeview And rename the widget from "o_treeview" to just "treeview". I wanted to rename gui/view.c to gui/treeview.c at some point. I decided to gradually rework things into a new file to make it easier to track progress. Signed-off-by: Anna Schumaker --- gui/view.c | 5 +++-- include/gui/treeview.h | 13 +++++++++++++ share/ocarina/ocarina.ui | 2 +- tests/gui/.gitignore | 1 + tests/gui/CMakeLists.txt | 1 + tests/gui/treeview.c | 38 ++++++++++++++++++++++++++++++++++++++ tests/gui/view.c | 3 ++- 7 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 include/gui/treeview.h create mode 100644 tests/gui/treeview.c diff --git a/gui/view.c b/gui/view.c index 9a63cf2e..559ab221 100644 --- a/gui/view.c +++ b/gui/view.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -293,7 +294,7 @@ void __view_rc_add_new(GtkMenuItem *item, gpointer data) static void __view_rc_add_other(GtkWidget *item, gpointer data) { - GtkTreeView *treeview = GTK_TREE_VIEW(gui_builder_widget("o_treeview")); + GtkTreeView *treeview = gui_treeview(); GtkTreeSelection *selection = gtk_tree_view_get_selection(treeview); struct playlist *playlist = (struct playlist *)data; struct view_add_data vad_data = { @@ -381,7 +382,7 @@ void gui_view_init() GtkTreeViewColumn *col; int i, pos; - view_treeview = GTK_TREE_VIEW(gui_builder_widget("o_treeview")); + view_treeview = gui_treeview(); for (i = 0; i < GUI_MODEL_N_COLUMNS; i++) { col = gtk_tree_view_get_column(view_treeview, i); diff --git a/include/gui/treeview.h b/include/gui/treeview.h new file mode 100644 index 00000000..de5ea532 --- /dev/null +++ b/include/gui/treeview.h @@ -0,0 +1,13 @@ +/* + * Copyright 2016 (c) Anna Schumaker. + */ +#ifndef OCARINA_GUI_TREEVIEW_H +#define OCARINA_GUI_TREEVIEW_H + +/* Called to access the treeview widget. */ +static inline GtkTreeView *gui_treeview() +{ + return GTK_TREE_VIEW(gui_builder_widget("treeview")); +} + +#endif /* OCARINA_GUI_TREEVIEW_H */ diff --git a/share/ocarina/ocarina.ui b/share/ocarina/ocarina.ui index 04895cc0..d1a12527 100644 --- a/share/ocarina/ocarina.ui +++ b/share/ocarina/ocarina.ui @@ -876,7 +876,7 @@ audio-volume-medium True in - + True True False diff --git a/tests/gui/.gitignore b/tests/gui/.gitignore index 19e4ad66..fc56bb82 100644 --- a/tests/gui/.gitignore +++ b/tests/gui/.gitignore @@ -3,6 +3,7 @@ window idle model filter +treeview view queue sidebar diff --git a/tests/gui/CMakeLists.txt b/tests/gui/CMakeLists.txt index e1d7bb43..d46c4ec4 100644 --- a/tests/gui/CMakeLists.txt +++ b/tests/gui/CMakeLists.txt @@ -9,6 +9,7 @@ gui_unit_test(Window) gui_unit_test(Idle) gui_unit_test(Model) gui_unit_test(Filter) +gui_unit_test(Treeview) gui_unit_test(View) gui_unit_test(Queue) gui_unit_test(Sidebar) diff --git a/tests/gui/treeview.c b/tests/gui/treeview.c new file mode 100644 index 00000000..c75ebaa5 --- /dev/null +++ b/tests/gui/treeview.c @@ -0,0 +1,38 @@ +/* + * Copyright 2016 (c) Anna Schumaker. + */ +#include +#include +#include +#include +#include +#include + +struct core_init_data init_data = {}; + +void test_treeview() +{ + g_assert_nonnull(gui_treeview()); + g_assert_true(GTK_IS_TREE_VIEW(gui_treeview())); +} + +int main(int argc, char **argv) +{ + int ret; + + gtk_init(&argc, NULL); + core_init(&argc, NULL, &init_data); + gui_builder_init("share/ocarina/ocarina.ui"); + gui_model_init(); + gui_filter_init(); + while (idle_run_task()) {} + + g_test_init(&argc, &argv, NULL); + g_test_add_func("/Gui/Treeview", test_treeview); + ret = g_test_run(); + + core_deinit(); + gui_filter_deinit(); + gui_model_deinit(); + return ret; +} diff --git a/tests/gui/view.c b/tests/gui/view.c index b23df3a1..41dd2c91 100644 --- a/tests/gui/view.c +++ b/tests/gui/view.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -57,7 +58,7 @@ static void test_treeview() gui_filter_set_playlist(playlist_get(PL_SYSTEM, "Collection")); filter = GTK_TREE_MODEL(gui_filter_get()); - treeview = GTK_TREE_VIEW(gui_builder_widget("o_treeview")); + treeview = gui_treeview(); for (i = 0; i < GUI_MODEL_N_COLUMNS; i++) g_assert_false(settings_has(QUEUE_SETTINGS[i]));