gui/sidebar: Add sizes to Collection and History entries
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
eb137c4339
commit
c663f287d4
|
@ -1,7 +1,10 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2015 (c) Anna Schumaker.
|
* Copyright 2015 (c) Anna Schumaker.
|
||||||
*/
|
*/
|
||||||
|
extern "C" {
|
||||||
#include <core/string.h>
|
#include <core/string.h>
|
||||||
|
#include <gui/sidebar.h>
|
||||||
|
}
|
||||||
#include <gui/queue/label.h>
|
#include <gui/queue/label.h>
|
||||||
|
|
||||||
|
|
||||||
|
@ -35,6 +38,7 @@ void CollectionLabel :: set_size()
|
||||||
{
|
{
|
||||||
gchar *size = g_strdup_printf("%u", queue_size(_queue));
|
gchar *size = g_strdup_printf("%u", queue_size(_queue));
|
||||||
collection_size->set_text(size);
|
collection_size->set_text(size);
|
||||||
|
gui_sidebar_set_size(_queue);
|
||||||
g_free(size);
|
g_free(size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,6 +55,7 @@ void HistoryLabel :: set_size()
|
||||||
{
|
{
|
||||||
gchar *size = g_strdup_printf("%u", queue_size(_queue));
|
gchar *size = g_strdup_printf("%u", queue_size(_queue));
|
||||||
history_size->set_text(size);
|
history_size->set_text(size);
|
||||||
|
gui_sidebar_set_size(_queue);
|
||||||
g_free(size);
|
g_free(size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,9 @@
|
||||||
#include <gui/sidebar.h>
|
#include <gui/sidebar.h>
|
||||||
|
|
||||||
const gchar *SIDEBAR_SETTING = "gui.sidebar.pos";
|
const gchar *SIDEBAR_SETTING = "gui.sidebar.pos";
|
||||||
|
const gchar *COLLECTION_FMT = "<big>Collection</big>\n%d track%s";
|
||||||
|
const gchar *HISTORY_FMT = "<big>History</big>\n%d track%s";
|
||||||
|
|
||||||
static GtkListStore *sb_store;
|
static GtkListStore *sb_store;
|
||||||
|
|
||||||
enum sidebar_columns {
|
enum sidebar_columns {
|
||||||
|
@ -18,11 +21,42 @@ enum sidebar_columns {
|
||||||
SB_QUEUE,
|
SB_QUEUE,
|
||||||
};
|
};
|
||||||
|
|
||||||
void __sidebar_set_queue(GtkTreeIter *iter, struct queue *queue)
|
static void __sidebar_set_size(GtkTreeIter *iter, const gchar *name,
|
||||||
|
unsigned int size)
|
||||||
|
{
|
||||||
|
const gchar *fmt = "<big>%s</big>\n%d track%s";
|
||||||
|
gchar *text;
|
||||||
|
|
||||||
|
text = g_strdup_printf(fmt, name, size, (size == 1) ? "" : "s");
|
||||||
|
gtk_list_store_set(sb_store, iter, SB_TEXT, text, -1);
|
||||||
|
g_free(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __sidebar_set_queue(GtkTreeIter *iter, struct queue *queue)
|
||||||
{
|
{
|
||||||
gtk_list_store_set(sb_store, iter, SB_QUEUE, queue, -1);
|
gtk_list_store_set(sb_store, iter, SB_QUEUE, queue, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct queue *__sidebar_get_queue(GtkTreeIter *iter)
|
||||||
|
{
|
||||||
|
struct queue *queue;
|
||||||
|
|
||||||
|
gtk_tree_model_get(GTK_TREE_MODEL(sb_store), iter, SB_QUEUE, &queue, -1);
|
||||||
|
return queue;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool __sidebar_find_queue(struct queue *queue, GtkTreeIter *iter)
|
||||||
|
{
|
||||||
|
gtk_tree_model_get_iter_first(GTK_TREE_MODEL(sb_store), iter);
|
||||||
|
|
||||||
|
do {
|
||||||
|
if (__sidebar_get_queue(iter) == queue)
|
||||||
|
return true;
|
||||||
|
} while (gtk_tree_model_iter_next(GTK_TREE_MODEL(sb_store), iter));
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void __sidebar_resize(GtkPaned *pane, GParamSpec *pspec, gpointer data)
|
void __sidebar_resize(GtkPaned *pane, GParamSpec *pspec, gpointer data)
|
||||||
{
|
{
|
||||||
gui_settings_set(SIDEBAR_SETTING, gtk_paned_get_position(pane));
|
gui_settings_set(SIDEBAR_SETTING, gtk_paned_get_position(pane));
|
||||||
|
@ -89,3 +123,17 @@ void gui_sidebar_selected(enum sidebar_selection_t selected)
|
||||||
if (selected != SB_SIDEBAR)
|
if (selected != SB_SIDEBAR)
|
||||||
__sidebar_deselect("o_sidebar_view");
|
__sidebar_deselect("o_sidebar_view");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void gui_sidebar_set_size(struct queue *queue)
|
||||||
|
{
|
||||||
|
const gchar *name = "Collection";
|
||||||
|
GtkTreeIter iter;
|
||||||
|
|
||||||
|
if (!__sidebar_find_queue(queue, &iter))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (queue == history_get_queue())
|
||||||
|
name = "History";
|
||||||
|
|
||||||
|
__sidebar_set_size(&iter, name, queue_size(queue));
|
||||||
|
}
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
#ifndef OCARINA_GUI_SIDEBAR_H
|
#ifndef OCARINA_GUI_SIDEBAR_H
|
||||||
#define OCARINA_GUI_SIDEBAR_H
|
#define OCARINA_GUI_SIDEBAR_H
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
enum sidebar_selection_t {
|
enum sidebar_selection_t {
|
||||||
SB_COLLECTION,
|
SB_COLLECTION,
|
||||||
SB_PLAYLIST,
|
SB_PLAYLIST,
|
||||||
|
@ -20,4 +22,7 @@ gboolean gui_sidebar_on_select(GtkTreeSelection *, GtkTreeModel *,
|
||||||
/* Called to tell the sidebar that the selection has changed. */
|
/* Called to tell the sidebar that the selection has changed. */
|
||||||
void gui_sidebar_selected(enum sidebar_selection_t);
|
void gui_sidebar_selected(enum sidebar_selection_t);
|
||||||
|
|
||||||
|
/* Called to set the size of sidebar entries. */
|
||||||
|
void gui_sidebar_set_size(struct queue *);
|
||||||
|
|
||||||
#endif /* OCARINA_GUI_SIDEBAR_H */
|
#endif /* OCARINA_GUI_SIDEBAR_H */
|
||||||
|
|
|
@ -321,8 +321,8 @@
|
||||||
<property name="icon_name">media-skip-backward</property>
|
<property name="icon_name">media-skip-backward</property>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<accelerator key="AudioPrev" signal="clicked"/>
|
|
||||||
<accelerator key="n" signal="clicked" modifiers="GDK_SHIFT_MASK"/>
|
<accelerator key="n" signal="clicked" modifiers="GDK_SHIFT_MASK"/>
|
||||||
|
<accelerator key="AudioPrev" signal="clicked"/>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
|
@ -356,8 +356,8 @@
|
||||||
<property name="icon_size">5</property>
|
<property name="icon_size">5</property>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<accelerator key="AudioPlay" signal="clicked"/>
|
|
||||||
<accelerator key="space" signal="clicked"/>
|
<accelerator key="space" signal="clicked"/>
|
||||||
|
<accelerator key="AudioPlay" signal="clicked"/>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
|
@ -390,8 +390,8 @@
|
||||||
<property name="icon_size">5</property>
|
<property name="icon_size">5</property>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<accelerator key="AudioPlay" signal="clicked"/>
|
|
||||||
<accelerator key="space" signal="clicked"/>
|
<accelerator key="space" signal="clicked"/>
|
||||||
|
<accelerator key="AudioPlay" signal="clicked"/>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
|
@ -424,8 +424,8 @@
|
||||||
<property name="icon_name">media-playback-stop</property>
|
<property name="icon_name">media-playback-stop</property>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<accelerator key="space" signal="clicked" modifiers="GDK_MOD1_MASK"/>
|
|
||||||
<accelerator key="AudioPlay" signal="clicked" modifiers="GDK_MOD1_MASK"/>
|
<accelerator key="AudioPlay" signal="clicked" modifiers="GDK_MOD1_MASK"/>
|
||||||
|
<accelerator key="space" signal="clicked" modifiers="GDK_MOD1_MASK"/>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
|
@ -458,8 +458,8 @@
|
||||||
<property name="icon_name">media-skip-forward</property>
|
<property name="icon_name">media-skip-forward</property>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<accelerator key="AudioNext" signal="clicked"/>
|
|
||||||
<accelerator key="n" signal="clicked"/>
|
<accelerator key="n" signal="clicked"/>
|
||||||
|
<accelerator key="AudioNext" signal="clicked"/>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
|
|
Loading…
Reference in New Issue