From 196088dcfac94a4d38d058ab63250cd036f80f15 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Fri, 28 Feb 2014 15:57:46 -0500 Subject: [PATCH] gui: Add columns to a queue treeview Signed-off-by: Anna Schumaker --- gui/queue.cpp | 60 +++++++++++++++++++++++++++++++++++++++++++++++++- gui/tabs.cpp | 61 --------------------------------------------------- 2 files changed, 59 insertions(+), 62 deletions(-) diff --git a/gui/queue.cpp b/gui/queue.cpp index b625b88c..f587b263 100644 --- a/gui/queue.cpp +++ b/gui/queue.cpp @@ -7,6 +7,31 @@ #include + +static unsigned int q_col_width[] = { 20, 300, 60, 100, 100, 45, 100, 60, 1 }; + +static class QueueColumns : public Gtk::TreeModelColumnRecord { +public: + QueueColumns() + { add(q_col_track); add(q_col_title); add(q_col_length); + add(q_col_artist); add(q_col_album); add(q_col_year); + add(q_col_genre); add(q_col_count); add(q_col_played); + add(q_col_path); } + + Gtk::TreeModelColumn q_col_track; + Gtk::TreeModelColumn q_col_title; + Gtk::TreeModelColumn q_col_length; + Gtk::TreeModelColumn q_col_artist; + Gtk::TreeModelColumn q_col_album; + Gtk::TreeModelColumn q_col_year; + Gtk::TreeModelColumn q_col_genre; + Gtk::TreeModelColumn q_col_count; + Gtk::TreeModelColumn q_col_played; + Gtk::TreeModelColumn q_col_path; +} queue_cols; + + + class QueueTab : public Tab { private: /** @@ -23,7 +48,9 @@ private: */ Gtk::VBox q_vbox; - /* Toolbar widgets */ + /** + * Toolbar widgets + */ Gtk::HBox q_toolbar_box; Gtk::SearchEntry q_search; Gtk::ToggleButton q_random; @@ -33,6 +60,7 @@ private: Gtk::ScrolledWindow q_window; Gtk::TreeView q_treeview; + public: QueueTab(Playqueue *, unsigned int num); ~QueueTab(); @@ -40,6 +68,7 @@ public: /** * Helper functions */ + void setup_treeview(); void on_post_init(); void tab_set_size(); void queue_set_number(unsigned int); @@ -103,6 +132,7 @@ QueueTab :: QueueTab(Playqueue *pq, unsigned int num) q_window.set_margin_right(5); q_window.set_margin_bottom(5); q_window.add(q_treeview); + setup_treeview(); /* @@ -150,6 +180,34 @@ QueueTab :: ~QueueTab() * */ +void QueueTab :: setup_treeview() +{ + q_treeview.append_column("#", queue_cols.q_col_track); + q_treeview.append_column("Title", queue_cols.q_col_title); + q_treeview.append_column("Length", queue_cols.q_col_length); + q_treeview.append_column("Artist", queue_cols.q_col_artist); + q_treeview.append_column("Album", queue_cols.q_col_album); + q_treeview.append_column("Year", queue_cols.q_col_year); + q_treeview.append_column("Genre", queue_cols.q_col_genre); + q_treeview.append_column("Count", queue_cols.q_col_count); + q_treeview.append_column("Played", queue_cols.q_col_played); + + q_treeview.set_tooltip_column(9); + q_treeview.set_rules_hint(); + q_treeview.set_enable_search(false); + q_treeview.get_selection()->set_mode(Gtk::SELECTION_MULTIPLE); + q_treeview.set_rubber_banding(); + + std::vector columns = q_treeview.get_columns(); + for (unsigned int i = 0; i < columns.size(); i++) { + columns[i]->set_resizable(); + columns[i]->set_fixed_width(q_col_width[i]); + columns[i]->set_sizing(Gtk::TREE_VIEW_COLUMN_FIXED); + columns[i]->set_clickable(); + } + +} + void QueueTab :: on_post_init() { tab_init_random(); diff --git a/gui/tabs.cpp b/gui/tabs.cpp index 851407e5..424f89c3 100644 --- a/gui/tabs.cpp +++ b/gui/tabs.cpp @@ -349,26 +349,6 @@ static std::list tab_types; static unsigned int sort_timeout_count = 0; -static class QueueColumns : public Gtk::TreeModelColumnRecord { -public: - QueueColumns() - { add(q_col_track); add(q_col_title); add(q_col_length); - add(q_col_artist); add(q_col_album); add(q_col_year); - add(q_col_genre); add(q_col_count); add(q_col_played); - add(q_col_path); } - - Gtk::TreeModelColumn q_col_track; - Gtk::TreeModelColumn q_col_title; - Gtk::TreeModelColumn q_col_length; - Gtk::TreeModelColumn q_col_artist; - Gtk::TreeModelColumn q_col_album; - Gtk::TreeModelColumn q_col_year; - Gtk::TreeModelColumn q_col_genre; - Gtk::TreeModelColumn q_col_count; - Gtk::TreeModelColumn q_col_played; - Gtk::TreeModelColumn q_col_path; -} queue_cols; -static unsigned int q_col_width[] = { 20, 300, 60, 100, 100, 45, 100, 60, 1 }; static sort_t q_col_sorts[] = { SORT_TRACK, SORT_TITLE, SORT_LENGTH, SORT_ARTIST, SORT_ALBUM, SORT_YEAR, @@ -515,51 +495,10 @@ public: void on_focus_search(); }; -void OcarinaPage::setup_treeview() -{*/ - /* Make page content */ - /*page_view.append_column("#", queue_cols.q_col_track); - page_view.append_column("Title", queue_cols.q_col_title); - page_view.append_column("Length", queue_cols.q_col_length); - page_view.append_column("Artist", queue_cols.q_col_artist); - page_view.append_column("Album", queue_cols.q_col_album); - page_view.append_column("Year", queue_cols.q_col_year); - page_view.append_column("Genre", queue_cols.q_col_genre); - page_view.append_column("Count", queue_cols.q_col_count); - page_view.append_column("Played", queue_cols.q_col_played); - page_view.set_tooltip_column(9); - - page_view.signal_row_activated().connect(sigc::mem_fun(*this, - &OcarinaPage::on_row_activated)); - page_view.signal_key_press_event().connect(sigc::mem_fun(*this, - &OcarinaPage::on_view_key_pressed)); - page_view.signal_button_press_event().connect(sigc::mem_fun(*this, - &OcarinaPage::on_view_button_pressed), false); - - page_view.set_model(filter); - page_view.set_rules_hint(); - page_view.set_enable_search(false); - page_view.get_selection()->set_mode(Gtk::SELECTION_MULTIPLE); - page_view.set_rubber_banding(); - - page_scroll.set_shadow_type(Gtk::SHADOW_IN); - page_scroll.set_margin_left(5); - page_scroll.set_margin_right(5); - page_scroll.set_margin_bottom(5); - page_scroll.add(page_view); - - setup_columns(); - page_viewbox.pack_start(page_scroll, true, true); -}; - void OcarinaPage::setup_columns() { std::vector columns = page_view.get_columns(); for (unsigned int i = 0; i < columns.size(); i++) { - columns[i]->set_resizable(); - columns[i]->set_fixed_width(q_col_width[i]); - columns[i]->set_sizing(Gtk::TREE_VIEW_COLUMN_FIXED); - columns[i]->set_clickable(); columns[i]->signal_clicked().connect(sigc::bind ( sigc::mem_fun(*this, &OcarinaPage::on_column_clicked), i));