gui/sidebar: Add a gui_sidebar_iter_playlist() function
It's frequently useful to get the playlist directly, rather than looking up type and name first. Let's add a function to do just that! Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
4d68ce8ce6
commit
846f7df9c1
|
@ -126,22 +126,15 @@ void __gui_sidebar_selection_changed(GtkTreeSelection *selection, gpointer data)
|
||||||
GtkTreeModel *model = GTK_TREE_MODEL(gui_sidebar_filter());
|
GtkTreeModel *model = GTK_TREE_MODEL(gui_sidebar_filter());
|
||||||
bool active = false, sensitive = false;
|
bool active = false, sensitive = false;
|
||||||
struct playlist *playlist = NULL;
|
struct playlist *playlist = NULL;
|
||||||
enum playlist_type_t type;
|
|
||||||
GtkTreeIter iter, child;
|
GtkTreeIter iter, child;
|
||||||
gchar *name;
|
|
||||||
|
|
||||||
if (gtk_tree_selection_get_selected(selection, &model, &iter)) {
|
if (gtk_tree_selection_get_selected(selection, &model, &iter)) {
|
||||||
__gui_sidebar_filter_iter_convert(&iter, &child);
|
__gui_sidebar_filter_iter_convert(&iter, &child);
|
||||||
|
|
||||||
name = gui_sidebar_iter_name(&child);
|
playlist = gui_sidebar_iter_playlist(&child);
|
||||||
type = gui_sidebar_iter_type(&child);
|
active = playlist_get_random(playlist->pl_type,
|
||||||
|
playlist->pl_name);
|
||||||
playlist = playlist_get(type, name);
|
sensitive = (playlist != playlist_get(PL_SYSTEM, "History"));
|
||||||
active = playlist_get_random(type, name);
|
|
||||||
sensitive = (type != PL_SYSTEM) ||
|
|
||||||
!string_match(name, "History");
|
|
||||||
|
|
||||||
g_free(name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gui_treeview_set_playlist(playlist);
|
gui_treeview_set_playlist(playlist);
|
||||||
|
@ -251,6 +244,16 @@ enum playlist_type_t gui_sidebar_iter_type(GtkTreeIter *iter)
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct playlist *gui_sidebar_iter_playlist(GtkTreeIter *iter)
|
||||||
|
{
|
||||||
|
enum playlist_type_t type = gui_sidebar_iter_type(iter);
|
||||||
|
gchar *name = gui_sidebar_iter_name(iter);
|
||||||
|
struct playlist *playlist = playlist_get(type, name);
|
||||||
|
|
||||||
|
g_free(name);
|
||||||
|
return playlist;
|
||||||
|
}
|
||||||
|
|
||||||
void gui_sidebar_iter_add(GtkTreeIter *iter, struct playlist *playlist,
|
void gui_sidebar_iter_add(GtkTreeIter *iter, struct playlist *playlist,
|
||||||
const gchar *image)
|
const gchar *image)
|
||||||
{
|
{
|
||||||
|
@ -291,17 +294,14 @@ void gui_sidebar_iter_append_child(GtkTreeIter *iter, struct playlist *playlist,
|
||||||
|
|
||||||
void gui_sidebar_iter_update(GtkTreeIter *iter)
|
void gui_sidebar_iter_update(GtkTreeIter *iter)
|
||||||
{
|
{
|
||||||
enum playlist_type_t type = gui_sidebar_iter_type(iter);
|
struct playlist *playlist = gui_sidebar_iter_playlist(iter);
|
||||||
gchar *name, *text;
|
gchar *text;
|
||||||
|
|
||||||
if (type >= PL_MAX_TYPE)
|
if (!playlist)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
name = gui_sidebar_iter_name(iter);
|
text = __gui_sidebar_size_str(playlist);
|
||||||
text = __gui_sidebar_size_str(playlist_get(type, name));
|
|
||||||
gtk_tree_store_set(gui_sidebar_store(), iter, SB_NAME, text, -1);
|
gtk_tree_store_set(gui_sidebar_store(), iter, SB_NAME, text, -1);
|
||||||
|
|
||||||
g_free(name);
|
|
||||||
g_free(text);
|
g_free(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,9 @@ gchar *gui_sidebar_iter_name(GtkTreeIter *);
|
||||||
/* Called to find the type of the playlist at the given iterator. */
|
/* Called to find the type of the playlist at the given iterator. */
|
||||||
enum playlist_type_t gui_sidebar_iter_type(GtkTreeIter *);
|
enum playlist_type_t gui_sidebar_iter_type(GtkTreeIter *);
|
||||||
|
|
||||||
|
/* Called to find the playlist at the given iterator. */
|
||||||
|
struct playlist *gui_sidebar_iter_playlist(GtkTreeIter *);
|
||||||
|
|
||||||
/* Called to add a playlist at the current iterator. */
|
/* Called to add a playlist at the current iterator. */
|
||||||
void gui_sidebar_iter_add(GtkTreeIter *, struct playlist *, const gchar *);
|
void gui_sidebar_iter_add(GtkTreeIter *, struct playlist *, const gchar *);
|
||||||
|
|
||||||
|
|
|
@ -78,6 +78,8 @@ static void test_sidebar()
|
||||||
g_assert_true(gui_sidebar_iter_find(&iter, "History", PL_SYSTEM));
|
g_assert_true(gui_sidebar_iter_find(&iter, "History", PL_SYSTEM));
|
||||||
g_assert_cmpstr_free(gui_sidebar_iter_name(&iter), ==, "History");
|
g_assert_cmpstr_free(gui_sidebar_iter_name(&iter), ==, "History");
|
||||||
g_assert_cmpuint(gui_sidebar_iter_type(&iter), ==, PL_SYSTEM);
|
g_assert_cmpuint(gui_sidebar_iter_type(&iter), ==, PL_SYSTEM);
|
||||||
|
g_assert(gui_sidebar_iter_playlist(&iter) ==
|
||||||
|
playlist_get(PL_SYSTEM, "History"));
|
||||||
|
|
||||||
g_assert_true(gui_sidebar_iter_find(&iter, "Dynamic", PL_MAX_TYPE));
|
g_assert_true(gui_sidebar_iter_find(&iter, "Dynamic", PL_MAX_TYPE));
|
||||||
g_assert_false(gui_sidebar_iter_down(&iter, &child));
|
g_assert_false(gui_sidebar_iter_down(&iter, &child));
|
||||||
|
|
Loading…
Reference in New Issue