From 34de6874ffc858e0e506ac783276c4f0db14aa5c Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 23 Feb 2014 20:26:12 -0500 Subject: [PATCH] gui: Queue tabs now have a search bar Signed-off-by: Anna Schumaker --- gui/queue.cpp | 74 +++++++++++++++++++++++++++++++++++++++++---------- gui/tabs.cpp | 50 ---------------------------------- 2 files changed, 60 insertions(+), 64 deletions(-) diff --git a/gui/queue.cpp b/gui/queue.cpp index 3a2c74b4..67123acf 100644 --- a/gui/queue.cpp +++ b/gui/queue.cpp @@ -10,21 +10,28 @@ class QueueTab : public Tab { private: /** - * Queue tab variables + * Queue tab widgets */ Gtk::HBox q_tab_box; Gtk::Label q_tab_number; Gtk::Label q_tab_size; Gtk::Button q_tab_close; - Gtk::Image q_tab_close_img; + /** - * Queue page variables + * Queue page widgets */ - Gtk::ToggleButton q_random; + Gtk::VBox q_vbox; + + /* Toolbar widgets */ + Gtk::HBox q_toolbar_box; Gtk::SearchEntry q_search; - Gtk::TreeView q_treeview; - Gtk::VBox q_vbox; + Gtk::ToggleButton q_random; + Gtk::ToggleButton q_repeat; + + /* Treeview widgets */ + Gtk::ScrolledWindow q_window; + Gtk::TreeView q_treeview; public: QueueTab(Playqueue *, unsigned int num); @@ -54,16 +61,18 @@ QueueTab :: QueueTab(Playqueue *pq, unsigned int num) /* * Create our tab widget */ - q_tab_close_img.set_from_icon_name("window-close", Gtk::ICON_SIZE_MENU); - q_tab_close.set_image(q_tab_close_img); - q_tab_close.set_relief(Gtk::RELIEF_NONE); - q_tab_close.signal_clicked().connect(sigc::mem_fun(*this, - &QueueTab::on_close_clicked)); + q_tab_number.set_alignment(0, 0.5); q_tab_size.set_justify(Gtk::JUSTIFY_CENTER); - q_tab_box.pack_start(q_tab_number, false, false); + q_tab_close.set_image_from_icon_name("window-close", Gtk::ICON_SIZE_MENU); + q_tab_close.set_relief(Gtk::RELIEF_NONE); + q_tab_close.set_alignment(1, 0.5); + q_tab_close.signal_clicked().connect(sigc::mem_fun(*this, + &QueueTab::on_close_clicked)); + + q_tab_box.pack_start(q_tab_number, false, true); q_tab_box.pack_start(q_tab_size, true, true); - q_tab_box.pack_start(q_tab_close, false, false); + q_tab_box.pack_start(q_tab_close, false, true); tab_set_size(); queue_set_number(num); @@ -71,7 +80,44 @@ QueueTab :: QueueTab(Playqueue *pq, unsigned int num) /* - * Finish generic init + * Now set up the toolbar + */ + q_repeat.set_image_from_icon_name("media-playlist-repeat", Gtk::ICON_SIZE_BUTTON); + q_random.set_image_from_icon_name("media-playlist-shuffle", Gtk::ICON_SIZE_BUTTON); + + q_toolbar_box.set_margin_left(5); + q_toolbar_box.set_margin_right(5); + q_toolbar_box.set_spacing(5); + q_toolbar_box.set_homogeneous(false); + + q_toolbar_box.pack_start(q_search, true, true); + q_toolbar_box.pack_start(q_repeat, false, true); + q_toolbar_box.pack_start(q_random, false, true); + + + /* + * And the treeview with scrolled window + */ + q_window.set_shadow_type(Gtk::SHADOW_IN); + q_window.set_margin_left(5); + q_window.set_margin_right(5); + q_window.set_margin_bottom(5); + q_window.add(q_treeview); + + + /* + * Fill in the page! + */ + + q_vbox.set_margin_left(1); + q_vbox.set_margin_right(1); + q_vbox.set_homogeneous(false); + q_vbox.pack_start(q_toolbar_box, false, true, 2); + q_vbox.pack_start(q_window, true, true); + + + /* + * Set generic tab widgets */ tab_random = &q_random; diff --git a/gui/tabs.cpp b/gui/tabs.cpp index be17a1f9..6f4aa008 100644 --- a/gui/tabs.cpp +++ b/gui/tabs.cpp @@ -498,56 +498,6 @@ public: void on_focus_search(); }; -void OcarinaPage::setup_common(Playqueue *pq, unsigned int pg) -{ - get_builder()->get_widget("o_notebook", notebook); - model = Glib::RefPtr(new PlayqueueModel(pq)); - filter = Gtk::TreeModelFilter::create(model); - filter->set_visible_func(sigc::mem_fun(*this, - &OcarinaPage::on_filter_visible)); - - set_margin_left(1); - set_margin_right(1); - set_spacing(1); - - setup_treeview(); - pack_start(page_viewbox); - show_all(); -*/ - /* Add to notebook */ -/* notebook->insert_page(*this, *tab, pg); - tab_map[pq] = this; - set_tab_size(); -} - -void OcarinaPage::setup_toolbar() -{ - page_toolbar.set_spacing(5); - page_toolbar.pack_start(page_entry); - page_toolbar.set_margin_left(5); - page_toolbar.set_margin_right(5); -*/ - /* Set up entry */ -/* page_entry.set_margin_top(5); - page_entry.set_margin_bottom(5); - page_entry.signal_changed().connect(sigc::mem_fun(*this, - &OcarinaPage::on_entry_changed)); - page_entry.signal_key_release_event().connect(sigc::mem_fun(*this, - &OcarinaPage::on_entry_key_released)); -*/ - /* Make buttons */ -/* if (init_flags & PQ_RANDOM) { - page_random.set_image_from_icon_name("media-playlist-shuffle"); - page_toolbar.pack_start(page_random, false, false); - } - if (init_flags & PQ_REPEAT) { - page_repeat.set_image_from_icon_name("media-playlist-repeat"); - page_toolbar.pack_start(page_repeat, false, false); - } - - pack_start(page_toolbar, false, false); -} - void OcarinaPage::setup_treeview() {*/ /* Make page content */