gui/sidebar: Move the visible function into sidebar.c
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
a2113dc378
commit
a152ed689f
|
@ -131,25 +131,6 @@ void __playlist_row_activated(GtkTreeView *treeview, GtkTreePath *path,
|
||||||
g_free(name);
|
g_free(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean __playlist_visible_func(GtkTreeModel *model, GtkTreeIter *iter,
|
|
||||||
gpointer data)
|
|
||||||
{
|
|
||||||
gchar *name;
|
|
||||||
bool show;
|
|
||||||
|
|
||||||
if (!p_filter_enable)
|
|
||||||
return true;
|
|
||||||
if (gui_sidebar_iter_type(iter) == PL_MAX_TYPE)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
name = gui_sidebar_iter_name(iter);
|
|
||||||
show = gui_sidebar_iter_type(iter) == PL_USER ||
|
|
||||||
!playlist_get_queue(gui_sidebar_iter_type(iter), name) ||
|
|
||||||
(playlist_size(gui_sidebar_iter_type(iter), name) > 0);
|
|
||||||
g_free(name);
|
|
||||||
return show;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool __playlist_queue_set_size(struct queue *queue, GtkTreeIter *iter)
|
static bool __playlist_queue_set_size(struct queue *queue, GtkTreeIter *iter)
|
||||||
{
|
{
|
||||||
struct gui_queue *gq = gui_queue(queue);
|
struct gui_queue *gq = gui_queue(queue);
|
||||||
|
@ -286,16 +267,11 @@ bool __gui_playlist_init_idle()
|
||||||
|
|
||||||
void gui_playlist_init()
|
void gui_playlist_init()
|
||||||
{
|
{
|
||||||
GtkTreeModelFilter *filter;
|
|
||||||
GtkTreeView *treeview;
|
GtkTreeView *treeview;
|
||||||
GtkTreeIter parent;
|
GtkTreeIter parent;
|
||||||
|
|
||||||
filter = gui_sidebar_filter();
|
|
||||||
treeview = gui_sidebar_treeview();
|
treeview = gui_sidebar_treeview();
|
||||||
|
|
||||||
gtk_tree_model_filter_set_visible_func(filter, __playlist_visible_func,
|
|
||||||
NULL, NULL);
|
|
||||||
|
|
||||||
gui_sidebar_iter_first(&parent);
|
gui_sidebar_iter_first(&parent);
|
||||||
gui_sidebar_iter_add(&parent, playlist_get(PL_SYSTEM, "Queued Tracks"),
|
gui_sidebar_iter_add(&parent, playlist_get(PL_SYSTEM, "Queued Tracks"),
|
||||||
"audio-x-generic");
|
"audio-x-generic");
|
||||||
|
|
|
@ -74,6 +74,25 @@ static int __gui_sidebar_compare(GtkTreeIter *iter, const gchar *name,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean __gui_sidebar_visible_func(GtkTreeModel *model,
|
||||||
|
GtkTreeIter *iter,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
enum playlist_type_t type = gui_sidebar_iter_type(iter);
|
||||||
|
gboolean ret = TRUE;
|
||||||
|
gchar *name;
|
||||||
|
|
||||||
|
if (type == PL_SYSTEM || type == PL_ARTIST) {
|
||||||
|
name = gui_sidebar_iter_name(iter);
|
||||||
|
if (name) {
|
||||||
|
ret = playlist_size(type, name) > 0;
|
||||||
|
g_free(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;;
|
||||||
|
}
|
||||||
|
|
||||||
void __gui_sidebar_resized(GtkPaned *pane, GParamSpec *pspec, gpointer data)
|
void __gui_sidebar_resized(GtkPaned *pane, GParamSpec *pspec, gpointer data)
|
||||||
{
|
{
|
||||||
settings_set(SIDEBAR_SETTING, gtk_paned_get_position(pane));
|
settings_set(SIDEBAR_SETTING, gtk_paned_get_position(pane));
|
||||||
|
@ -84,10 +103,15 @@ void gui_sidebar_init()
|
||||||
int pos = settings_get(SIDEBAR_SETTING);
|
int pos = settings_get(SIDEBAR_SETTING);
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
|
|
||||||
gui_sidebar_iter_first(&iter);
|
if (!gui_sidebar_iter_first(&iter)) {
|
||||||
__gui_sidebar_add_header(&iter, "Playlists", "emblem-documents");
|
__gui_sidebar_add_header(&iter, "Playlists", "emblem-documents");
|
||||||
__gui_sidebar_add_header(&iter, "Dynamic", "emblem-generic");
|
__gui_sidebar_add_header(&iter, "Dynamic", "emblem-generic");
|
||||||
__gui_sidebar_add_header(&iter, "Library", "emblem-system");
|
__gui_sidebar_add_header(&iter, "Library", "emblem-system");
|
||||||
|
|
||||||
|
gtk_tree_model_filter_set_visible_func(gui_sidebar_filter(),
|
||||||
|
__gui_sidebar_visible_func,
|
||||||
|
NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
if (pos > 0)
|
if (pos > 0)
|
||||||
gtk_paned_set_position(gui_sidebar(), pos);
|
gtk_paned_set_position(gui_sidebar(), pos);
|
||||||
|
|
Loading…
Reference in New Issue