core/gst: Set ban / favorite status when tracks are loaded

It's easier to do this from the audio code than the plalist code.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
Anna Schumaker 2015-12-24 11:17:24 -05:00
parent 61436d5ccd
commit 44d7f9a853
3 changed files with 8 additions and 12 deletions

View File

@ -7,6 +7,7 @@
*/
extern "C" {
#include <core/audio.h>
#include <core/playlist.h>
#include <core/string.h>
#include <gui/builder.h>
}
@ -41,6 +42,8 @@ static void set_markup(Gtk::Label *label, const std::string &size,
static void on_load(struct track *track)
{
Gtk::ToggleButton *toggle;
gchar *str = g_strdup_printf("From: %s", track->tr_album->al_name);
set_markup(o_album, "x-large", str);
g_free(str);
@ -55,7 +58,11 @@ static void on_load(struct track *track)
o_duration->set_text(str);
g_free(str);
plist :: track_loaded(track);
toggle = Glib :: wrap(GTK_TOGGLE_BUTTON(gui_builder_widget("o_ban")), false);
toggle->set_active(playlist_has(PL_HIDDEN, track));
toggle = Glib :: wrap(GTK_TOGGLE_BUTTON(gui_builder_widget("o_favorite")), false);
toggle->set_active(playlist_has(PL_FAVORITED, track));
}
static void on_change_state(GstState state)

View File

@ -185,14 +185,6 @@ struct queue_ops playlist_ops = {
playlist_updated,
};
void plist :: track_loaded(struct track *track)
{
if (p_tab) {
o_ban->set_active(playlist_has(PL_HIDDEN, track));
o_fav->set_active(playlist_has(PL_FAVORITED, track));
}
}
void plist :: init()
{
p_tab = new PlaylistTab;
@ -200,8 +192,6 @@ void plist :: init()
o_ban = Glib :: wrap(GTK_TOGGLE_BUTTON(gui_builder_widget("o_ban")), false);
o_fav = Glib :: wrap(GTK_TOGGLE_BUTTON(gui_builder_widget("o_favorite")), false);
track_loaded(audio_cur_track());
o_ban->signal_toggled().connect(sigc::ptr_fun(on_ban));
o_fav->signal_toggled().connect(sigc::ptr_fun(on_favorite));
}

View File

@ -48,7 +48,6 @@ namespace manager
/* playlist.cpp */
namespace plist
{
void track_loaded(struct track *track);
void init();
}