gui/sidebar: Initialize the sidebar with default headers
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
18e76a7dca
commit
4fc8c72ea8
|
@ -82,14 +82,19 @@ gboolean __playlist_on_select(GtkTreeSelection *selection, GtkTreeModel *model,
|
||||||
GtkTreePath *path, gboolean selected, gpointer data)
|
GtkTreePath *path, gboolean selected, gpointer data)
|
||||||
{
|
{
|
||||||
struct queue *queue = NULL;
|
struct queue *queue = NULL;
|
||||||
|
enum playlist_type_t type;
|
||||||
GtkTreeIter iter, child;
|
GtkTreeIter iter, child;
|
||||||
gchar *name;
|
gchar *name;
|
||||||
|
|
||||||
gtk_tree_model_get_iter(model, &iter, path);
|
gtk_tree_model_get_iter(model, &iter, path);
|
||||||
__playlist_filter_get_iter(&iter, &child);
|
__playlist_filter_get_iter(&iter, &child);
|
||||||
|
|
||||||
name = gui_sidebar_iter_name(&child);
|
type = gui_sidebar_iter_type(&child);
|
||||||
queue = playlist_get_queue(gui_sidebar_iter_type(&child), name);
|
if (type == PL_MAX_TYPE)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
name = gui_sidebar_iter_name(&child);
|
||||||
|
queue = playlist_get_queue(type, name);
|
||||||
g_free(name);
|
g_free(name);
|
||||||
|
|
||||||
return queue != NULL;
|
return queue != NULL;
|
||||||
|
|
|
@ -12,6 +12,21 @@ enum sidebar_columns {
|
||||||
|
|
||||||
const gchar *SIDEBAR_SETTING = "gui.sidebar.pos";
|
const gchar *SIDEBAR_SETTING = "gui.sidebar.pos";
|
||||||
|
|
||||||
|
static void __gui_sidebar_add_header(GtkTreeIter *iter, const gchar *name,
|
||||||
|
const gchar *image)
|
||||||
|
{
|
||||||
|
gchar *formatted = g_strdup_printf("<big>%s</big>", name);
|
||||||
|
|
||||||
|
gtk_tree_store_insert_with_values(gui_sidebar_store(), iter, NULL, -1,
|
||||||
|
SB_TYPE, PL_MAX_TYPE, -1);
|
||||||
|
gtk_tree_store_insert_with_values(gui_sidebar_store(), iter, NULL, -1,
|
||||||
|
SB_IMAGE, image,
|
||||||
|
SB_NAME, formatted,
|
||||||
|
SB_TYPE, PL_MAX_TYPE, -1);
|
||||||
|
|
||||||
|
g_free(formatted);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void __gui_sidebar_resized(GtkPaned *pane, GParamSpec *pspec, gpointer data)
|
void __gui_sidebar_resized(GtkPaned *pane, GParamSpec *pspec, gpointer data)
|
||||||
{
|
{
|
||||||
|
@ -20,7 +35,14 @@ void __gui_sidebar_resized(GtkPaned *pane, GParamSpec *pspec, gpointer data)
|
||||||
|
|
||||||
void gui_sidebar_init()
|
void gui_sidebar_init()
|
||||||
{
|
{
|
||||||
int pos = settings_get(SIDEBAR_SETTING);
|
int pos = settings_get(SIDEBAR_SETTING);
|
||||||
|
GtkTreeIter iter;
|
||||||
|
|
||||||
|
gui_sidebar_iter_first(&iter);
|
||||||
|
__gui_sidebar_add_header(&iter, "Playlists", "emblem-documents");
|
||||||
|
__gui_sidebar_add_header(&iter, "Dynamic", "emblem-generic");
|
||||||
|
__gui_sidebar_add_header(&iter, "Library", "emblem-system");
|
||||||
|
|
||||||
if (pos > 0)
|
if (pos > 0)
|
||||||
gtk_paned_set_position(gui_sidebar(), pos);
|
gtk_paned_set_position(gui_sidebar(), pos);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,9 +5,14 @@
|
||||||
#include <gui/sidebar.h>
|
#include <gui/sidebar.h>
|
||||||
#include <tests/test.h>
|
#include <tests/test.h>
|
||||||
|
|
||||||
|
const gchar *test_pl_names[6] = { "", "Playlists",
|
||||||
|
"", "Dynamic",
|
||||||
|
"", "Library" };
|
||||||
|
|
||||||
static void test_sidebar()
|
static void test_sidebar()
|
||||||
{
|
{
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
g_assert_nonnull(gui_sidebar_store());
|
g_assert_nonnull(gui_sidebar_store());
|
||||||
g_assert_true(GTK_IS_TREE_STORE(gui_sidebar_store()));
|
g_assert_true(GTK_IS_TREE_STORE(gui_sidebar_store()));
|
||||||
|
@ -21,7 +26,17 @@ static void test_sidebar()
|
||||||
g_assert_nonnull(gui_sidebar_treeview());
|
g_assert_nonnull(gui_sidebar_treeview());
|
||||||
g_assert_true(GTK_IS_TREE_VIEW(gui_sidebar_treeview()));
|
g_assert_true(GTK_IS_TREE_VIEW(gui_sidebar_treeview()));
|
||||||
|
|
||||||
g_assert_false(gui_sidebar_iter_first(&iter));
|
g_assert_true(gui_sidebar_iter_first(&iter));
|
||||||
|
for (i = 0; i < 6; i++) {
|
||||||
|
g_assert_cmpstr_free(gui_sidebar_iter_name(&iter), ==,
|
||||||
|
test_pl_names[i]);
|
||||||
|
g_assert_cmpuint(gui_sidebar_iter_type(&iter), ==,
|
||||||
|
PL_MAX_TYPE);
|
||||||
|
|
||||||
|
if (i < 5)
|
||||||
|
g_assert_true(gui_sidebar_iter_next(&iter));
|
||||||
|
}
|
||||||
|
g_assert_false(gui_sidebar_iter_next(&iter));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_sidebar_pos()
|
static void test_sidebar_pos()
|
||||||
|
|
Loading…
Reference in New Issue