ocarina/gui/collection.cpp

64 lines
1.3 KiB
C++

/*
* Copyright 2014 (c) Anna Schumaker.
*/
#include <core/deck.h>
#include <core/library.h>
#include <core/playlist.h>
#include <gui/tabs.h>
#include <lib/lib.h>
class CollectionTab : public Tab {
public:
CollectionTab();
~CollectionTab();
void on_post_init();
bool on_key_press_event(const std::string &);
};
CollectionTab :: CollectionTab()
: Tab(library::get_queue())
{
tab_random = lib :: get_widget<Gtk::ToggleButton>("o_collection_random");
tab_search = lib :: get_widget<Gtk::SearchEntry>("o_collection_entry");
tab_size = lib :: get_widget<Gtk::Label>("o_collection_size");
tab_treeview = lib :: get_widget<Gtk::TreeView>("o_collection_pq_treeview");
tab_widget = lib :: get_widget<Gtk::Widget>("o_collection_page");
tab_finish_init();
}
CollectionTab :: ~CollectionTab()
{
tab_unmap();
}
void CollectionTab :: on_post_init()
{
tab_init_random();
}
bool CollectionTab :: on_key_press_event(const std::string &key)
{
std::vector<unsigned int> ids;
if (key != "Delete")
return Tab :: on_key_press_event(key);
tab_selected_ids(ids);
for (unsigned int i = 0; i < ids.size(); i++)
playlist :: add(tags :: get_track(ids[i]), "Banned");
return true;
}
static CollectionTab *collection_tab;
void init_collection_tab()
{
collection_tab = new CollectionTab;
}