gui: Remove banned songs from Collection when re-enabling
I wasn't doing this before, so banned songs were showing up in the collection list again. I think this is kind of an ugly fix, though. Perhaps there is a better way to do it? Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
cfa61fa816
commit
41506f3177
|
@ -2,7 +2,9 @@
|
||||||
* Copyright 2014 (c) Anna Schumaker.
|
* Copyright 2014 (c) Anna Schumaker.
|
||||||
*/
|
*/
|
||||||
#include <core/callback.h>
|
#include <core/callback.h>
|
||||||
|
#include <core/index.h>
|
||||||
#include <core/library.h>
|
#include <core/library.h>
|
||||||
|
#include <core/playlist.h>
|
||||||
#include <gui/ocarina.h>
|
#include <gui/ocarina.h>
|
||||||
|
|
||||||
static void on_library_add(unsigned int id, Library *library);
|
static void on_library_add(unsigned int id, Library *library);
|
||||||
|
@ -80,6 +82,18 @@ static bool on_collection_key_pressed(GdkEventKey *event)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void on_enabled_remove_banned()
|
||||||
|
{
|
||||||
|
std::set<unsigned int>::iterator it;
|
||||||
|
IndexEntry *ent = playlist :: get_tracks("Banned");
|
||||||
|
|
||||||
|
if (!ent)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (it = ent->values.begin(); it != ent->values.end(); it++)
|
||||||
|
library :: get_queue()->del(tagdb :: lookup(*it));
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef CONFIG_TEST
|
#ifndef CONFIG_TEST
|
||||||
static
|
static
|
||||||
#endif /* CONFIG_TEST */
|
#endif /* CONFIG_TEST */
|
||||||
|
@ -87,9 +101,13 @@ void on_collection_toggled(const Glib::ustring &path)
|
||||||
{
|
{
|
||||||
Glib::RefPtr<Gtk::ListStore> list = get_collection_list();
|
Glib::RefPtr<Gtk::ListStore> list = get_collection_list();
|
||||||
Gtk::TreeModel::Row row = *(list->get_iter(path));
|
Gtk::TreeModel::Row row = *(list->get_iter(path));
|
||||||
|
|
||||||
row[collection_cols.c_col_enabled] = !row[collection_cols.c_col_enabled];
|
row[collection_cols.c_col_enabled] = !row[collection_cols.c_col_enabled];
|
||||||
library :: set_enabled(tagdb :: lookup_library(row[collection_cols.c_col_id]),
|
library :: set_enabled(tagdb :: lookup_library(row[collection_cols.c_col_id]),
|
||||||
row[collection_cols.c_col_enabled]);
|
row[collection_cols.c_col_enabled]);
|
||||||
|
|
||||||
|
if (row[collection_cols.c_col_enabled] == true)
|
||||||
|
on_enabled_remove_banned();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void on_library_add(unsigned int id, Library *library)
|
static void on_library_add(unsigned int id, Library *library)
|
||||||
|
|
Loading…
Reference in New Issue