From 9b0499b3ce165b2739475c64927103466bed437d Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 1 Mar 2014 20:21:27 -0500 Subject: [PATCH] gui: Add to queue menu items This commit finishes my tab rewrite. Signed-off-by: Anna Schumaker --- gui/tabs.cpp | 175 ++++++++++++--------------------------------------- 1 file changed, 41 insertions(+), 134 deletions(-) diff --git a/gui/tabs.cpp b/gui/tabs.cpp index 767a6b6e..0c814ce9 100644 --- a/gui/tabs.cpp +++ b/gui/tabs.cpp @@ -250,6 +250,28 @@ bool Tab :: on_key_press_event(const std::string &key) void Tab :: on_show_rc_menu() { + std::string item; + unsigned int size = deck :: size(); + + if (size == 0) { + get_widget("o_add_to_pq")->hide(); + return; + } + get_widget("o_add_to_pq")->show(); + + if (size == 10) + get_widget("o_new_pq")->hide(); + else + get_widget("o_new_pq")->show(); + + for (unsigned int i = 0; i < 10; i++) { + item = "o_pq_"; + item += '0' + i; + if (i < size) + get_widget(item)->show(); + else + get_widget(item)->hide(); + } } @@ -446,6 +468,20 @@ static void on_add_to_banned() tab->tab_ban_selected(); } +static void on_add_to_queue(unsigned int n) +{ + Tab *tab = cur_tab(); + if (tab) + tab->tab_add_to_queue(n); +} + +static void init_menu_item(const std::string &pq, unsigned int n) + +{ + get_widget(pq)->signal_activate().connect( + sigc::bind (sigc::ptr_fun(on_add_to_queue), n)); +} + void init_tabs() { struct Callbacks *cb = get_callbacks(); @@ -465,6 +501,11 @@ void init_tabs() sigc::ptr_fun(on_add_to_favs)); get_widget("o_add_to_banned")->signal_activate().connect( sigc::ptr_fun(on_add_to_banned)); + for (unsigned int i = 0; i < 10; i++) { + std::string pq = "o_pq_"; + pq += '0' + i; + init_menu_item(pq, i); + } /* Initialize other tabs */ init_collection_tab(); @@ -485,137 +526,3 @@ void cleanup_tabs() while (queue_mapping.size() > 0) delete queue_mapping.begin()->second; } - - - -/* - * Mostly legacy code .... - */ - -/*class OcarinaPage; -static std::map tab_map; -static std::list tab_types; - - -static Gtk::Widget *get_menu_widget(const std::string &name) -{ - Gtk::Widget *widget; - get_builder()->get_widget(name, widget); - return widget; -} - -static void prepare_rc_menu() -{ - unsigned int size = deck::size(); -*/ - /* Set widgets visible */ -/* switch (size) { - case 10: - get_menu_widget("o_pq_9")->show(); - case 9: - get_menu_widget("o_pq_8")->show(); - case 8: - get_menu_widget("o_pq_7")->show(); - case 7: - get_menu_widget("o_pq_6")->show(); - case 6: - get_menu_widget("o_pq_5")->show(); - case 5: - get_menu_widget("o_pq_4")->show(); - case 4: - get_menu_widget("o_pq_3")->show(); - case 3: - get_menu_widget("o_pq_2")->show(); - case 2: - get_menu_widget("o_pq_1")->show(); - case 1: - get_menu_widget("o_pq_0")->show(); - get_menu_widget("o_add_to_pq")->show(); - default: - if (size != 10) - get_menu_widget("o_new_pq")->show(); - break; - } -*/ - /* Set widgets invisible */ -/* switch (size) { - case 0: - get_menu_widget("o_add_to_pq")->hide(); - get_menu_widget("o_pq_0")->hide(); - case 1: - get_menu_widget("o_pq_1")->hide(); - case 2: - get_menu_widget("o_pq_2")->hide(); - case 3: - get_menu_widget("o_pq_3")->hide(); - case 4: - get_menu_widget("o_pq_4")->hide(); - case 5: - get_menu_widget("o_pq_5")->hide(); - case 6: - get_menu_widget("o_pq_6")->hide(); - case 7: - get_menu_widget("o_pq_7")->hide(); - case 8: - get_menu_widget("o_pq_8")->hide(); - case 9: - get_menu_widget("o_pq_9")->hide(); - break; - case 10: - get_menu_widget("o_new_pq")->hide(); - }; -} - -bool OcarinaPage::on_view_button_pressed(GdkEventButton *button) -{ - Gtk::Menu *menu; - get_builder()->get_widget("o_rc_menu", menu); - - if (button->button != 3) - return false; - prepare_rc_menu(); - menu->popup(button->button, button->time); - return true; -} - -*/ - - -/* - * Do stuff with tabs - */ -/* -static void init_menu_item(const std::string &name, unsigned int num) -{ - Glib::RefPtrmenu = Glib::RefPtr::cast_static(get_builder()->get_object(name)); - menu->signal_activate().connect(sigc::bind ( - sigc::ptr_fun(on_add_to_queue), num)); -}*/ - -/* -void init_tabs() -{ - Gtk::Notebook *notebook; - get_builder()->get_widget("o_notebook", notebook); - - get_callbacks()->on_queue_track_changed = on_track_changed; - -*/ - /*Glib::RefPtr new_pq = Glib::RefPtr::cast_static(get_builder()->get_object("o_new_pq")); - new_pq->signal_activate().connect(sigc::ptr_fun(on_new_queue)); - - init_menu_item("o_pq_0", 0); - init_menu_item("o_pq_1", 1); - init_menu_item("o_pq_2", 2); - init_menu_item("o_pq_3", 3); - init_menu_item("o_pq_4", 4); - init_menu_item("o_pq_5", 5); - init_menu_item("o_pq_6", 6); - init_menu_item("o_pq_7", 7); - init_menu_item("o_pq_8", 8); - init_menu_item("o_pq_9", 9);*/ -/* - - notebook->signal_page_reordered().connect(sigc::ptr_fun(on_page_reordered)); - notebook->set_current_page(0); -}*/