gui: Watch for clicks on the random button

Signed-off-by: Anna Schumaker <schumaker.anna@gmail.com>
This commit is contained in:
Anna Schumaker 2014-01-24 22:50:05 -05:00 committed by Anna Schumaker
parent a98443872c
commit 018c4747a2
3 changed files with 17 additions and 9 deletions

View File

@ -7,11 +7,10 @@
Gtk::Window *ocarina_init(int *argc, char ***argv)
{
Gtk::Window *window = connect_wires();
audio::init(argc, argv);
deck::init();
library::init();
return window;
return connect_wires();
}
#ifndef CONFIG_TEST

View File

@ -83,7 +83,7 @@ void OcarinaTab::set_size(unsigned int size)
/*
* Ocarina class definition
*/
class OcarinaPage : Gtk::VBox {
class OcarinaPage : public Gtk::VBox {
private:
Glib::RefPtr<PlayqueueModel> model;
Gtk::Notebook *notebook;
@ -93,7 +93,6 @@ private:
/* Page widgets */
Gtk::HBox page_toolbar;
Gtk::SearchEntry page_entry;
Gtk::ToggleButton page_random;
//Gtk::ToggleButton page_repeat;
Gtk::ScrolledWindow page_scroll;
Gtk::TreeView page_view;
@ -102,6 +101,8 @@ private:
void set_tab_size();
public:
Gtk::ToggleButton page_random;
OcarinaPage(const std::string &, const std::string &,
Playqueue *, unsigned int);
~OcarinaPage();
@ -110,6 +111,7 @@ public:
void on_row_inserted(unsigned int);
void on_row_deleted(unsigned int);
void on_runtime_changed();
void on_random_toggled();
};
@ -129,14 +131,13 @@ OcarinaPage::OcarinaPage(const std::string &name, const std::string &icon,
/* Make buttons */
if (flags & PQ_RANDOM) {
page_random.set_image_from_icon_name("media-playlist-shuffle");
page_random.set_active(pq->get_flags() & PQ_RANDOM);
page_random.set_active((pq->get_flags() & PQ_RANDOM) != 0);
page_toolbar.pack_start(page_random, false, false);
page_random.signal_toggled().connect(sigc::mem_fun(*this, &OcarinaPage::on_random_toggled));
}
/* Make page content */
page_random.set_image_from_icon_name("media-playlist-shuffle");
page_random.set_active(pq->get_flags() & PQ_RANDOM);
//page_repeat.set_image_from_icon_name("media-playlist-repeat");
page_view.append_column("#", queue_cols.q_col_track);
@ -214,6 +215,14 @@ void OcarinaPage::on_runtime_changed()
label->set_text(model->queue->get_length_str());
}
void OcarinaPage::on_random_toggled()
{
if (page_random.get_active())
model->queue->set_flag(PQ_RANDOM);
else
model->queue->unset_flag(PQ_RANDOM);
}

View File

@ -25,17 +25,17 @@ static void del_library_track(unsigned int id)
void deck :: init()
{
read();
library_playqueue.set_flag(PQ_REPEAT);
get_callbacks()->on_library_track_add = add_library_track;
get_callbacks()->on_library_track_del = del_library_track;
get_callbacks()->on_queue_changed = write;
read();
}
void deck :: read()
{
unsigned int num;
bool random;
int random;
std::list<Playqueue>::iterator it;
if (!deck_file.exists())